Home
A Modular Control System for Remote Subsea Equipment
Contents
1. 136 undef INCLUDE_SIM SIM support subset of BSP undef INCLUDE SPI SPI support undef INCLUDE SRM Switch Relactance library undef INCLUDE STACK CHECK Stack utilization routines Zundef INCLUDE SWITCH Switch support define INCLUDE TIMER Timer support undef INCLUDE VAD V AD library undef INCLUDE V8BIS V8bis library undef INCLUDE V22 V22 library undef INCLUDE V42BIS V42bis library CR SR Sos s k k oe ae se ak 2h a ak oe oe oe 2 ak o oo oe eoe ooo ale ale ale ale fe ale fe oe ale oe a fe he fe ie ee ee ae a oie ale ai oe ale Di oe aK K o eoe oe eoe ale ale ale ale ale ale ale ok 2K K kok Overwrite default component initializations from config config h using defines here x aK ee ak ak K ae K o ale ie le oos ak ae ale ale ale ale ale le ae fe oe ok ooo oe ale le ae ae a Di ae oe se ooo eoe eoe eoe ol ae ale e le le ae K ee eoe ale ale ale ae al e ale le ae le le K 2k define GPR_INT_PRIORITY_20 1 Setup MpioD ISR priority endif LabView Front Panel 137 Block Diagram 138 Test For Timeout if not elapsed wait for a millisecond Error at Bytes at Serial Port No Action Taken for Read 139 Appendix E adctest2 138 C Code p FILE adctest2 c 5 PROJECT adctest2 mcp include port h i
2. Je This function configures TimerlISR which calls for an ADC read every quarter second Fr ss ae 2 k ak ale ale ale ale ale ee ak ie ee ae a DI K ale ale ale ale ale ie ale le ie ee ee K ttt ale ale ale le ae fe eee ae ale K ale K ale ale ale ale le oe ale ie ee ake ae oi ae ale ai 2 ale void ConfigTimer void TimerlEvent sigev notify function TimerlISR timer createCLOCK AUXI amp TimerlEvent amp Timerl TimerlSettings it interval tv sec 0 Timer Settings it_interval tv_nsec 250000000 TimerlSettings it value tv sec 0 TimerlSettings it value tv nsec 250000000 timer settime Timerl 0 amp TimerlSettings NULL FUJNCTIION TimerlISR BR HR HR HR HR K a K ale K ale ale ak ak ak a This function defines the timer interrupt configured by ConfigTimer It then calls ReadADCChannel CR SR S ag sese sk oe ale oe oe ale ak ak ak He ak ok ae ae ok oe o oo oe ooo ooo stool seo ose oe eoe ale ale le he fe ie fee ae sese oe oe ee ale ale le oe ale ie ee oe ae ai ae ale 2 ale static void Timer1ISR union sigval ReadADCChannel 171 peee FUNCTION sciRxCallBack BR HR HR HR HR K ae K ale K ale ale ak ak ak a This function is called by the receive buffer full interrupt Upon reading a P A or B from the serial line the function will c
3. Description This function is called when the SCI driver has detected an exception EEE IO void sciExceptionCallBack void Add code for exception handling asm debug void main void UWord16 SciReadLength sci_sConfig SciConfig SciConfig SciCntl SCI CNTL WORD 8BIT SCI CNTL PARITY NONE SciConfig SciHiBit SCI HIBIT 0 SciConfig BaudRate SCL BAUD 9600 SCIO open BSP DEVICE NAME SCI 0 O_RDWR O_NONBLOCK amp SciConfig if SCIO 1 assert Open sci0 device failed Set the data format for 8 bit characters and Clear the Read and Write buffers ioctl SCIO SCI DATAFORMAT EIGHTBITCHARS NULL Set the Receive Transmit and Exception Callback functions ioctl SCIO SCI CALLBACK RX sciRxCallBack ioctl SCIO SCI CALLBACK TX sciTxCallBack ioctl SCIO SCI CALLBACK EXCEPTION sciExceptionCallBack The SCI Rx CallBack function will be called by the SCI driver after one character is received by setting the read length to 1 SciReadLength 1 ioctl SCIO SCI SET READ LENGTH amp SciReadLength Wait for data to be received Use HyperTerminal to send characters Hello will be echoed back by the Receive CallBack function while 1 127 count return 128 5 FILE appconfig h External RAM JE PROJECT Serial test mcp ifndef APPCONFIG H define _ APPCONFIG H Fr ag as 2 ale ale ie ale ie le le
4. The final step before assembling the pieces was to test the DAC on the controller This was simply done by using an example program provided with the SDK The code can be found in Appendix F TryDAC This contains the c code IryDAC c and appconfig h Routine main opens the DAC port defines a value to be written and writes that value to the DAC channel in this case channel A Values were read using a multimeter at Pin 0 J20 Conclusion These initial developments provide a subroutine base for assembling the final baseline control system They also presented an opportunity to learn the proper programming methods for the DSP56F805 microcontroller A good learning example is the while loop used to read the counter in Project LabViewGPIO This worked for a single function program such as this When this was tried in the baseline system where serial communication analog inputs and other functions are vying for processor time a runtime error occurs The proper method for accomplishing this sort of multitasking is through the use of the interrupt drivers 69 This programming approach was easily remedied during the initial development If the step by step approached had not been used debugging that runtime error would have been much more difficult in the combined system Progressive programming techniques such as these help the programmer save time and develop logical software structures 70 Chapter 5
5. include port h include sci h include io h include bsp h include assert h CallBack function prototypes void sciRxCallBack void void sciTxCallBack void void sciExceptionCallBack void int SCIO count UWord16 DataR Fr FR e e 2 ale ale he ale de le le ae ad ale ale ak ale ale ie le le a le e ae ale ale ale K le ic le le e ale K ale ale ale ale ie ae le e ale e ale 2 ale ale K fee ee ai de dd ale ie ll ll ai ak SCI Receive CallBack Routine Description This function is called when the SCI driver has received the number of characters specified by the read length EEE OO void sciRxCallBack void read SCIO amp DataR sizeof DataR Read a character write SCIO Hello sizeof Hello Send it back to the pc echo Fr gg 2 ale ale od ale ode ie le le e al e ae ak ale ak ake le le le le e ae ale ale ale K ale ie le le e al dd ale ale ale ic ee e ale e ae ale ale ale K ee ee e FK 3K ale ale fe ale ee ai ak SCI Transmit CallBack Routine Description This function is called when the SCI driver has sent all data in its transmit buffer EE IO void sciTxCallBack void Add code for Transmit handling asm nop Fr F e oe 2 ale ale ode le ale de le le e ad ale ale ak ale ale ie le le ae le e ae ale ale ale K le ic le le e ale dd ale ale ale ie ee e ale ai ale ale ale ale K ee ee Dale ale ale ale le ll ee ai ak 126 SCI Exception CallBack Routine
6. 13 amp 14 CAN CUSTOM FILTER CODE amp CAN CUSTOM FILTER MASK These two settings are used to define custom message filtering settings If they are not defined all message filtering is set when the message buffers are opened The filter code describes the actual string of numbers in the filter The filter mask determines which parts of the identifier can be ignored 15 CAN RECEIVE ID QUEUE SIZE This determines the size of the message buffer used for received messages Once this buffer is full new messages will start overwriting any messages already in the queue 16 CAN RAW CALLBACK This defines the ISR Interrupt Service Routine called when a message is received to the queue The receive ISR is a function which will most likely read the message and store any pertinent data MSCAN FUNCTIONS Five functions are provided for use in the application code The open function opens a specified CAN identifier for writing or reading This identifier is then allocated a buffer space and ready to accept data The close statement is used to close any open identifier in order to free up the allocated buffer space 102 The read statement returns the data portion of the message specified by the associated read identifier The write statement places data into either one of the buffers specified in Queued mode or directly into one of the three MSCAN transmit buffers The ioctl statement is used to eith
7. define INCLUDE_BSP BSP support undef INCLUDE_CODEC codec driver define INCLUDE_IO VO support define INCLUDE_LED led support for target board undef INCLUDE_SPI spi support undef INCLUDE_TIMER timer support undef INCLUDE_FLASH flash support define INCLUDE SCI SCI support define INCLUDE ADC ADC support undef INCLUDE QUAD TIMER Quadrature timer support undef INCLUDE CAN CAN support define INCLUDE GPIO undef INCLUDE MEMORY memory support undef INCLUDE DSPFUNC dsp functional library CR SR Ss s k k oie ae ae ok ake ae ak oe oe ok oe oe o oo oe eo ooo ale ale ale ale K K fe oe IIA Overwrite default component initialization from config config h x CHR K le eee ee ok se oie ok ole ok K K Dale Di ale ke oe oe eo oe eoe ale ale ale ale fe ale ale oe ale ae ae ale oe ae ie ae fe ie ae e ee ale ae K ale ai oe oes oe eoe oe ee ale K K ale 2K K ale K 2K 2 Ok Ps Set scan mode for ADC port define ADC SCANMODE ADC SEQUENTIAL ONCE include samples define INCLUDE ADCA SAMPLE 0 user callback define ADC RAW CONVERSION COMPLETE CALLBACK CC CallBack endif 143 LabView Front Panel 144 Block Diagram tle facta eee h i 145 Test Fo
8. fe proper ADC channel to that value CR SR S k k k se seo oe o ale ee ak ae ak ok ak a oe ok ooo ooo ale le ie ee ee seo ook oe eoe oe ale le oe fe eee a ale K oe oe eoe ale ale ee ale ic ee ae ae ai ae akk K ale void SetDACOutput void int templ temp2 DACOut 0 0 if m 1 ifm 2 templ PressureString 1 0x30 temp2 1000 temp1 temp 1 PressureString 2 0x30 temp2 temp2 100 templ temp1 PressureString 3 0x30 temp2 temp2 10 templ temp1 PressureString 4 0x30 temp2 temp2 temp1 if temp2 gt 3000 temp2 3000 temp2 temp2 65535 3000 DACOut 0 temp2 Output pressure value on Channel A ioctl dacDevice DAC SET CHANNEL A NULL ioctl dacDevice DAC WRITE MODE UPDATE NULL write dacDevice DACOut sizeof UWord16 temp1 ASideString 1 0x30 temp2 100 templ 174 temp1 ASideString 2 0x30 temp2 temp2 10 templ temp1 ASideString 3 0x30 temp2 temp2 templ if temp2 gt 100 temp2 100 temp2 temp2 65535 100 DACOut 0 temp2 Output A Side value on Channel B ioctl dacDe vice DAC_SET_CHANNEL_B NULL ioctl dacDevice DAC_WRITE_MODE_UPDATE NULL write dacDevice DACOut sizeof UWord16 1f m 3 temp1 BSideString 1 0x30 temp2 100 templ temp1 BSideString 2 0x30 temp2 temp2 10 templ temp1 BSideString 3 0x30 temp2 temp2 templ if temp2 gt 100 temp2 100 temp2 temp2
9. Description of Valve Pack The baseline control system designed for this thesis was developed to control an ROV operable torque tool The subsea control hardware required for this smart torque tool includes the controller SBC single board computer a proportional hydraulic flow valve for controlling the rotational speed and a proportional hydraulic pressure valve for controlling the output torque This chapter will describe the hardware designed for this thesis Appendix G contains the mechanical drawings a hydraulic schematic and an electrical schematic to construct the necessary hardware A controller pack has been designed to meet the control requirements This valve pack consists of a machined manifold the controller card a proportional pressure reducing valve and a bi directional proportional flow control valve along with the necessary hydraulic and electrical fittings The entire pack is designed to be filled with dielectric oil for pressure compensation to eliminate the need for a bulky one atmosphere housing O ring groove and SAE porting parameters were taken from the Parker O Ring Handbook The torque tool control system is designed for a depth of 10 000 fsw feet of seawater so it must withstand pressures up to 4 610 psi The controller card depth is limited solely by the crystal To solve the depth problem a process of potting the crystal in epoxy has been successfully used in the offshore oil and gas industry The valves a
10. Phantom XTL http www deepocean com 1997 11 Deep Sea Systems International Inc Company Profile http deepseasystems com aboutd htm 2003 12 Deep Sea Systems International Inc http deepseasystems com images common mr mk2 jpg 2003 13 MAX Rover MK1 Remotely Operated Vehicles of the World 5 Edition Houston Oilfield Publications Inc 2002 14 Hydrovision Ltd Company Profile http www hydrovision co uk comp3 html 2003 15 Seaeye Marine Ltd Lynx Rev 1 http www seaeye com 2003 16 Hydrovision Ltd Curvetech Control Systems http www hydrovision co uk products html 2003 17 Hydrovision Ltd Curvetech Control Systems http www hydrovision co uk products html 2003 18 International Submarine Engineering Ltd http www ise bc ca images HYSUB 250_web jpg 2002 210 19 20 21 22 23 24 25 26 27 28 29 International Submarine Engineering Ltd Control Systems http www ise bc ca control_systems 2002 International Submarine Engineering Ltd Control Systems http www ise bc ca control_systems 2002 International Submarine Engineering Ltd http www ise bc ca images MBARI_Telemetry_Can jpg 2002 Japan Marine Science and Research Center http www jamstec go jp jamstec e gallery mujin kaiko_1 html 2000 Oceaneering International Inc Background http www oceaneering com about htm 2
11. YELLOW endif defined LED YELLOW Datal len 0 141 Reset synchro flag and start another ADC read if CCFlag gt 0 CCHlag 0 ioctl Datal handle ADC_START 0 eso ee ei eo eo He 2 22 k AUNCTION CC CallBack RR HR HR HR K seo o oe e ale le aK ake aK ae 2K K ae K ale 2 ok El This function handles the ADC conversion complete interrupt and 5 increments the syncronization flag to start another read CR SR S tke sese sk oe o oe o ale ak ak ak e ak oe ae a oe K oe eo oe ooo ooo Die a oe ok oes oe eoe oe ale le ke fe ee a ale ale Di oe oe ee ale ale le ae ale ie ee ae ae ai ae 2K 2 2K 2 void CC CallBack adc eCallbackType type adc tSampleMask causedSampleMask CCHlag 1 142 F FILE appconfig h External RAM J PROJECT adctest2 mcp ifndef APPCONFIG_H define _ APPCONFIG H Refer to config config h for complete list of all components and component default initialization PE ss k se k ak ae ae ak ae ae ak 2 ae ak ak ale ale 2 ak ale ale ale ale ale ale ale ale ale LLL ie he fe kee ie ee ee ae a ai ale ai Dale Di ale ale K ale ale K ale ale ale ale ale ale ale ale ale ale 2K ae car Include needed SDK components HR K le eee le le ok oe a ak ole ok ale K Dale Di ale ale oe ale ale ale ale ale ale ale ale ale ale fe ale ale oe ale ae ae ale oe ae le ae al ie ae e ae oi ae ae K ale al a ale a oe eoe oe ale ale ale ale K ale ale K ale lll ol
12. environment 37 TCP IP The data transfer protocol TCP IP Transmission Control Protocol Internet Protocol was investigated because of its popular use in local and wide area networks LANs and WANS as well as being the standard communication protocol for the Internet The TCP IP protocol was developed to enable communication between dissimilar computer platforms without a direct connection Communication is done point to point meaning data is addressed between individual computers This data is broken down into packets that are transmitted separately node by node or hub by hub over the network If a node receives a transmission and it does not recognize the address it passes the information along to the next node Once the address is recognized by the intended receiver and all packets have been received the message is reassembled This protocol is useful over large networks such as the Internet Multiple path delivery allows for packets from the same message to arrive at the destination via different routes depending on bus congestion For long distance transmissions the transmitting computer does not need to wait for the message to travel the entire distance Instead the data takes multiple short hops from hub to hub ETHERNET The Ethernet protocol was originally developed by Xerox Digital Equipment Corporation DEC and Intel in 1980 It is the most common communication specification used in Local Area Networks LANs Ethe
13. include adc h int SCIO Serial Port 0 definition int PortD GPIO Port D definition int TurnsCounter 0 GPIO Counter struct timespec QuartSecond 0 250000000 int CCFlag flag for ADC Read struct sigevent TimerlEvent Timer ADC Read timer t Timer Timer for ADC Read struct itimerspec TimerlSettings value repeat value struct timespec HalfSecond 0 500000000 int n 0 ReceiveString construction integer int m 0 ReceiveString indicator integer static int dacDevice device handle static UWord16 DACOut 1 word rar Ra e IIA GLOBAL STRINGS BIER HR ae ae DI a K ale ale ee ale le le e a ale ale ale ale ale ale le le le ae ale oi K 2 163 K ak HR K HR DI DI aK ale ale ale ale ake ak fe DI ae 2 K 2 K 2K ok ko Quarter second delay time Synchronization Timer Event Timerl settings initial Half second delay time DAC DAC Output char TurnsCounterString 5 C0000 char CreatedString 4 0000 char ADCString 5 T0000 string char ASideString 4 A000 char BSideString 4 B000 char PressureString 5 P0000 string static void COUNTRECEIVED_ISR void void ConfigGPIOPort void void CreateStringFrmDigits int NumberToConv void ConfigSerial void Counter serial output string Created string return from function Torque serial output Pressure serial output string Pressure serial output string Pressure
14. that has been designing and building ROVs since the CORD Cable Operated Remote Device in 1973 Their vehicles have included the CORD the SCOOP Scientific Collection and Observation Platform the Life Guard Panther Figure 2 27 and the HBOI Fly Away a deep water version of the Deep Sea Systems Mini Rover They develop PC based control systems and were a consultant on the MBARI Monterey Bay Aquarium Research Institute Ventana ROV Figure 2 27 HBOI Life Guard Panther Deployed with Tophat TMS 39 IFREMER Ifremer or the French Research Institute for the Exploration of the Seas is a public research institute controlled by the four French ministries of Research Agriculture and Fisheries Transport and Housing and Environment They operate the Victor 6000 ROV Figure 2 28 which they developed in conjunction with the French company ECA ECA specializes in control systems developed around parallel architectures and CORBA Common Object Request Broker Architecture a Figure 2 28 Ifremer Victor 6000 with Under Vehicle Work Skid 40 JAPAN MARINE SCIENCES AND TECHNOLOGY CENTER JAMSTEC was created in 1971 and is located in Yokosuka City Japan The Deep Sea Research Department operates two manned submersibles as well as four ROVs The Kaiko and Dolphin 3K Figure 2 29 were manufactured by Mitsui while the UROV7K and the Hyper Doplhin were manufactured in house with consultation from Mitsui F
15. undef INCLUDE_BLDC undef INCLUDE_BUTTON undef INCLUDE CALLER _ undef INCLUDE_CAN BLDC library Button support ID CallerID library CAN support undef INCLUDE CAS DETECT CAS detect library undef INCLUDE COP COP support subset of BSP undef INCLUDE CORE CORE support subset of BSP undef INCLUDE CPT CPT library undef INCLUDE_DAC DAC support undef INCLUDE DECODER X Quadrature Decoder support undef INCLUDE DES DES library undef INCLUDE DSPFUNC DSP Function library undef INCLUDE DTMF DET DTMF detect library undef INCLUDE DTMF GEN DTMF generation library undef INCLUDE FILEIO File I O support undef INCLUDE_FLASH Flash support undef INCLUDE_G165 G165 vocoder library undef INCLUDE_G711 G711 vocoder library undef INCLUDE_G726 G726 vocoder library define INCLUDE_GPIO General Purpose I O support define INCLUDE_IO undef INCLUDE_ITCN define INCLUDE_LED undef INCLUDE_MCFUNC undef INCLUDE MEMORY undef INCLUDE PCMAST undef INCLUDE PLL undef INCLUDE PWM undef INCLUDE QUAD TI undef INCLUDE SCI VO support ITCN support subset of BSP LED support for target board Motor Control functional library Memory support ER PC Master support PLL support subset of BSP PWM support MER Quadrature timer
16. 0 Compaq Computer Corporation Hewlett Packard Company Intel Corporation Lucent Technologies Inc Microsoft Corporation NEC Corporation Koninklijke Philips Electronics N V 2000 4 Chappell Laura Chapter 8 TCP IP Overview Introduction to Cisco Router Configuration Indianapolis Cisco System Inc 1999 2 4 5 Chappell Laura Chapter 3 Physical and Data Link Layers Introduction to Cisco Router Configuration Indianapolis Cisco System Inc 1999 6 10BaseT searchNetworking com Definitions Needham MA TechTarget Inc 2003 7 Chappell Laura Chapter 3 Physical and Data Link Layers Introduction to Cisco Router Configuration Indianapolis Cisco System Inc 1999 8 Chappell Laura Chapter 3 Physical and Data Link Layers Introduction to Cisco Router Configuration Indianapolis Cisco System Inc 1999 9 2 Basic Concepts CAN Specification Part B Version 2 0 Stuttgart Robert Bosch GmbH 1991 10 Chapter 1 Introduction Embedded SDK Software Development Kit Programmer s Guide Document No SDK101 D Rev 3 07 16 2002 Denver Motorola Inc 2002 11 Chapter 2 Technical Summary DSP56F805 Evaluation Module Hardware User s Manual Document No DSP56F805EVMUM D Rev 3 0 02 2001 Denver Motorola Inc 2001 Chapter 4 References 1 LabView M 5 1 National Instruments 1999 Chapter 5 References 215 Parker O Ring Handbook C
17. 2 ROV Operable Torque Tool with Mechanical emm The basic mechanical torque tool without electronic controls is seen in Figure 3 2 It consists of a hydraulic motor in line with the valve interface or socket Two pressure gauges display the pressure on the A side or B side depending on which way the tool is turning A mechanical counter with chain drive displays the turns count The typical method of using the tool is to calibrate it on deck using a torque tool test jig Figure 3 3 and record pressure versus torque A hydraulic pressure relief valve is set on the surface to limit the maximum torque Hydraulic flow is adjusted with a hand operated needle valve to control speed The current smart tools have a telemetry link to the surface that transmits the pressure and flow data Torque readings measured via a series of strain gages and turns count recorded using a number of magnets and a reed switch or Hall Effect sensor are also relayed to the surface The control system incorporates 49 proportional pressure and flow control valves that allow the operator to adjust the speed and torque during the dive via the GUI This allows the tool to be used for multiple jobs requiring different torques and rotational speeds The proportional adjustment also allows the rotational speed to be ramped up to prevent shock loading The selection of the microcontroller and associated demonstration board had to supply the following capabil
18. DeviceNet DFI Cyclic redundancy checking is a method of checking for errors in data that has been transmitted on a communications link A sending device applies a 16 or 32 bit polynomial to a block of data that is to be transmitted and appends the resulting cyclic redundancy code CRC to the block The receiving end applies the same polynomial to the data and compares its result with the result appended by the sender If they agree the data has been received successfully If not the sender can be notified to resend the block of data Carrier Sense Multiple Access Collision Detection Used by the Ethernet protocol to govern communication timing over its common bus When two nodes attempt to transmit at the same time a collision is declared that results in a backoff time By varying these times between nodes one node will priority over another for bus access Digital to analog converter A higher layer protocol HLP designed for use with the Motorola Control Area Network CAN y An Allen Bradley data link layer protocol that combines features of subcategories D1 data transparency and F1 two way simultaneous transmission with embedded responses of ANSI x3 28 specification There are two categories of DF1 protocol half duplex protocol master 195 DSP Ethernet EVM Foundation Fieldbus GPIO GPM GUI slave communication and full duplex protocol peer to peer communication Digital signal p
19. GPIO D NULL Initialize Port B amp D as outputs for n 0 n lt 8 n ioctl PortB GPIO_SETAS_GPIO gpioPin B n ioctl PortB GPIO_SETAS_OUTPUT gpioPin B n for n 0 n lt 8 n ioctl PortD GPIO SETAS GPIO gpioPin D n ioctl PortD GPIO SETAS OUTPUT gpioPin D n Output to led display if ones amp 1 ioctl PortB GPIO SET gpioPin B 0 if ones amp 2 ioctl PortB GPIO SET gpioPin B 1 if ones amp 4 121 ioctl PortB GPIO_SET gpioPin B 2 if ones amp 8 ioctl PortB GPIO SET gpioPin B 3 if tens amp 1 ioctl PortB GPIO_SET gpioPin B 4 if tens amp 2 ioctl PortB GPIO SET gpioPin B 5 if tens amp 4 ioctl PortB GPIO SET gpioPin B 6 if tens amp 8 ioctl PortB GPIO_SET gpioPin B 7 if huns amp 1 ioctl PortD GPIO SET gpioPin D 0 if huns amp 2 ioctl PortD GPIO SET gpioPin D 1 if huns amp 4 ioctl PortD GPIO SET gpioPin D 2 if huns amp 8 ioctl PortD GPIO_SET gpioPin D 3 sitinloop while 1 122 5 FILE appconfig h External RAM JE PROJECT TryREADOUT mcp ifndef APPCONFIG H define _ APPCONFIG H CR SR SS s k se oe ae se ok 2h ae ak oe oe ok oe ak o ook oe eoe oe oe eoo eoo ooo ie IIA x Include needed SDK components below by changing undef to define Refer to config config h for complete list of all components and component default initialization CHR K le de le le
20. I O Communication link for relay of information such as pressure and flow It seemed a logical step to approach these design requirements individually This would aid in the learning of the programming techniques particular to the Motorola DSP microcontroller by solving small problems one step at a time It also encourages the production of C code that is modular in construction Each of the programs listed below eventually helped produce generic subroutines that were used in the final baseline system As mentioned in Chapter 1 many components of an ROV have identical functionality from a processing perspective A subroutine written for an analog flow meter can also be used for an analog pressure transducer The following programs were written during initial development and will be detailed in this chapter 63 TryGPIO controlled the on off status of an LED with the input from a Hall Effect Sensor this required the use of digital inputs and outputs TryREADOUT outputs a number to an LED readout requires digital output Serial test demonstrates serial communication with a laptop requires use of the serial port LabViewGPIO displays an incremented count read from a Hall Effect sensor on a GUI graphical user interface written in LabView requires digital input digital output serial communications adctest2 displays the output of a variable resistor pot on a LabView GUI requires analog
21. The majority of this paper is dedicated to the development of the vehicle portion of the torque tool control system However the graphical user interface GUD is the portion of the system most evident to the operator The real time operating system VxWorks from WindRiver was investigated because of its acceptance in industry and advertised quick development time However the cost of such a system was beyond the budget of this project The topside control interface must be user friendly so a Windows environment was selected because of its widespread familiarity A number of programming languages are available to develop a Windows GUI such as Visual Basic and Visual C LabView was finally selected because of past experience with the software and because it is intended for the development of industrial control systems This chapter will describe the topside portion of the torque tool control system that was programmed using LabView The LabView documentation can be found in Appendix J Baseline System Viewing the LabView panel it can be seen that the user controls are pressure flow side A and flow side B along with the associated submit control buttons The readout indicators are pressure torque and turns count Further readouts are classed under a Diagnostics section and include the raw string being transmitted from the LabView application the string being received a telemetry error indicator and a telemetry timeout indicator 81
22. a wait If the error still exists no read will be performed and the Error out light will be lit If the proper numbers of bytes are received CS 17 will follow the true execution The Serial Port Read VI supplied by LabView is used to read the indicated number of bytes at port 0 This string is displayed in the Received String dialog box A series of match pattern functions are used to check the identifier and the associated value is displayed The identifiers are P for the pressure value C for turns count and T for the torque Conclusion LabView software was used to create a user friendly Windows type interface that allows for the real time control of an ROV torque tool This interface allows the operator to set the hydraulic pressure and flow of the tool which controls the tool s torque and speed respectively The GUI displays the current torque output and turns count Other information such as an echoed current pressure setting and received telemetry string are also displayed to aid in troubleshooting This interface is laid out in a single window format with relatively easy to use controls 84 Chapter 8 CAN Overview Control Area Network or CAN was developed by Bosch in the 1980 s and first published in 1986 Version 2 0 or the extended version was released in 1991 In the Open Systems Interconnection standard CAN is a low level communication protocol requiring a higher layer protocol to make a
23. civic i 115 APPENDIXB IYyREADOUE oo ei 120 APPENDIX C Serial Test er i en a A EN S 125 APPENDIX D ab Vie wR nee ner 131 APPENDIX E OCIS oii i cede esllntlun 138 APPENDIX E TSyDAGC noon fponte ote t ea esta utet adi 152 APPENDIX Valve Par dd de nu 157 APPENDIX H Baseline siii 162 GLOSSARY cidad eae aae ertia ius 192 EISTOFRERERENCES Sin 208 List of Keywords CAN Control Area Network Control network system Industrial control Microcontroller Remotely operated vehicle ROV Serial Bus Smart tooling FIGURE 1 1 FIGURE 1 2 FIGURE 1 3 FIGURE 2 1 FIGURE 2 2 FIGURE 2 3 FIGURE 2 4 FIGURE 2 5 FIGURE 2 6 FIGURE 2 7 FIGURE 2 8 FIGURE 2 9 FIGURE 2 10 FIGURE 2 11 FIGURE 2 12 FIGURE 2 13 FIGURE 2 14 FIGURE 2 15 FIGURE 2 16 FIGURE 2 17 List of Figures Work Class ROV System with Deck Components Work Class ROV with Torque Tool esses ROV Topside and Bottom Side System Operated from ALSTOM Schilling Quest Electric ROV sess ALSTOM Schilling SeaNet Telemetry Hub Benthos Super SeaROVeT nannten Benthos Stingray oed e oce ete ts DOE Phantom DSSUMAX Rover Mk2 00 rt ai ERES Hydrovision Diablo iii dais SeaEye Lynx and TMS Garage upper Hydrovision CURVETECH PC 104 Control System ISE Hysub2 0 222 blue unti ee ISE PC 104 Control Pod Designed f
24. compare the result with the transmitted sequence If the results do not match an error frame is transmitted A form error occurs when a wrong value is monitored for a frame with a specified format If a particular bit in a frame is supposed to be recessive and a dominant bit is monitored an error is broadcast on the bus The fifth form of error handling is the ACK slot If a transmitter does not detect a dominant bit during this period it assumes that no nodes received the transmitted message and an Acknowledgement error is signaled Confinement of network errors is achieved through a method of error counting Each node keeps two separate counts transmit and receive These are incremented according to a series of rules laid out in the CAN specification As long as the counts remain below 128 the node is in an error active state This means it can communicate over the bus normally and signal an active error flag when it detects a bus error When either of these counts is greater than or equal to 128 the node enters what is called error passive state where it still has access to the bus but can only respond to errors with a passive error flag If the transmit error count exceeds 256 the node becomes bus off which means it cannot transmit over the bus BIT TIMING The CAN protocol does not have a provision for a global clock Therefore each node must have a local oscillator and system synchronization is done at the edge between chan
25. complete communication system CAN was created specifically for vehicle networking an environment with a high level of electronic noise and a great need for reliability It is used in applications such as anti lock brake engine control and body electronics systems The protocol allows for bit rates up to IMbit s and because it uses a single common bus permits the elimination of a complicated wiring system This chapter will present an overview of the CAN protocol so that the reader may have some basic knowledge of the standard This will allow for a more thorough understanding of Chapter 9 which describes how the torque tool control system may be expanded to control a more complicated system such as a work class ROV The Open Systems Interconnection standard defined a basic structure for a communication system CAN is a low level communication protocol meaning that it must be used with a higher layer protocol in order to have a complete workable system The OSI model will be described below to understand where the CAN protocol fits in 85 Open Systems Interconnection The Open Systems Interconnection OSI standard is a reference model to describe how data moves between two computers or nodes in a communications network It was developed in 1984 by the International Organization of Standards ISO and serves as the prime outline for computer network systems The model divides the overall task into seven separate layers Application L
26. ee ak LLL aK ale ale ie ie he K K ie This function configures GPIO port D opens port setas general purpose T O and enable interrupts It also initializes the counter serial xf string PER gt K 3k gt k ale ale ak ak le ie hee ak ak ale ake ak ae ale ie ee ee a a ale ale ale ale ale fe ale ale ie fe le he fe K K a ae ale Di ale 3K aK ale ale ale ale ale le ae ale ie ae a ee ai ale ae a ale ale K ale K K void ConfigGPIOPort void char temp1 1 C char temp2 1 temp2 0x30 166 TurnsCounterString 0 temp 1 0 TurnsCounterString 1 temp2 0 TurnsCounterString 2 temp2 0 TurnsCounterString 3 temp2 0 TurnsCounterString 4 temp2 0 PortD open BSP DEVICE NAME GPIO D 0 ioctl PortD GPIO SETAS GPIO gpioPin D 0 ioctl PortD GPIO INTERRUPT ENABLE gpioPin D 0 PRP RR HR ee EE EEE FUNCTION CreateStringFrmDigits oe see oe ar ak a ak e ele le 3k Ee El This function will create a 4 character string from a 4 digit number III void CreateStringFrmDigits int NumberToConv int NumThous NumHuns NumTens NumOnes char string thous 1 0 char string_huns 1 0 char string_tens 1 0 char string_ones 1 0 NumThous NumberToConv 1000 NumHuns NumberToConv NumThous 1000 100 NumThous 0x30 NumThous NumHuns 0x30 NumHuns NumTens 0x30 NumTens NumOnes 0x30 NumOnes string thouszNumThous string
27. ee e se oie sk oe ok K oe al ale Di ale ale oe ale ale ale ale ale ale ale ale ale ale fe ale ale oe ale ae ae ale oe ae ae al le ae e ae ok De ae K 2k a a ale Dale 2K al oe ale ale ale ale K ale ale K ale ale 2k 2k define INCLUDE_BSP BSP support includes SIM COP CORE PLL ITCN undef INCLUDE_3DES 3des library define INCLUDE_ADC ADC support undef INCLUDE AEC AEC library undef INCLUDE_BLDC BLDC library undef INCLUDE_BUTTON Button support undef INCLUDE CALLER ID CallerID library undef INCLUDE CAN CAN support undef INCLUDE CAS DETECT CAS detect library undef INCLUDE COP COP support subset of BSP undef INCLUDE CORE CORE support subset of BSP undef INCLUDE_CPT CPT library undef INCLUDE_DAC DAC support undef INCLUDE DECODER Quadrature Decoder support undef INCLUDE DES DES library undef INCLUDE DSPFUNC DSP Function library undef INCLUDE DTMF DET DTMF detect library undef INCLUDE DTMF GEN DTMF generation library undef INCLUDE FILEIO File I O support undef INCLUDE_FLASH Flash support undef INCLUDE_G165 G165 vocoder library undef INCLUDE_G711 G711 vocoder library undef INCLUDE_G726 G726 vocoder library define INCLUDE_GPIO General Purpose I O support define INCLUDE_IO VO support undef INCLUDE_ITCN ITCN support subset of BSP define INCLUDE_LED LE
28. input and serial communication TryDAC sets the value of an analog output pin according to a user supplied value requires analog output Project TryGPIO This simple project had the main goal of being able to hook up an on off switch such as a reed switch or Hall Effects sensor to the controller and trigger an interrupt The code for main c and appconfig h can be found in Appendix A The digital I O ports and individual pins are configured in the subroutine main Port B pin 0 is set up to drive an onboard LED Port D pin 1 is set up to trigger an interrupt when pulled high Upon reception of an interrupt the program jumps to subroutine ButtonA_ISR which toggles the LED either on or off and resets the interrupt One thing to note in the appconfig h file is that the interrupt priority of port D had to be defined Whereas most priorities are given a default interrupt in the related include file general purpose I O s must be defined individually The Hall Effect Sensor used to test this project can be seen in Figure 4 1 64 Figure 4 1 Hall Effect Sensor 65 DISPLAY Ro FET rt eg Hi IE PE Ee LED DRIVERS Figure 4 2 LED Display Project TryREADOUT The second step in developing the software was to try and connect the board to a 4 digit LED display Figure 4 2 The result was the code listed in Appendix B IryREADOUT which consists of main c and appconfig
29. is set by way of a pressure relief valve supplying hydraulic pressure to the torque motor These relief valves must be set on the surface With the use of a control system that includes proportional speed and force control with feedback the tool becomes much more versatile The pressure and therefore torque may be set through the control interface preventing unnecessary recoveries to the surface The speed may be controlled proportionally to prevent damage and accelerate operation times MAIN UMBILICAL WINCH 2853 t A Figure 1 1 Work Class ROV System with Deck Components CAMERA PAN TILT UNIT TORQUE TOOL MANIPULATOR p i NWE Figure 1 2 Work Class ROV with Torque Tool There are vast numbers of specialty tools that have been designed for ROV use ranging from cable burial jetting skids for the communication industry to XYZ 3 axis alignment systems used for precision tool guidance in the oil and gas industry As these tools become more complicated they begin to require their own control systems including analog and digital VO input and output serial communications and processing power A torque tool was selected since the requirements for this tool are representative of what is necessary for an ROV control system on a smaller scale The control system designed in this thesis demonstrates serial communication RS 232 digital I O and analog I O This paper will describe the progressive development of
30. perform grow more complicated the control system must evolve as well This thesis describes the design of a control system for remotely operated subsea tooling that can also control a work class ROV see Figure 1 1 A basic system that can be expanded modularly without complicated software or hardware changes was designed This was accomplished by the selection of proper components and suitable programming techniques The central processing unit CPU selected was the Motorola DSP56F805 because its functions fit the project requirements as will be seen in Chapter 3 The C language was used along with the Motorola DSP digital signal processor libraries to create portable and easily understandable code Finally the Control Area Network CAN provides the networking ability that allows basic control modules to be chained together for more complicated control solutions This system was developed to control a subsea torque tool Figure 1 2 that is an ROV operated tool found in the offshore oil industry Torque tools are hydraulically driven tools used to open or close subsea valves and perform tasks requiring a rotational motion see Glossary for a more thorough definition Most torque tools in use today do not have a dedicated control system and are operated with spare solenoid on off valves from the host ROV These tools are prone to 1 damaging equipment because of the lack of pressure and rotational speed control The torque on these tools
31. read It creates a timer Timer1 which triggers an interrupt a quarter second after the program has started and every quarter second thereafter When the interrupt is triggered the function TimerlISR is called This in turn calls the function ReadADCChanmnel 78 Finally function main installs the interrupt routine COUNTRECEIVED_ISR which is called when an interrupt is triggered at GPIO port D which is anytime the Hall Effect sensor pulls pin 0 high A continuous while loop is inserted at the end Moving down in the code COUNTRECEIVED ISR clears the Port D interrupt that initiated the call and then disables port D interrupts This is done to prevent an interrupt from triggering while the subroutine is running It also has a smoothing effect on the output and prevents accidental and unwanted counts It then adds one to the turns counter variable and calls the function CreateStringFrmDigits This function is used multiple times in the program and is used to create a four character long string from a four digit number The string TurnsCounterString is then defined as this newly created string preceded by a C the identifier mentioned above A quarter second pause is inserted and then Port D interrupts are re enabled Subroutine CC_CallBack is defined in appconfig h to handle the ADC conversion interrupt as described in Project adctest2 Chapter 4 ReadADCChannel is called every
32. support SCI support 118 undef INCLUDE SIM SIM support subset of BSP undef INCLUDE_SPI SPI support undef INCLUDE_SRM Switch Relactance library undef INCLUDE STACK CHECK Stack utilization routines undef INCLUDE_SWITCH Switch support undef INCLUDE TIMER Timer support undef INCLUDE VAD VAD library undef INCLUDE V8BIS V8bis library undef INCLUDE V22 V22 library undef INCLUDE V42BIS V42bis library CR SR Ss s k k oe ae ae ok 2h a ak oe ak ok oe oe o oo oe oe ooo ale fe ale ale K ale le oe ale oe ale he he ie K ses oie a a sie ale ai oe sese oe ale K oe eoe oe ee ale ale ale ale ale ale ale ok ok ok kok Overwrite default component initializations from config config h using defines here HRS SH le le le le ok se oie sk a Dale a Dale Di ale ale oe ale ale ale ale ale ale ale ale ale ale fe ale ale oe ale ae ae ale oe ae le ae al le ae e ae oie ae ae Dale a a ale Di oe ale ai oe ale ale ale ale K ale ale ale ale ale 2K 2K Ok define GPR INT PRIORITY 20 1 Setup MpioD ISR priority endif 119 Appendix B TryREADOUT 120 C Code IF FILE main c PROJECT TryREADOUT mcp include port h finclude gpio h include bsp h int PortB int PortD void main void int n 0 int ones 3 tens 2 huns 1 open Ports B amp D PortB open BSP DEVICE NAME GPIO B NULL PortD open BSP DEVICE NAME
33. that serves as an oil filled junction box can be seen in the figure BENTHOS INC Benthos was founded in 1962 with the goal of designing and producing custom designed oceanographic research equipment The company is based out of North Falmouth MA and is most widely known for the production of underwater acoustic systems transponders releases imaging flotation and ROVs ART TA WE n WW Y Y Los Figure 2 3 Benthos Super SeaROVER The vehicles they produce include the EROV a small inspection ROV for the nuclear power industry the MiniROVER Mk II the Openframe the Openframe MiniROVER Mk II the SeaROVER the Super SeaROVER Figure 2 3 and the 15 Stingray Figure 2 4 The Stingray uses a proprietary digital control system developed by Under Control which utilizes an open system architecture based on an embedded Linux operating system Figure 2 4 Benthos Stingray 16 DEEP OCEAN ENGINEERING INC DOE builds the popular Phantom line of ROVs commonly used for scientific research military applications hull inspections nuclear facility work television and police search and recovery The company was formed in 1982 and is based in San Leandro CA Figure 2 5 DOE Phantom XTL The Phantom ROVs Figure 2 5 are small portable and based upon a common electrical architecture that allows interchangeability for spare parts and topside controllers Very little electric hardware is located o
34. the two count strings digittens and digitones It then constructs the string to be sent goingout by appending the ones digit to the end of the tens digit The constructed string is sent via the serial port The LabView display shown is an example supplied with LabView 5 0 called Serial Read with Timeout No modifications were made at this point to the supplied example program 67 Project adctest2 Having developed the basic structure of the software the final two tasks that remained were to test the ADC and DAC capabilities of the controller To simulate a strain gage a variable resistance pot running off of board power was attached to ADC channel 0 Pin 1 J9 This simulated a variable voltage input with a range of 0 to 3 3 VDC The resulting code is found in Appendix E adctest2 This contains the c code adctest2 c and appconfig h as well as the LabView panel and diagrams Once again the LabView example Serial Read with Timeout was used to view the results Walking through adctest2 c the first major definition seen is sadc1 which is an adc sState constant defining the configuration when opening the ADC port The second definition is Datal which is an ADC channel structure This defines the buffer where information from the ADC port is stored The constant definition that follows is for low2Threshold The yellow LED turns on and off when the value rea
35. to a rod or other linkage to operate a valve connecting device or other rotationally operated subsea well 47 equipment apparatus Subsea oil field equipment such as christmas trees and blow out preventers see glossary contain valves that require ROV intervention during installation work over repair upgrade or scheduled maintenance and sometimes during time of emergency failure of surface control system These valves have what are called end effectors or rotary actuator fixtures attached to the valve stems that allow an ROV operable torque tool to either close or open the valve by rotating the stem As a result of the misuse and lack of control of these tools expensive equipment has been damaged resulting in the loss of a great deal of money Thus the development of the smart torque tool which implies the tool has an electronic control system with feedback information such as torque hydraulic feed pressure hydraulic flow and turns count The control system gives the operator the ability to proportionally control the speed the tool rotates at and the torque it can produce 48 de PRESSURE GAUGES iussu d i EE VALVEINIERFACE uu Pm a au Llc AE TUE eue E Eris Preiser 1 T a j maie iat ke an as LE mai A al E cn n a d wer IET n i a e me iain wl UM em emer ran ar se Pl a re HYDRAULIC MOTOR E I DULL IT Figure 3
36. using defines here x aK akak K le ak le le ee ak oe a ok ole ok K K oe ooo oe oe ale o eo ale eoe ale ale ale ale fe ale ale oe ale ae ae ale oe K K ae le le le e ee ae ae K ale ai se ale a oe ese oe ee ale K K ale 2K ale ale K 2K ale endif 130 Appendix D LabViewGPIO 131 C Code JE FILE mainc F5 PROJECT LabViewGPIO mcp include port h include gpio h include bsp h include sci h include io h include assert h include time h include lt string h gt include lt stdio h gt static void COUNTRECEIVED void static void TURNSCOUNT void Fr gg 2 ale ale ode ale ode le le le oe al e al ak ale le ie le le le K e K dd le le ale ie hee Dale ale ale ale ale ale ie ee K 2 e K 2 K K K ok Skeleton C main program for use with Embedded SDK BIER HR HR HR DI ak ale ale ale oe ale le ee Di ake ak ale ale ale ale le ae fe ae ak K ale K ale ale oe ae le ae ae Di ae ale ale ale ale ale le ae fe a 2 ai 2 K 2 2k int SCIO int count 0x30 int prevcount 0x00 char digitones 2 0 char digittens 2 0 char goingout 2 00 int PortB int PortD IL LLLLLLLLLLLLLLLLLLLLLLLLLLLLLLL ak ak ak aK e ai ale ale ale ic ee ee Di ae ale ale ale cafe ee fe a 2 2 2 K 2 2k static void TURNSCOUNT int temp1 digittens prevcount count count if temp1 0x39 amp count 0x39 1 count 0x30 digitones count temp1 0x30 132 digittens temp 1 else if count 0x39 1 cou
37. 000m with Phoenix V in Background A majority of the vehicles operate on a PC based industrial backplane control system developed by GESPAC Industrie The company has also produced control systems based upon the PC 104 architecture PERRY SLINGSBY SYSTEMS Perry Slingsby is a Coflexip Stena Offshore group It is the result of the 2000 merger of Perry Tritech and Slingsby Engineering They have two main offices in York England and Jupiter FL The company s customers include offshore oil and gas telecommunications nuclear facilities and the military They have built 300 ROVs and 150 diving and submarine systems since their formation 35 years ago This comprises 50 of the world s commercial ROV fleet 21 Figure 2 15 Perry Slingsby Triton MRV 6 The systems they produce include the Flexjet Gator I and II MRV Olympian Scarab III Scorpion Trojan Viper Voyager and the Triton class vehicles Figure 2 15 These systems operate on a PC based industrial backplane control system Figures 2 16 2 17 28 Figure 2 17 Perry Slingsby Control Pod 29 THE SONSUB GROUP Sonsub is owned by Saipem SpA a division of the Italian company ENI AGIP They were bought by Saipem in 1992 and are based out of Houston TX They operate 14 ROVs and 7 cable burial trenching systems that were designed in house plus a number of vehicles provided by outside manufacturers These in house designs include the Innovator ROV Fi
38. 003 Phoenix V Remotely Operated Vehicles of the World 5 Edition Houston Oilfield Publications Inc 2002 Perry Slingsby Systems Coflexip Stena Offshore Group Company Profile http www perryslingsbysystems com 2001 Perry Slingsby Systems Coflexip Stena Offshore Group http www perryslingsbysystems com ps rov0O htm triton MRV 2003 Perry Slingsby Systems Coflexip Stena Offshore Group Company Profile http www perryslingsbysystems com 2001 Perry Slingsby Systems Coflexip Stena Offshore Group Company Profile http www perryslingsbysystems com 2001 Sonsub Inc Saipem SpA Company Profile Attp www sonsub com 2003 211 30 31 32 33i 34 35 36 37 38 39 Sonsub Inc Saipem SpA Innovator http www sonsub com 2003 Remotely Operated Vehicles of the World 5 Edition Houston Oilfield Publications Inc 2002 Stolt Offshore Ltd SCV 3000 http www stoltoffshore com 2000 SubAtlantic Ltd ROV Products http www sub atlantic co uk product_pages rov htm 2001 SubAtlantic Ltd Electronics Products http www sub atlantic co uk product_pages electronic htm 2001 Subsea 7 Company Profile http www subsea7 com company information company profile asp 2003 Subsea 7 Centurion Work Class ROV Series http www subsea7 com 2002 Thales GeoSolutions Group Ltd Thales G3 High Performance W
39. 1991 16 The CAN Protocol Attp www kvaser com can protocol index htm Kvaser AB 2002 17 3 2 3 Error Frame CAN Specification Part B Version 2 0 Stuttgart Robert Bosch GmbH 1991 18 The CAN Protocol Attp www kvaser com can protocol index htm Kvaser AB 2002 218 19 20 21 22 23 24 25 26 27 28 29 The CAN Protocol http www kvaser com can protocol index htm Kvaser AB 2002 3 2 1 Data Frame CAN Specification Part B Version 2 0 Stuttgart Robert Bosch GmbH 1991 The CAN Protocol http www kvaser com can protocol index htm Kvaser AB 2002 The CAN Protocol http www kvaser com can protocol index htm Kvaser AB 2002 8 Fault Confinement CAN Specification Part B Version 2 0 Stuttgart Robert Bosch GmbH 1991 The CAN Protocol http www kvaser com can protocol index htm Kvaser AB 2002 10 Bit Timing Requirements CAN Specification Part B Version 2 0 Stuttgart Robert Bosch GmbH 1991 10 Bit Timing Requirements CAN Specification Part B Version 2 0 Stuttgart Robert Bosch GmbH 1991 The CAN Protocol http www kvaser com can protocol index htm Kvaser AB 2002 The CAN Protocol http www kvaser com can protocol index htm Kvaser AB 2002 The CAN Protocol http www kvaser com can protocol index htm Kvaser AB 2002 219 30 The CAN Protocol Attp www kv
40. 65535 100 DACOut 0 temp2 Output B Side value on Channel C ioctl dacDevice DAC SET CHANNEL C NULL ioctl dacDevice DAC WRITE MODE UPDATE NULL 175 write dacDevice DACOut sizeof UWord16 PRR HR k He oR a ee HE EE EE RLN CTION ConstructPressureString BIER HR K HR oe sese e e aK ale aK ce he ae ai a This function constructs the pressure string and once complete makes makes a call to SetDACOutput CR SR S ae ale k ak ale ale e ale ale le ak ale e ak oe ae a ok ok oe oo oe ale fe ale le oe a stones seo ose oe eoe oe ale le oe fe cee ae ale Di oe oe ee ale ale le oe ale ie ee ae ae ai ae 2 ae 2K ale void ConstructPressureString char temp 1 1 if n 1 PressureString n temp 1 0 else if n 2 PressureString n temp 1 0 else if n 3 PressureString n temp 1 0 else if n 4 PressureString n temp1 0 SetDACOutputQ n 0 176 m 0 oko eiii FUNCTION ConstructA SideString RR HR HR HR sese e eoe ale ale ie ke fe This function constructs the A Side string and once complete makes p makes a call to SetDACOutput El RS tke 2 ale eoe o aK ak ak he ee oe ok ak ak o o oo ale ale K ak ie he fee ae ae ae 2 oe ooo ale ale ice ale he fe ae eae a ale eoe oe ale ale ale ale le he fe eee 2 K K ale 2 K void ConstructA SideString char temp 1 1 if n 1 ASideString n temp1 0 else if n 2 A
41. 83 01A Version 1 0 Palo Alto CA Echelon Corporation 1999 Modbus FAQs http www modbus org default htm North Andover MA Schneider Electric 2002 OLE searchNetworking com Definitions Needham MA TechTarget Inc 2003 OPC Technical Overview http www startmag com specialissues aspROPC OPC Foundation 1998 OSI searchNetworking com Definitions Needham MA TechTarget Inc 2003 What is PC 104 http www pc104 org technology reg_info html San Francisco PC 104 Consortium 2003 PROFIBUS FAQ http www profibus com support html Karlsruhe Germany PROFIBUS Nutzerorganisation e V 2001 The Reed Switch http www theproductfinder com sensors reesen htm Motion Control Solutions 1998 222 22 23 24 25 26 24 The SCADA Primer Components of SCADA Systems http members iinet net au ianw primer html Tek Soft Consulting 1997 TCP searchNetworking com Definitions Needham MA TechTarget Inc 2003 Telemetry searchNetworking com Definitions Needham MA TechTarget Inc 2003 UDP searchNetworking com Definitions Needham MA TechTarget Inc 2003 Universal Serial Bus Specification Revision 2 0 Compaq Computer Corporation Hewlett Packard Company Intel Corporation Lucent Technologies Inc Microsoft Corporation NEC Corporation Koninklijke Philips Electronics N V 2000 Section 921 Intervention Fi
42. A Modular Control System for Remote Subsea Equipment by Eric Stephen Smith Bachelor of Science Mechanical Engineering North Carolina State University 1996 A thesis submitted to the Department of Marine and Environmental Science at Florida Institute of Technology in partial fulfillment of the requirements for the degree of Master of Science In Ocean Engineering Melbourne Florida July 2003 Copyright 2003 Eric Stephen Smith All Rights Reserved The author grants permission to make single copies We the undersigned committee hereby approve the attached thesis A Modular Control System for Remote Subsea Equipment by Eric Stephen Smith Stephen L Wood Ph D P E Assistant Professor Ocean Engineering Principle Advisor Andrew Zborowski Ph D Professor and Program Chair Ocean Engineering H ctor Gutierrez Ph D P E Assistant Professor Mechanical Engineering George A Maul Ph D Department Head Department of Marine and Environmental Systems Abstract Title A Modular Control System for Remote Subsea Equipment Author Eric Stephen Smith Principle Advisor Stephen L Wood Ph D P E The following details the design of an expandable control system for use on remotely operated tooling and vehicles for the subsea industry The main objective is to develop a basic control module which uses off the shelf microcontroller technology and allows for the ability to connect modules together wit
43. B Ethernet and TCP IP were seen as other possible options USB is known for the plug amp play attribute that allows the user to simply plug in new components without having to go through complicated jumper settings or software driver installations Ethernet and TCP IP are the two most popular protocols used in network systems such as LANs WANs and the Internet Both provide the ability to easily add network nodes and communicate with high reliability However none of these methods match the simplicity of the CAN model s broadcast method along with the reliability that results from the five methods of error checking 113 ROVs are high noise environments requiring reliable control systems Because of confined electronics housings power cables are often run in close proximity to signal wires Electric motors hydraulic pumps and operation in salt air environment also add to the list of electrical engineering obstacles The Control Area Network was designed for and has been proven to be reliable on automotive control systems These systems are subject to the wear and tear an automobile must withstand and are still reliable enough to control systems such as anti lock brakes While the failure of an ROV won t result in an injury or possible death of a person the money and time involved in offshore industry and research requires a robust system The development of this baseline system lays the groundwork for further system design While
44. BASELINE SYSTEM TOPSIDE DISPLAY Figure 7 1 Topside GUI Window The user can enter any value from 0 3000 psi into the pressure digital control and press the associated Submit button Values over 3000 will be interpreted as 3000 The software then sends this value via the serial port to the valve pack controller board The bottom side controller echoes this value back which serves as an error check to ensure the number was received Further error checking is available by use of the strain gage torque reading set up The bottom side controller by way of a strain gage reads the actual torque output of the tool and transmits the value top side via the serial port This value is displayed in foot Ibs and can be visually compared to the current pressure setting Rotational speed of the tool is controlled with the two controls labeled Flow Side A and Flow Side B The value is entered as a percentage 0 100 and transmitted bottom side via the serial port No feedback is currently enabled due to the fact a visual determination of speed can be made by observing the tool However it is recommended that this feedback be installed as an upgrade The Diagnostics section aids in any troubleshooting and allows the operator to check readouts with the actual strings being sent and received The Transmit String indicator displays raw data being sent from the topside computer via the serial port Receive String shows the raw data coming i
45. C Net TCP Ethernet UDP and Device Net Have also developed a control system based upon PC 104 architecture for MBARI Monterey Bay Aquarium Research Institute Figure 2 11 Figure 2 11 ISE PC 104 Control Pod designed for MBARP 23 ISE has developed this proprietary control engine based upon the expansive library of code they have assembled As a result they can put together a control system using virtually any of the common hardware platforms and operating systems in use today MITSUI ENGINEERING AND SHIPBUILDING CO LTD Mitsui is a large shipbuilding company with a division that builds small inspection ROVs They are also known as the manufacturer of the Kaiko which is the deepest diving ROV in the world capable of reaching the bottom of the Marianas Trench 11911m Their vehicles include the inspection ROV RTV 200 Mk II the Dolphin 3k and the Kaiko Figure 2 12 24 Figure 2 12 Mitsui Kaiko 10 000m Depth Capability 25 OCEANEERING INTERNATIONAL INC Figure 2 13 Oceaneering Hydra Magnum with Torque Tool and Garage TMS Oceaneering holds a 33 market share of the worlds ROV operations They were formed as a diving company in 1964 and are based in Houston TX Currently they operate over 120 systems that include the Hydra Magnum Figure 2 13 Hydra Millennium Hydra Minimum Phoenix Quantum Mongoose and deep diving Magellan Figure 2 14 26 Figure 2 14 Oceaneering Magellan 8
46. C UNIVERSITY The Autonomous Underwater Vehicle AUV department of FAU has developed a number of vehicles over the past decade including the Ocean Voyager I and IL Figure 2 26 and the Explorer series The development of an AUV has different requirements from an ROV design An AUV must have all processing power onboard the vehicle There are no topside computers or operators to share decision making tasks This means that the selected control system must have the processing power and speed to perform navigational duties as well as mission specific tasks simultaneously This being said it is still educational to review AUV control systems and explore any similarities with their ROV brethren Figure 2 26 FAU Ocean Voyager I and II One of the goals of their designs at FAU was to provide a modular system with mission specific work packages FAU To accomplish this goal the LON Works network protocol was selected This control system is similar to a CAN 38 system in that it de centralizes control to a network of multiple nodes communicating via a common bus The university has also used the real time operating system VxWorks from WindRiver combined with control modules written in C to produce the Ocean Voyager s Intelligent Control System ICS The system uses the VME bus with two onboard 16 MHz 68020 processor Harbor Branch Oceanographic Institution HBOI located in Ft Pierce FL is a research and educational institution
47. Control Area Network will be described along with the basic structure of the expanded system 93 Chapter 9 Expanded System This chapter will present a theoretical layout of a work class ROV based upon the control system described previously in this paper A work class ROV as defined under API specifications has dimensions greater than or equal to 86 x70 x95 and weighs over 5000 Ibs These vehicles are also equipped with a robotic manipulator that is used to grab and move items or tools The driving idea behind the design of this expanded system is that individual components of the ROV have their own controllers and software These components can then be added or removed from the system more easily and in the case of single component failure the entire system is not brought down The CAN protocol presented in Chapter 8 is used as a communications link between these components However a higher layer protocol HLP is necessary to create a full network system The HLP designed for the DSP56F805 is called Motorola Scalable Controller Area Network MSCAN Motorola Scalable Controller Area Network MSCAN is an add on module to the Embedded SDK for digital signal processors DSPs It is based upon the MSCAN12 definition first used on the MC68HC12 family controllers The module provides CAN drivers as well as functions written in C that allow the programmer to write code using the SDK environment The drivers are written with a default set
48. D support for target board undef INCLUDE MCFUNC Motor Control functional library undef INCLUDE MEMORY Memory support undef INCLUDE PCMASTER PC Master support undef INCLUDE PLL PLL support subset of BSP undef INCLUDE_PWM PWM support undef INCLUDE QUAD TIMER Quadrature timer support undef INCLUDE SCI SCI support 123 undef INCLUDE SIM SIM support subset of BSP undef INCLUDE SPI SPI support undef INCLUDE SRM Switch Relactance library undef INCLUDE STACK CHECK Stack utilization routines undef INCLUDE SWITCH Switch support undef INCLUDE TIMER Timer support undef INCLUDE VAD VAD library undef INCLUDE VS8BIS V8bis library undef INCLUDE_V22 V22 library undef INCLUDE_V42BIS V42bis library CR SR Sos hse k ak ae ae ok seo ak oe oe ok oe oe o oo ooo ooo ale fe ale ale fe K IO Overwrite default component initializations from config config h using defines here CHR K le eee ee ok se a sk ole ok K a Dale Di ale ale oe ale ale ale ale ale ale ale ale ale ale fe ale ale oe ale ae ae ale oe ae ae ae fe oe ae al ae oi ae ae sie ale a a ale a oe 2K ai oe ale ale ale ale K ale ale ale ale ale ale ale define GPR_INT_PRIORITY_20 1 Setup MpioD ISR priority endif 124 Appendix C Serial Test 125 C Code JE FILE mainc Je PROJECT Serial test mcp
49. E AEC AEC library undef INCLUDE BLDC BLDC library undef INCLUDE BUTTON Button support undef INCLUDE CALLER ID CallerID library undef INCLUDE CAN CAN support undef INCLUDE CAS DETECT CAS detect library undef INCLUDE COP COP support subset of BSP undef INCLUDE_CORE CORE support subset of BSP undef INCLUDE_CPT CPT library undef INCLUDE_DAC DAC support undef INCLUDE_DECODER Quadrature Decoder support undef INCLUDE_DES DES library undef INCLUDE DSPFUNC DSP Function library undef INCLUDE DTMF DET DTMF detect library undef INCLUDE DTMF GEN DTMF generation library undef INCLUDE FILEIO File I O support undef INCLUDE FLASH Flash support undef INCLUDE G165 G165 vocoder library undef INCLUDE G711 G711 vocoder library undef INCLUDE G726 G726 vocoder library define INCLUDE_GPIO General Purpose I O support define INCLUDE_IO VO support undef INCLUDE_ITCN ITCN support subset of BSP undef INCLUDE_LED LED support for target board undef INCLUDE_MCFUNC Motor Control functional library undef INCLUDE MEMORY Memory support undef INCLUDE PCMASTER PC Master support undef INCLUDE PLL PLL support subset of BSP undef INCLUDE_PWM PWM support undef INCLUDE QUAD TIMER Quadrature timer support define INCLUDE SCI SCI support
50. Handbook Indianapolis Cisco Press 1999 4 Chapter 1 Internetworking Basics Open System Interconnection Reference Model Internetworking Technologies Handbook Indianapolis Cisco Press 1999 5 Chapter 1 Internetworking Basics OSI Model Physical Layer Internetworking Technologies Handbook Indianapolis Cisco Press 1999 6 1 Introduction CAN Specification Part B Version 2 0 Stuttgart Robert Bosch GmbH 1991 7 1 Introduction CAN Specification Part B Version 2 0 Stuttgart Robert Bosch GmbH 1991 217 8 Chapter 1 Internetworking Basics OSI Model Network Layer Internetworking Technologies Handbook Indianapolis Cisco Press 1999 9 Chapter 1 Internetworking Basics OSI Model Transport Layer Internetworking Technologies Handbook Indianapolis Cisco Press 1999 10 OSI searchNetworking com Definitions Needham MA TechTarget Inc 2003 11 OSI searchNetworking com Definitions Needham MA TechTarget Inc 2003 12 Chapter 1 Internetworking Basics OSI Model Application Layer Internetworking Technologies Handbook Indianapolis Cisco Press 1999 13 2 Basic Concepts CAN Specification Part B Version 2 0 Stuttgart Robert Bosch GmbH 1991 14 3 2 Frame Types CAN Specification Part B Version 2 0 Stuttgart Robert Bosch GmbH 1991 15 3 2 1 Data Frame CAN Specification Part B Version 2 0 Stuttgart Robert Bosch GmbH
51. IO SCL DATAFORMAT EIGHTBITCHARS NULL Set the Receive Callback function ioctl SCIO SCI CALLBACK RX sciRxCallBack The SCI Rx CallBack function will be called by the SCI driver after one character is received by setting the read length to 1 168 SciReadLength 1 ioctl SCIO SCI SET READ LENGTH amp SciReadLength El Je This function handles the ADC conversion complete interrupt and increments the syncronization flag to start another read El III void CC CallBack adc_eCallbackType type adc_tSampleMask causedSampleMask CCFlag 1 El ihe This function configures the ADC port opens ADC channel 0 according to structure sadc0 initializes the synchro flag and starts the first el read CR SR S ae ale sk oe o eoe ale ak ak ale He oe ae a oe K oe oo oe oo ale le ak a ak aK ole K oe ook ooo ale ale le oe fe ie fee a sese oe oe ee ale ale fe oe ale ie ee oe ae ai K 2 2 2 ale 2K void ConfigADCPort void Open ADC Port Data0 handle open BSP DEVICE NAME ADC 0 0 amp sadcO CCFlag 0 Initialize synchro flag to zero ioctl Data0 handle ADC_START 0 Start ADC reads 169 FUINCTION ReadADCChannel BR HR HR HR HR K a K ale ale ale ale ak ak ak a 35 This function is called byt Timer1ISR and reads the value from ADC channel 0 I
52. SideString n temp1 0 else if n 3 ASideString n temp 1 0 SetDACOutput n 0 m 0 177 FUINCTION ConstructBSideString RR HR HR HR DI sese eoe e ale ee a This function constructs the B Side string and once complete makes makes a call to SetDACOutput CR SR Ste sese ak k ale oe oe ale ee ak He ak oe ae a oe ok oe oo oe ale fe ale ale aK ae aK aK De oko K K oe eoe ale le oe ale ae Di ae sese ak K ale ale ale ale le ae ale ie ee oe ae oi 22 2 2 2 2k void ConstructBSideString char temp1 1 if n 1 BSideString n temp1 0 else if n 2 BSideString n temp 1 0 else if n 3 BSideString n temp 1 0 SetDACOutput n 0 m 0 178 F File appconfig h External RAM J Project PUT IT ALL TOGETHER mcp ifndef APPCONFIG H define _ APPCONFIG H ifdef __cplusplus extern C endif CR SR Ss k k k ak ae ae ok sk oe ak sese ok ak oe o ook oe eoe ooo ale ale ale ale K K le ae ale ie IO Include needed SDK components by changing the undef to define Refer to config config h for complete list of all components and component default initialization CHR S le eee ee ok ae oie ak ole ok K Di Dale Di ale ale oe o ale ale ale ale ale ale ale ale ale fe ale ale oe ale le ae ale oe ae le ae al le ae al ae oi De ae Di ale a a ale a oe ose oe ale ale ale al
53. St a ae a mum tm aa a B Figure 2 8 SeaEye Lynx and TMS Garage Hydrovision recently introduced their CURVETECH control system based on the PC 104 footprint Figure 2 9 Their development includes the following points 6 Selection of components kept to standard items available from more than one source 20 Chose PC 104 and configured it to run as an Allen Bradley PLC programmable logic controller Based software programming on SCADA OPC DF1 and ladder logic communication protocols and programming languages common to industrial PLCs see glossary for definitions of these terms Claim to be able to run the control system on any PC based host Configured system such that it can be modular from tooling packages up to full size ROV s Figure 2 9 Hydrovision CURVETECH PC 104 Control System The CURVETECH system was developed with the main requirement that it be a new scaleable control system for ROVs subsea tooling and other applications Hydrovision 1998 This design requirement closely follows the goals laid out in the beginning of the chapter The use of PLC style controllers allows for compatibility with many industrial products but these require a programmer who is fluent in the communications protocols and programming methods mentioned above As mentioned in the introduction one of the goals of the design in this paper is to maintain an easily expandable system The us
54. Subsea 7 is the result of the combination of Halliburton Subsea and DSND Subsea in 2002 They operate a fleet of 112 ROVs with a maximum water depth capability of 5000m The vehicles include the Tuna Centurion Figure 2 22 Clansman Eagle Eye Examiner Hammerhead Hercules Pioneer Stealth and Warrior along with vehicles manufactured by Perry Slingsby and Hydrovision Varying control systems are used in their many systems The Tuna uses three programmable logic controllers PLCs two on the vehicle and one topside The Warrior and Hercules use a PC based system using multiple printed circuit boards PCBs connected on a parallel bus 33 Figure 2 22 Subsea 7 Centurion 34 THALES GEOSOLUTIONS Figure 2 23 Thales G3 Thales GeoSolutions is based in London and is owned by the French company Thales Electronics Plc Their business concentrates on GPS positioning and tracking ROV design and geo technical sensor development They operate a fleet of approximately 50 ROVs including the Sea Pup G3 Figure 2 23 Seal Sealion Mk II Figure 2 24 Sealion 3000 and Sea Serpent The Seal and Sealion Mk II use a control system based upon the Zilog Z80 family of microcontrollers The more recent vehicles use a PC based rack system using the ARCNet protocol 35 bL LT a SOC ES c iar Figure 2 24 Thales Sealion Mk II Offshore Control Industry ABB ABB develops automation systems for industrial and ut
55. Then a series of nested case structures are used to concatenate the string with the proper identifier and number of zeroes to make the string the correct form For Flow Side A and B the proper output would be of the form AXXX or BXXX where XXX is the percentage value being transmitted For Pressure the proper output would be of the form PXXXX where XXXX is the pressure value being transmitted Using Flow Side B as an example a comparison is made to see if the string length is greater than 1 and the result is used in the case structure CS 3 If false 82 not greater than 1 then the string is concatenated with B00 resulting in the string BO0OX This string is sent via the serial port using the Serial Port Write VI a LabView supplied VI on port 0 comm port 1 The string is also displayed in the Transmit String dialog box under diagnostics The error indicator is attached to this write VI as well The same errors mentioned above will cause the indicator to light If CS 3 receives a true answer the string is greater than 1 then it moves on to another comparison to see if the string is greater than 2 The same process is continued with CS 4 and CS 5 until the proper string form is assembled All sent strings are displayed in the Transmit String dialog box and any errors in serial communication result in an error out light Moving back to the outermost case structure CASE STRUCT
56. UDP requires less processor overhead and is not designed to handle large data messages like TCP In the Open Systems Interconnection OST communication model UDP like TCP is in layer 4 the Transport Layer 206 USB VME bus WAN Work Class ROV Universal serial bus According to the Universal Serial Bus Specification Revision 2 0 The goal is to enable such devices from different vendors to interoperate in an open architecture The specification is intended as an enhancement to the PC architecture spanning portable business desktop and home environments It is intended that the specification allow system OEMs and peripheral developers adequate room for product versatility and market differentiation without the burden of carrying obsolete interfaces or losing compatibility The VerseModular Eurocard bus was designed as a master slave bus system to withstand high shock vibration and temperatures The standard specifies a circuit board called the Eurocard that comes in three different footprints Wide area network According to API specifications a heavy work class ROV equals or exceeds the following dimensions 86 x70 x95 and 5000 Ibs This type of vehicle is typically equipped with multiple cameras and lights two robotic manipulators sonar and various tools depending on the task at hand Heavy work class ROVs are used for projects such as oceanographic research offshore oilfield work underwate
57. URE 1 it can be seen that if it receives a false result a similar set of case structures is embedded that are tied to Flow Side A These case structures CS 6 CS 7 CS 8 CS 9 and CS 10 perform a serial write of the Flow Side A user entered value if CS 6 receives a true value This serial write and the above mentioned case structures perform exactly as those described for Flow Side B above If CS 6 receives a false answer another set of embedded case structures performs the same function for the Pressure value These structures are labeled CS 11 CS 12 CS 13 CS 14 CS 15 and CS 16 If CS 11 receives a true value the above mentioned case structures will enable a serial write of the Pressure user entered value Finally the while loop WHILE LOOP 1 is encountered if CS 11 is false This while loop and the associated embedded case structures perform a serial read at port 0 comm port 1 while the timeout limit is not reached If the timeout limit is reached the while loop will not execute and the Timeout indicator will be lit 83 If the serial port is operating ok the while loop is executed and the Bytes at Serial Port VI again supplied with LabView 5 1 will count bytes received at the indicated port in this case port 0 If the required byte count 20 is not reached CS 17 will register false and CS 18 and CS 19 will perform a timeout check and
58. akers and alarms to provide power and isolation to the ROV system Programmable logic controller 202 Plug amp play Processor PROFIBUS PWM The ability to attach a piece of equipment to a computerized system without having to perform complicated hardware changes to make it work The term was developed to describe modern peripherals that can be installed into a wide range of desktop computers with the associated driver software without having to manipulate dip switches and BIOS settings In this text refers to a microchip found in a desktop computer or laptop Operation revolves around an operating system such as Windows DOS Linux etc which provides the user with a working environment These chips are not designed to work by themselves but with a wide variety of peripherals such as external memory storage devices hard drives CD ROMs user input devices keyboard mouse and graphical displays monitor Process Field Bus is governed by IEC 61158 According to PROFIBUS International the key features of PROFIBUS are speed ease of use versatility economical interoperability with plug and play open and standardized It can be controlled by PLC PC or DCS based systems 20 Pulse width modulation 203 Reed Switch ROV RTR bit RxBG RxF flag RxFG SBC This device is a proximity sensor that detects the presence of amagnet Inside the switch there are two ferromagnetic contacts Introduct
59. al Port No Action Taken for Read 182 I Jajpuer 40443 ajdus p23n33x3 33444 1404 Plas asleJ 10443 3ufi553ud Jajpue 40443 ajduiic JU 10d jenas 5119 dOlg i LU ms 9 sura vivd WUT 40d PLAS E g 180d 3215 43908 183 Error True No Serial Port Write Simple Error Handler vi Simple Error Handler vi 184 185 180 Error True No Serial Port Write Simple Error Handler vi 187 Simple Error Handler vi 188 189 Error True No Serial Port Write Simple Error Handler vi 190 Simple Error Handler vi 191 Glossary 192 10BaseT API ARCNet AUV BCH method BOP An Ethernet standard that specifies a 10 Mbps transfer rate 10 over a twisted pair line T This standard also uses a star bus configuration Individual computers in the system are connected to common hub computers instead of a signal common communication line Analog to digital converter American Petroleum Institute Originally developed by the Datapoint Corporation as a high speed local area network LAN and was frequently found in office automation applications Like Ethernet and Controller Area Network CAN ARCNet is a data link layer technology with no defined application layer Autonomous underwater vehicle The Bose Chaudhuri and Hocquenghem method is a type of CRC Blowout preventer This large structure is placed over
60. are four user programmable values The SJW which has a value between 1 and the minimum of 4 and the length of phase segment 1 93 The number of quanta before the sample point The number of quanta after the sample point The clock prescaler value PHYSICAL ATTRIBUTES The signals transmitted across the bus are termed dominant and recessive A dominant bit has a logic 0 value and a recessive bit has a logic 1 value Nodes are connected to the bus such that a dominant bit will drive the signal even if all other nodes are transmitting a recessive bit The most common used wiring scheme is specified under ISO 11898 which calls out a two wire balanced signal Approximate transmission lengths are 1 Mbit s 40m 500 kbit s 100m 250 kbit s 200m 125 kbit s 500m 10 kbit s 6000m Although there is no standard CAN connector those typically used include a 9 pin DSUB a 5 pin mini c and a 6 pin Deutch connector Conclusion As can be seen in the preceding overview CAN has multiple methods of error checking This is one of the main reasons the protocol was selected and is important for a communications system being developed for a high noise industrial environment The protocol also allows for a simple method of adding new nodes to the system because of the broadcast message transmission method it uses As a 94 result items do not require individual addressing or other complicated identification sche
61. aser com can protocol index htm Kvaser AB 2002 Chapter 9 References Section 921 Intervention Fixtures Specification for Subsea Wellhead and Christmas Tree Equipment API Specification 17D Spec 17D First Edition October 30 1992 Dallas American Petroleum Institute 1993 2 8 1 Introduction DSP56F801 803 805 807 16 Bit Digital Signal Processor User s Manual Preliminary Document No DSP56F801 7UM D Rev 3 0 Denver Motorola Inc 2001 3 A2 CAN Bus Installation Embedded SDK Software Development Ki DSP56800 MSCAN Driver User s Manual Document No SDK116 D Rev 2 07 22 2002 Denver Motorola Inc 2002 4 8 7 1 Message Storage DSP56F801 803 805 807 16 Bit Digital Signal Processor User s Manual Preliminary Document No DSP56F801 7UM D Rev 3 0 Denver Motorola Inc 2001 5 1 3 MSCAN Overview Embedded SDK Software Development Ki DSP56800 MSCAN Driver User s Manual Document No SDK116 D Rev 2 07 22 2002 Denver Motorola Inc 2002 6 2 2 MSCAN Driver Static Configuration Embedded SDK Software Development Ki DSP56800 MSCAN Driver User s Manual Document No SDK116 D Rev 2 07 22 2002 Denver Motorola Inc 2002 Glossary References 220 10Base T searchNetworking com Definitions Needham MA TechTarget Inc 2003 CAN Specification Part B Version 2 0 Stuttgart Robert Bosch GmbH 1991 Cyclic Redundancy Checking searchNetworking com Defin
62. ate a workable baseline control system Chapter 4 discusses the use of while loops and built in pauses to smooth data collection and timing The final system required the use of interrupt drivers and priority settings to create the real time multitasking control program presented in this chapter The C code LabView panel and LabView diagrams can be found in Appendix J Baseline System This includes the C code Put It All Together c and appconfig h The intention of this software is to meet the requirements as laid out in Chapter 3 for the subsea portion of the baseline system To reiterate these requirements are Turns count information displayed either via an LED or transmitted to the surface Turns counter Hall Effect or reed switch input digital I O Torque strain gage input analog I O Communication link for relay of information such as pressure and flow To better explain the software developed for this thesis it is easiest to walk through the code step by step Walking through Put It All Together c 77 global numeric and string variables as well as functions are declared As in the earlier ADC example the adc sState constant sadcO is defined which configures the ADC port during an open call Data0 an ADC channel structure which describes the ADC storage buffer is then defined Moving into function main the DAC port is opened and then ConfigSerial is called This function conf
63. ation for the baseline system while having extensive enough requirements to be representative of the expanded system The baseline system incorporated I O 112 both digital and analog as well as serial communication It also presented a need for a user friendly graphical user interface GUI which was met through the use of the LabView software The final product resulted in a single small footprint unit containing the valves manifold and electronics This system can be easily incorporated into any larger control system that uses serial communications or the CAN protocol The method of expansion contributed to the choice of the Motorola DSP because of its support for the Bosch Control Area Network CAN provides a low level communication protocol that has multiple methods of error checking and high bus speeds These attributes help explain the success of the protocol in automotive control systems such as anti lock brakes where reliability is the principle issue The Motorola MSCAN drivers provide the higher layer protocol and support software This package along with the Software Development Kit SDK provides a user friendly environment that can lead to quick product development After initial development the default settings may be modified to create a more efficient system There are a number of communication protocols available that provide excellent networking capability as well as extensive error checking The Universal Serial Bus US
64. ayer 7 Presentation Layer 6 Session Layer 5 Transport Layer 4 Network Layer 3 Data Link Layer 2 Physical Layer 1 The upper or high layers are termed application layers These include application presentation and session The lower layers are dubbed data transport layers that consist of transport network data link and physical The physical layer defines the actual physical link between the networked computers This portion of the model defines items such as connector style voltage levels and communication timing Ethernet defines a physical layer since it defines whether a twisted pair or coaxial cable should be used for the protocol The data link layer handles transmission reliability issues such as error notification physical addressing data flow and data sequencing The data link layer is divided into two sub layers logical link control LLC and media access control MAC The LLC layer is defined under IEEE 802 2 and defines services for data transfer and remote data requests The MAC layer is responsible for the 86 transfer protocol and also assigns MAC addresses that are used by some protocols to identify individual nodes The network layer defines the layout of the network and network addressing This layer can define how nodes are addressed on the network as opposed to the MAC address and the routes that messages are transmitted across a network The transport layer is responsible for data transmi
65. bstitute remote request Transmission Control Protocol is a communication protocol used along with the Internet Protocol IP to send information over LANs WANS and the Internet TCP is an alternative to the User Datagram Protocol UDP and together with IP is sometimes referred to as TCP IP TCP handles the disassembly and assembly of data packets as well as error checking In the Open Systems Interconnection OSI communication model TCP like UDP is in layer 4 the Transport Layer 205 Telemetry TMS Torque tool TxE flag The wireless transmission and reception of measured quantities for the purpose of remotely monitoring environmental conditions or equipment parameters The term is also used in reference to the signals containing such data 24 Tether management system rotary actuator intervention tool as defined in API Spec 17D Section 921 2f It creates a rotary action that can be used for such applications as rotating a valve stem to the open or closed position Transmit empty flag User Datagram Protocol is a communication protocol used along with the Internet Protocol IP to send information over LANs WANs and the Internet UDP is an alternative to the Transmission Control Protocol TCP and together with IP is sometimes referred to as UDP IP UDP does not disassemble and reassemble data packets but requires higher layer software to determine that the entire data message has arrived As a result
66. c The main subroutine is rather stmple Ports B and D required for control of the LED display are initialized and a number in this case 123 is output to the display Each digit of the display receives a binary input over four pins If pin one for a digit is high then it reads one if pin four is held high it reads eight and so on Values above nine are received as errors Pins 0 through 3 of port B are connected to the ones digit of the display Pins 4 through 7 of port B are connected to the tens digit 66 Pins 0 through 3 of port D are connected to the hundreds digit The final digit is held to ground and therefore reads zero which explains the reading seen in Figure 4 3 Figure 4 3 Operational LED Display Since onboard power is not ample enough to drive the display a power supply was connected separately The test bench for this set up can be seen in Figure 4 4 67 VARIABLE POWER SUPPLY DEMONSTRATION LED DISPLAY BOARD Figure 4 4 LED Test Set Up Project Serial test This program enables the controller to receive a character via the serial port and outputs Hello as the response The code can be found in Appendix C Serial test which contains main c and appconfig c Subroutine main c initializes the serial port and declares three call back functions for receive transmit and exception interrupts The only one used in this case is sciRxCallBack which is ca
67. ck to the topside unit including sensor data and current component settings for instance the power setting of a particular thruster TOPSIDE CONTROLS LOCATED IN CONTROL VAN UMBILICAL CARRIES POWER AND 7 CONTROL J SIGNALS BETWEEN SURFACE ANDROV gt BOTTOMSIDE CONTROL UNIT LOCATED IN SEALED HOUSING OR OIL FILLED PRESSURE COMPENSATED CONTAINER ROV m Figure 1 3 ROV Topside and Bottom Side System Operated from a Ship The topside control computer is generally a PC personal computer and therefore runs a processor such as an Intel x86 or AMD type microchip The bottom side CPU can be a microcontroller Intel type processor programmable logic controller see Glossary or a number of other industrial CPU s There are many definitions for these different CPU types In this thesis microcontroller refers to a microchip which runs a set of embedded instructions and is often tailored to a specific application A processor is equivalent to the CPU found in standard desktop and laptop computers and runs an operating system which governs processor usage As a rule of thumb processors typically run at higher speeds have a wider range of capabilities than a microcontroller and are intended for use with peripheral devices An Introduction to the System The control system designed in this paper uses a PC for the topside CPU and a microcontroller for the bottom side The topsi
68. d Set the data format for 8 bit characters and Clear the Read and Write buffers ioctl SCIO SCI DATAFORMAT EIGHTBITCHARS NULL CONFIG GPIO if defined BSP DEVICE NAME GPIO D PortD open BSP DEVICE NAME GPIO D 0 ioctl PortD GPIO SETAS OUTPUT gpioPin D 4 ioctl PortD GPIO SETAS GPIO gpioPin D 4 ioctl PortD GPIO SET gpioPin D 4 endif defined BSP DEVICE NAME GPIO D 140 LedFD open BSP_DEVICE_NAME_LED 0 0 if defined LED YELLOW ioctl LedFD LED OFF LED YELLOW endif defined LED YELLOW CCHlag 0 l Start ADC read ioctl Datal handle ADC START 0 Construct string while 1 Datal len read Datal handle Datal Buf sizeof Datal Buf if Datal len gt 0 NumSend Doatal Buf 0 Calibrate Data ADC range 0 32559 theoretical pressure range 0 3000 psi 32559 3000 10 853 NumSend NumSend 10 853 NumSendThous NumSend 1000 NumSendHuns NumSend NumSendThous 1000 100 NumSendTens NumSend NumSendThous 1000 NumSendHuns 100 10 NumSendOnes NumSend NumSendThous 1000 NumSendHuns 100 NumSendTens 10 write SCIO amp NumSend sizeof NumSend Set LED if ADC read is below threshold if Datal Buf 0 gt low2Threshold if defined LED_YELLOW ioctl LedFD LED ON LED YELLOW endif defined LED YELLOW else if defined LED_YELLOW ioctl LedFD LED OFF LED
69. d at the ADC port falls below this constant It was used primarily for debugging purposes Continuing into the main routine the serial port is initialized the ADC port is opened and the GPIO ports are initialized An ADC read is then started and if the buffer length is greater than zero the value is sent via the serial port Note that the value is calibrated by dividing by 10 853 It was assumed that code might be used for reading a pressure value from 0 to 3000 psi standard pressure range on an ROV hydraulic system The code then turns the yellow LED on or off depending the reading from the ADC port Finally it resets the synchronization flag if a read did occur and initiates another ADC read This re initiation of ADC reads is necessary because of the set up in appconfig h When viewing this file it can be seen that the ADC scan mode is defined as sequential once This means that the controller will step 68 through all of the configured ports in this case only Port 0 sequentially and only one time Therefore processing power is not wasted by continuously reading the value Also defined are the number of samples taken and the callback interrupt mode The interrupt mode defines when the ADC triggers an interrupt This can be triggered by a high or low threshold setting a zero crossing or it can just return raw data in which the interrupt resets are more or less done manually in the code as is shown here Project TryDAC
70. de PC provides a platform which is familiar to the operator through the use of a Windows operating system The selection of a microcontroller instead of a more powerful processor on the bottom side is due to limited requirements of the subsea portion of an ROV control system The primary purpose of the bottom side controller is to act as a relay system It must be able to receive and prioritize commands from the surface system carry out the required functions via input output I O capabilities and then deliver status information back to the surface The testing of this control system on the Motorola DSP was completed in a step by step fashion This means the software progressively incorporated more complicated functions This allowed a comparison between the microcontroller running a single I O function such as turning an LED on and off versus running the final product There was no visible perception of a slow down in performance during this comparison The focus on software structure mentioned above is an attempt to use manufacturer provided libraries to create code that can be easily understood and modified Many items on an ROV have identical functionality from a processing perspective For example an analog pressure transducer and an analog flow meter each with an output range of 0 to 5 volts DC would appear identical to the controller Calibration of this data can occur on the topside processor allowing the operator to not only view useable i
71. e K ale ale K ale ale 2k 2 Ok define INCLUDE_BSP BSP support define INCLUDE_IO VO support define INCLUDE_TIMER timer support define INCLUDE SCI SCI support define INCLUDE ADC ADC support define INCLUDE GPIO General Purpose I O support define INCLUDE DAC DAC support OIL LLL od de le le e al ale a ak ale ale ie le le ee DI ae tot tot e ale le al le e ale e al le e le e le le ale le e le le le le le le le le ae le ls fe le je le le le le je le je le ls kek Overwrite default component initialization from config config h CHR K le eee le le ok se oie ok ole ok K oe seo Di ale ale oe ale ale ale ale ale ale ale ale ale ale fe ale ale oe ale ae ae ale oe ae K ae al oe ae al ae al a ae Di ale a oe sese ale ale ale oe ale ale ale ale K ale ale ale ale ale 2K 2 Ok define SCIO SEND BUFFER LENGTH 20 Setup transmit buffer length define SCIO RECEIVE BUFFER LENGTH 5 Setup receive buffer length define GPR INT PRIORITY 20 1 Setup GPIO Port D ISR priority define ADC SCANMODE ADC SEQUENTIAL ONCE Set ADC Scan Mode define INCLUDE ADCA SAMPLE 0 Setup ADC Sample 0 user raw conversion callback define ADC_RAW_CONVERSION_COMPLETE_CALLBACK CC_CallBack ifdef cplusplus endif endif 179 LabView Front Panel Block Diagram 180 181 Test For Timeout if not elapsed wait for a millisecond Error at Bytes at Seri
72. e al od al ak ale ale ie le le ae le le ae ale ale ale ee le le le Di e dd ale ale ale le ee le ale le ae ale ale ale le ae le ll ale ale ee ee ale ale ale ae ale ae K ale ale ai le gt K ok Include needed SDK components below by changing undef to define Refer to config config h for complete list of all components and component default initialization BIER HR ae le DI a ale ale ale ic le le ak le DI seo ale ale ale ale le ae le e K ook oe ale ale le ae ae e le ae ae oe ale ale le ae ale oe ae a K ale ale ale ale ale ale ale ale ale ale le oe a oe ale ale ai ale K ae fe ale fe ale al K 2 le define INCLUDE_BSP BSP support includes SIM COP CORE PLL ITCN undef INCLUDE_3DES 3des library undef INCLUDE_ADC ADC support undef INCLUDE AEC AEC library undef INCLUDE BLDC BLDC library undef INCLUDE BUTTON Button support undef INCLUDE CALLER ID CallerID library undef INCLUDE CAN CAN support undef INCLUDE CAS DETECT CAS detect library undef INCLUDE COP COP support subset of BSP undef INCLUDE_CORE CORE support subset of BSP undef INCLUDE_CPT CPT library undef INCLUDE_DAC DAC support undef INCLUDE_DECODER Quadrature Decoder support undef INCLUDE DES DES library undef INCLUDE DSPFUNC DSP Function library undef INCLUDE DTMF DET DTMF detect library undef INCLUDE DTMF GEN DTMF generation library unde
73. e of the C programming language is viewed as a primary tool of achieving this requirement 21 The selection of a PC 104 platform is excessive for the requirements While the PC 104 is readily available from a variety of manufacturers a single board system based on a microcontroller such as the DSP selected here is more efficient as far as processing power and can take up less physical space INTERNATIONAL SUBMARINE ENGINEERING LTD ISE was founded in 1974 along with its sister company ISE Research Ltd They specialize in robotics for harsh environments including ROVs specialized subsea tooling for offshore oil and gas as well as oceanographic research robotic manipulators and AUVs autonomous underwater vehicles Figure 2 10 ISE Hysub 2505 Most of their large control projects are based upon the custom designed ACE Automated Control Engine ACE 3 0 is a fast and powerful open architecture real time event driven control engine The software allows control 22 systems engineers to create highly configurable soft control systems based on re usable software components A library of control components is included to address a broad range of configuration options ACE can be configured as a soft PLC Control System or as a DCS multiple instances of ACE on a network Unique points Supports Windows NT QNX DOS and custom apps developed for DSPs and embedded systems Communications protocols Modbus AR
74. ed in a product that does not meet the requirements of this thesis Schilling has developed a unique system based upon PIC microcontrollers however the scale of the design is much too large to consider using for something as simple as an ROV torque tool Hydrovision has developed a basic control module for tooling and ROVs based on the PC 104 platform Although widely available and contained in a small footprint the PC 104 provides more processing power than necessary and is still relatively large when compared to the SBCs single board computers developed with microcontrollers As will be seen in chapter 5 a single board containing the DSP microcontroller and all VO connections along with all necessary hydraulic components can be 43 incorporated into one single small package This would not be possible with a PC 104 stack The result of this research into existing systems gave insight into how the subsea industry has approached control system development It has shown that no company has developed a simple control system and then followed through by using this baseline system and the experience gained from its development in a more complex project To answer the questions mentioned at the beginning of the chapter yes there are similar systems out there However no one has tried to incorporate all the concepts described in this thesis into one single design which makes this research unique These ideas include A basic control module t
75. ed to support the CAN protocol Sensor signals enter from the tool through the port labeled To Tool These lines carry signals from the Hall Effects sensors and strain gauges The lines can be upgraded to include a pressure transducer and flow meters that can be implemented in a control loop The use of this system is as follows The proportional pressure reducer reduces supplied system pressure to the torque tool and controls the output torque An API Class 3 torque tool has a range of 0 to 1000 ft Ibs and a typical hydraulic supply is 0 to 3000 psi The flow control valve determines which way the tool rotates along with the speed The following figures display the valve pack assembly and controller board Appendix G Valve Pack contains figures machine electrical and assembly drawings allowing construction of the pack 72 Figure 5 1 Valve Pack Assembled 73 PROPORTIONAL PROPORTIONAL FLOW PRESSURE REDUCER CONTROL CONTROLLER BOARD Figure 5 2 Valve Pack Exploded View 74 Figure 5 3 Controller Board 76 Chapter 6 Explanation of Torque Tool Control System C Code The initial development work described in Chapter 4 laid the groundwork for assembling the final baseline system The functions and subroutines were developed during this phase to perform analog and digital I O and serial communication The next major step was to combine these pieces of code along with the necessary timing structure to cre
76. equirements change components can be added or subtracted as necessary Method of Writing and Organization The layout of this paper is intended to allow the reader to duplicate and in the process learn the completed research A list of software requirements necessary to control an ROV torque tool was assembled and then each of these was completed independently The final baseline system was a result of combining these individual sections of code This method worked because it allows the developer to become familiar with the controller and development environments by 13 completing small tasks one at a time It also encourages the use of organized and methodical programming techniques to meet the software structure goals mentioned above Another benefit of this approach was the chance to observe the differences in controller response between simple applications and the final system which includes prioritized multi tasking It was this comparison that confirmed the processor was capable of performing the application rapidly and that it did not display any noticeable lag in response time The final layout of the expanded system as applied to an ROV is theoretical and serves as grounds for further research and development This description was influenced by insights gained in the development of the baseline system research into the CAN protocol and field experience gained while working with and designing ROV systems for the offshore oil and
77. er ie ti 2a 42 Typical ROV Gontrol Pod sa ae 45 ROV Operable Torque Tool with Mechanical Counter 47 Torque Fool Test Jgs ausos tu eet HS tt uut uitae 49 Hall Effect Sensor 2 0 e De A ee 58 LED DIisplay se Vd eah tie ae aeeoea sse 59 Operational LED Display 60 CED Test Set Up sn ma ne au 01 Valve Pack Assembled uu oti een 68 Valve Pack Exploded View abe 69 Controller Boards us 2 2 ear sec ees 70 Topside GUI Window seinen eters at uiia tot i tah es roug 77 FIGURE 8 1 Noininal Bit Time a ter tete na 89 FIGURE 9 1 CAN Bus with Multiple EVMs Evaluation Modules 94 FIGURE 92 MSCAN Message Buffer Organization 95 FIGURE 9 3 ROV with Expanded System Port Side View 102 FIGURE 9 4 ROV with Expanded System Port Side Bottom View 104 FIGURE 9 5 ROV with Expanded System Starboard Side View 105 FIGURE 9 6 ROV with Expanded System Rear Bottom View 106 Chapter 1 Introduction Remotely Operated Vehicles ROVs have become the instrument of choice for performing deep water work and research Due to the increasing operational depths as well as the cost and complication of sending a person diver or manned submersible it is much more practical to use an ROV These vehicles consist of multiple subsystems and add on specialty tools which must be operated from a surface control station As the tasks the ROV is required to
78. er set a particular CAN mode or retrieve a status from the CAN hardware The three modes that can be set are reset sleep and wake up The status messages that can be returned are CAN SYNCHORNIZED the device is synchronized to a bus CAN SLEEP the device is in sleep mode CAN WAKEUP the device was in sleep mode and has woken up due to bus activity CAN RX WARN receiver error count exceeds 96 CAN TX WARN transmitter error count exceeds 96 CAN RX ERR receiver error counter exceeds 127 and the device has entered the receiver error passive state CAN TX ERR transmit error counter exceeds 127 and the device has entered the transmitter error passive state CAN BUSOFF transmit error exceeds 255 CAN device is in bus off state CAN OVERRUN a data overrun has occurred both MSCAN receive buffers are full and another message was attempted to be read CAN RX FULL the receive buffer is full Queued buffer CANID EMPTY the specified message buffer is empty CANID FULL the specified message buffer is full CANID OVERFLOW messages are being overwritten in the specified buffer 103 MSCAN and the Expanded System The ROV that the expanded system must control is laid out in the following section The target is a work class vehicle capable of depths of 10 000 fsw feet of seawater Components that cannot withstand the pressures at these depths 4 610 psi must be contained in a sealed one atmosphere housing Electronic compone
79. f INCLUDE FILEIO File I O support undef INCLUDE_FLASH Flash support undef INCLUDE_G165 G165 vocoder library undef INCLUDE_G711 G711 vocoder library undef INCLUDE_G726 G726 vocoder library undef INCLUDE_GPIO General Purpose I O support define INCLUDE_IO VO support undef INCLUDE_ITCN ITCN support subset of BSP undef INCLUDE_LED LED support for target board undef INCLUDE_MCFUNC Motor Control functional library undef INCLUDE MEMORY Memory support undef INCLUDE PCMASTER PC Master support undef INCLUDE PLL PLL support subset of BSP undef INCLUDE_PWM PWM support undef INCLUDE QUAD TIMER Quadrature timer support define INCLUDE SCI SCI support 129 undef INCLUDE SIM SIM support subset of BSP undef INCLUDE SPI SPI support undef INCLUDE SRM Switch Relactance library undef INCLUDE STACK CHECK Stack utilization routines undef INCLUDE SWITCH Switch support undef INCLUDE TIMER Timer support undef INCLUDE VAD VAD library undef INCLUDE V8BIS V8bis library undef INCLUDE_V22 V22 library undef INCLUDE_V42BIS V42bis library rar ss is hs k k ak ae ae ak 2h a ak 2 ak K ak ak ale ale ale ale ale ale ale ale ale ale ale ale ale K K ee IIA Overwrite default component initializations from config config h
80. f a number is read it calibrates it for ft lbs and calls the CreateStringFrmDigits routine to construct the ADC serial el p string It then writes the ADC counter and pressure strings to the serial port Finally the synchro flag is reset to 0 and another ADC read commences OI gt K 3k 2 ale ale ak ale le ak he he ae ak ale ake ak ale ale ie hee ee ae K ak ak ale ale ale ale ale ale ie ale ie ae fe ee ae 3k ai ak k 3K aK ale ale ale ale ale void ReadADCChannel void int NumsSend char temp1 1 T Data0 len read Data0 handle Data0 Buf sizeof Data0 Buf if Data0 len gt 0 If something was read at ADC channel 0 NumSend Data0 Buf 0 Set local int to ADC channel 0 buffer Calibrate Data ADC range 0 32559 theoretical ft lb range 0 1000 ft lbs 32559 1000 32 559 NumSend NumSend 32 559 CreateStringFrmDigits NumSend ADCString 0 temp 1 0 ADCString 1 CreatedString 0 ADCString 2 CreatedString 1 ADCString 3 CreatedString 2 ADCString 4 CreatedString 3 Data0 len 0 write SCIO amp ADCString sizeof ADCString write SCIO amp TurnsCounterString sizeof TurnsCounterString write SCIO amp PressureString sizeof PressureString nanosleep amp QuartSecond NULL if CCFlag gt 0 CCHlag 0 170 ioctl Data0 handle ADC_START 0 PRP RR RHR a k kk k k k FUNCTION ConfigTimer BR eae HR HR K a K ale K ale ale ie ee a
81. f an interrupt or trigger 198 Ladder logic LAN LED LLC LONWorks MAC Or Ladder diagram is based on the graphical presentation of Relay Ladder Logic and is defined as one of two graphical programming languages under IEC 61131 3 The three main elements are relay coil and special function block Local area network Light emitting diode Logical link control One of two sub layers of the data link layer as defined by the OSI standard of networking Created by Echelon Corp and governed by the ANSI EIA 709 1 Control Networking Standard The protocol provides a set of communication services that allow the application program in a device to send and receive messages from other devices over the network without needing to know the topology of the network Similar to the CAN protocol in that every device on a channel looks at every packet transmitted on the channel to determine if it is an addressee If so it processes the packet to see if it contains data for the device s application program or whether it is a network management packet Media access control One of two sub layers of the data link layer as defined by the OSI standard of networking 199 Microcontroller MODBUS MSCAN OLE A microchip built for a particular control purpose Typically runs an instruction set embedded in onboard memory that includes instructions for boot up power modes and the application to be run Can have a
82. factors First of all as will be seen in the next section CAN has been integrated on a number of microcontrollers available as off the shelf technology Also although most industrial bus protocols advertise low development prices CAN was cheapest in both initial money to be spent 5000 for Motorola s MSCAN and time to be invested learning the programming techniques The determination that the time spent would be less was not realized until after initial development phase Chapter 8 will present an overview of the CAN protocol This chapter will describe individual attributes of CAN and compare them with other networking protocols to help explain why this was the correct choice for an ROV control system 60 Controller Selection A number of microcontrollers on the market meet the basic requirements of the system Processors such as Rabbit 2000 Rabbit semiconductor Jackrabbit Z World even BASIC stamps and PIC chips MICROCHIP have the I O capabilities and can be set up for serial communication The limiting factor turned out to be the ability to deal with CAN messages The search for this type of controller uncovered a great number of chips that were developed for individual companies in the automotive industry and therefore proprietary information Even if there was a way to get access to one of these controllers that would defeat the purpose of using a product that was readily available in decent numbers Two controllers were a
83. ffer and the data will be sent when the bus becomes available If multiple transmit buffers are full the message with the highest priority will be sent first The highest priority is determined by the message with the lowest numbered identifier MSCAN CPU bus f F de SKY Tx0 Tx1 Tx2 gt a ae y Figure 9 2 MSCAN Message Buffer Organization The two receive buffers consist of tvo MSCAN memory buffers that are mapped alternately to a single CPU central processing unit buffer This means that only one of the buffers is accessible by the CPU at any one time Incoming 98 messages that pass filtering parameters are written to the RxBG or background receive buffer If the receiver full RxF flag is not set the message is copied to the RxFG foreground receive buffer the RxF flag is set and the message received interrupt service routine ISR is emitted An ISR is a program function that is called as the result of an interrupt or trigger In this case the ISR function would probably read the message store any pertinent data to memory and reset the RxF flag allowing any incoming messages to be written to the buffer An overload error can occur when both the RxBG and RxFG are full and another message is received from the CAN bus MSCAN offers a message filtering scheme consisting 32 bit 16 bit or 8 bit filters These filters define acceptable numerical patterns in the standard or extended identifiers Parts of the identif
84. gas industry This thesis is organized into ten chapters eight appendices and a glossary Chapter 1 is an introduction that gives a general overview and objectives for the research Chapter 2 presents an in depth review of existing ROV technology to determine why this research is unique and worthwhile Chapter 3 explains the reasoning behind the selection of the Motorola DSP microcontroller and the CAN bus system Chapter 4 describes the step by step method of the software development Chapters 5 6 and 7 explain the finished product including the hardware valve pack controller card and hydraulics the bottom side C code and the topside user interface that was programmed in LabView Chapter 8 is a review of the Control Area Network protocol developed by Bosch Chapter 9 describes how the CAN system and Motorola s MSCAN can be used to develop an expanded system based on the control system described in chapters 5 6 and 7 Chapter 10 is the conclusion that reviews the research and explains why the original objectives were met The appendices contain the C code from the initial development and the final baseline system the mechanical drawings for the construction of the valve 14 pack an electrical schematic of the controller board and a hydraulic schematic of the baseline control system as applied to the torque tool A glossary can be found at the end that contains definitions of many of the technical terms and abbreviations used in this thes
85. ging bit values As mentioned above the maximum bus speed available is 1 Mbit s dependent upon the oscillator selected The nominal bit time or the time for one bit to be transmitted over the bus may be found by taking the 92 reciprocal of the bus speed This nominal bit time can be broken down into 4 segments as seen below in Figure 8 1 One bit Sampling point Figure 8 1 Nominal Bit Time The value of time quantum is derived from the nominal bit time This value can be adjusted by a prescaler that is user programmable There are anywhere from 5 to 25 time quanta in a bit time The synchronization segment of the bit time is 1 time quanta in length The edge of the bit is expected to fall into this period and results in a hard synchronization The propagation segment is provided to make up for delay times within the bus This segment may be anywhere from 1 to 8 time quanta in length Both phase segments are adjustable in order to correct for a resynchronization which occurs if the edge of the bit does not fall within the synchronization segment Phase segment 1 may be shortened and has an overall length of 1 to 8 quanta Phase segment 2 may be lengthened and its overall length is 2 to 8 quanta Between the phase segments is the sampling point during which the value of that bit is read The synchronization jump width SJW is defined as the maximum amount of adjustment allowed when correcting for a resynchronization There
86. gure 2 18 the TLP Riser Inspection Vehicle the TLP Riser in service Inspection Vehicle as well as the Centaur Giano Metra and Sedna cable burial systems These systems operate on a PC based control system Figure 2 18 Sonsub Innovator with Tophat TMS 30 STOLT OFFSHORE LTD Stolt is an offshore construction company with locations in Stavanger Norway Aberdeen Scotland and Houston TX They operate a fleet of 90 ROVs including over 20 that were designed and built in house These 20 Stolt Core Vehicles SCVs include the SCV Solo Mk 2 the 100 the 1500 and the 3000 Figure 2 19 They use a PC based control system along with the ARCNet communication protocol Figure 2 19 Stolt Core Vehicle SCV 3000 with A Frame Launching and Recovery System 3l SUB ATLANTIC LTD Li Figure 2 20 Sub Atlantic Super Mohawk with Composite Frame Sub Atlantic is an ROV and specialty subsea tooling manufacturer located in Aberdeen Scotland They produce fully electric observation and small work class vehicles including the Apache Cherokee Mohawk and Super Mohawk Figure 2 20 Their telemetry system the SUB 0176 is based on the VersaModular Eurocard or VME bus see glossary This includes the standard Eurocard and a non standard octagonal shaped card Figure 2 21 32 Mixieum depth of each board 15mm Figure 2 21 Sub Atlantic PCBs Eurocard and Octagonal SUBSEA 7
87. h little hardware and or software modification A basic control module was developed that uses commercially available microcontroller technology as a foundation This baseline system can be used singularly to control a simple oil field intervention tool or in multiples and applied to a full work class ROV After a review of related ROV technology the development of the software is detailed and the resulting baseline system is described including hardware such as the microchip I O capabilities and power requirements To aid in this description an application of the system integrated with a subsea oilfield tool is demonstrated Finally a theoretical layout of a full scale ROV consisting of multiple nodes exhibits the advantages of this design The modular capabilities are based on existing industrial technology and the use of microcontrollers enables a more efficient design Iv Table of Contents CHAPTER 1 Introduccion rest tido tt ados dictata sedis 1 CHAPTER 2 Overview of Related ROV Technology ppp 11 CHAPTER 3 Microcontroller Selection ProceSS pp 44 CHAPTER 4 Initial Development nn 30 CHAPTER 5 Description of Valve Pack eese ettet leote ties 66 CHAPTER 6 Explanation of Torque Tool Control System C Code 71 CHAPTER 7 Explanation of Surface Control Unit Graphical User Interface GUT Nas 70 CHAPTER 8 CANON 81 CHAPTER 9 Expanded System uii tse cm e e ls 93 CHAPTER TO onecluslone ao 112 APPENDIXA TtyGPIO
88. hat can be chained together in multiples to control more complex systems The use of microcontrollers to create a small single board controller The selection of the CAN Control Area Network communications protocol that allows for the expansion of the system 45 Chapter 3 Microcontroller Selection Process An ROV control system is comprised of a topside or surface control unit and a bottom side or vehicle unit connected by an umbilical that carries power and data signals The purpose of the topside unit is to provide a user interface for the operator as well as perform a majority of the processing tasks This portion of the control system receives operator inputs through hardware such as joysticks mice sliders and pushbuttons It also provides status information on vehicle systems through a graphical user interface GUI which is typically seen as an overlay on a video monitor The vehicle control unit receives commands from the topside unit and relays these commands to individual subsystems to carry out the required task This control unit must also be able to collect sensor and status information that is relayed back to the topside control unit A good number of existing ROVs use PC based control systems on the vehicle side While these provide a robust and relatively easy to program platform they are not necessarily suited to the task Bus protocols such as VME and ISA PC 104 for example uses a modified ISA protocol typically co
89. he overload frame is sent by a node that has received data beyond the capacity of its receive buffer It conforms to the structure of an error frame BUS ARBITRATION Any node on the CAN bus may begin transmission of a frame when it detects intermission and an idle bus Intermission consists of 3 recessive bits and the idle bus length is user defined At this point the possibility of multiple nodes transmitting simultaneously exists Therefore all transmitters monitor the bus level and if a dominant bit is received when a recessive bit has been sent that node ceases its transmission This prevents any loss of time due to different nodes fighting over the bus and provides a built in method of message prioritization A 90 dominant bit is typically logic zero therefore the frame with the lowest value identifier will win arbitration The Ethernet and IEEE 802 3 protocols use a transmission scheme similar to CAN However bus arbitration in these two protocols does not use non destructive transmission In Ethernet any node that detects a collision two nodes broadcasting simultaneously broadcasts a jam signal that causes all nodes to wait for a backoff period of time Since this backoff time can be set as a random number or a varying number per node message priorities can be set on a per node basis Although both methods have good end results and overall transmission rates the system used by CAN is much more efficien
90. he standard is managed by the OPC Foundation consisting of 150 international members Open Systems Interconnection is a standard description or reference model for how messages should be transmitted between any two points in a telecommunication network Its purpose is to guide product implementers so that their products will consistently work with other products OSI was Officially adopted as an international standard by the International Organization of Standards ISO Currently it is Recommendation X 200 of the ITU TS OSI divides telecommunication into seven layers 201 PC 104 PCB PDU PLC The PC 104 specification was developed by the IEEE in 1992 and is titled P996 1 Standard for Compact Embedded PC Modules The specification called for a reduced form factor of the IEEE P996 draft specification for the PC and PC AT buses for embedded applications The key differences between PC 104 and the regular PC bus IEEE P996 are e Compact form factor 3 6 by 3 8 inches e Unique self stacking bus which eliminates the cost and bulk of backplanes and card cages e Pin and socket connectors rugged and reliable 64 and 40 contact male female headers replace the standard PC s edge card connectors e Relaxed bus drive 6 mA Lowers power consumption to 1 2 Watts per module and minimizes component count Printed circuit board Power distribution unit The PDU includes various power transformers supplies circuit bre
91. his purpose UNIVERSAL SERIAL BUS Plug and play was first pursued as the easiest way to create an expandable system which led to researching the PC bus known for this attribute the universal serial bus USB USB allows the user to hot plug an item onto the bus and the software handles the integration Hot plug means that the item can be plugged into the system without a power down or reboot The device then transmits an identifier which tells the host computer what the device is and what software drivers need to be loaded If the item is not recognized or drivers are not available the user will be prompted to provide the information and or files An added benefit is that low power items 5 volts or less can be powered via the bus These basic principles seem like an excellent idea upon which to base the expansion of an ROV The bus supplied power would simplify wiring Although the hot plug option is interesting in the offshore world this is not typically done due to safety and money issues due to the remote chance that a piece of equipment could short circuit when connected The problem with this bus though is that it was not developed for the industrial environment Maximum transmit length is approximately 9 meters over standard USB cables and problems will arise in high noise environments An ROV with motors running off of upwards of 3000 volts hydraulic pumps running and other equipment qualifies as a high noise
92. ht modifications Considering Motorola is consistent with their use of the SDK libraries and the CodeWarrior IDE it is reasonable to believe the code will work with different driver subroutines Overall as will be seen in the following sections the selection of the DSP56F805 was a proper choice for this task The chip not only exceeded the basic requirements but the SDK was an indispensable tool in meeting deadlines and speeding time of delivery For a basic tool such as the torque tool the controllers from the other two Motorola families might be more suited It should be noted that the 80 MHz bus speed of the DSP is almost 10 times that of alternative microcontrollers and enables quicker response and communication times Because of this difference in processing speed even the simple baseline control system might experience lag times with slower chips that would be unacceptable For the purpose of demonstrating the basic application plus the overall concept of expansion the DSP56F805 was the proper choice 62 Chapter 4 Initial Development One of the design goals mentioned in the Introduction was to produce a software structure that is easy to understand and logical in construction The baseline requirements outlined in the last chapter are Turns count information displayed either via an LED or transmitted to the surface Turns counter Hall Effect or reed switch input digital I O Torque strain gage input analog
93. huns NumHuns string tens NumTens string ones NumOnes CreatedString 0 string_thous 0 NumTens NumberToConv NumThous 1000 NumHuns 100 10 NumOnes NumberToConv NumThous 1 000 NumHuns 100 NumTens 10 167 CreatedString 1 string_huns 0 CreatedString 2 string_tens 0 CreatedString 3 string_ones 0 Ckeeocoeieiorooeoeeeeeis FUNCTION ConfigSerial BR HR HR HR HR K seo oe oe e ale lee HR This function configures serial port 0 opens port with 8 bit words no parity 9600 baud It also sets the receive interrupt callback ER function as sciRxCallBack and the read length at 1 CR SR S tke sese oe oe o oe o ale ee ak he ee ae a ok ae ale ale ale ale ale fe ale le ie hee ee seo K K oe oe ale ale ale le ae fe ie fee a sese oe oe eoe ale ale fe ae ale ie ee ae ae ai K 2 2 K 2 void ConfigSerial void int SciReadLength sci sConfig SciConfig Declaration of Serial Port Config Structure Definition of Serial Port Structure SciConfig SciCntl SCI CNTL WORD 8BIT SCI CNTL PARITY NONE SciConfig SciHiBit SCI HIBIT 0 SciConfig BaudRate SCI BAUD 9600 Open Serial Port 0 SCIO open BSP DEVICE NAME SCI 0 O_RDWR O_NONBLOCK amp SciConfig Serial Port Initialization Error if SCI 1 assert Open sci0 device failed Set the data format for 8 bit characters and Clear the Read and Write buffers ioctl SC
94. iability This means they have multiple methods of error checking designed into the protocol to provide a robust communication system There are a number of these protocols out there such as ARCNet Foundation FieldBus HART and Profibus However most of these systems are based upon open protocols that require proprietary software to make a complete system The Control Area Network CAN developed by Bosch is an industrial bus developed for the automotive industry The protocol is widely available on microcontrollers and PC based systems The high level software such as CANOpen MSCAN and CANKingdom necessary to integrate the protocol into a control system is available from a number of sources The CAN bus was designed to have the following attributes Multiple layers of error checking to ensure proper communication 59 Built in message prioritization which can be user modified The ability to drop out any node which fails error checks a user controllable number of times A decentralized method of networking that transmits all messages to all nodes and allows each individual component to decide whether to ignore or respond to the message The ability to drop a node out is particularly useful for ROV systems If a part of the system becomes disabled flooded with seawater for instance the entire vehicle may still operate and be recovered to the surface for repair The final selection of CAN as the best choice resulted from a few key
95. ier may also be masked or ignored as defined by the particular filter Finally three low power states are available Sleep mode allows the MSCAN controller to finish current message operations and then cease bus operations If any bus activity is detected the controller will return to normal operations The soft reset mode ceases any message activity immediately and puts the transmit pin in a recessive state Initializations can be made during a soft reset Power down mode is entered when the CPU is shut down Soft reset and power down mode should not be entered unless the controller was previously put into sleep mode Bus error could result if this is not followed MSCAN DRIVER DEFINITIONS Motorola Scalable Controller Area Network has sixteen static definitions that can be declared to customize the communications for a particular application As mentioned above MSCAN has a default setup such that none of these static definitions are required The default setting for the driver is CAN 2 0A addressing protocol 99 11 bit Identifier length Un Queued message transmission mode The driver can be set to operate in either CAN 2 0A or 2 0B addressing modes This defines the identifier length to be either 11 or 29 bits long respectively Queued and Un Queued mode means memory buffers are allocated for transmitted and received messages before they are written to the five MSCAN buffers 3 transmit and 2 receive This is one of the settings tha
96. igure 2 29 JAMSTEC Dolphin 3K with A Frame LARS MONTEREY BAY AQUARIUM RESEARCH INSTITUTE MBARI is an educational and research institute located in Moss Landing CA They operate the ROV Tiburon Figure 2 30 which was designed in house with outside consultation and equipment provided by ISE HBOI and WHOI Woods Hole Oceanographic Institute The Tiburon control system is based on the VME VersaModular Eurocard bus and uses the Intel 87C196KC chip as its main processor MBARI produced nine custom PCBs printed circuit boards to meet 41 project specific goals These D shaped boards were produced to incorporate an 8 bit backplane bus and fit inside a 6 inside diameter housing ts or az Figure 2 30 MBARI Tiburon WOODS HOLE OCEANOGRAPHIC INSTITUTE WHOI is a research and educational institute located in Woods Hole MA Most widely known for the manned submersible ALVIN they also operate the ROV combination Jason II Medea Figure 2 31 These vehicles function in tandem with Medea also acting as a suppressor weight to uncouple Jason from surface motion conveyed along the main lift umbilical Ethernet is the communication protocol used onboard 42 Figure 2 31 WHOI Jason II Medea Results As the examples above show a number of companies have developed modular or expandable control systems in the subsea industry However the goals or design decisions of these existing projects result
97. igures serial port 0 for 8 bit words no parity and 9600 baud rate It then declares sciRxCallBack as the receive interrupt callback function which is called when the controller receives SciReadLength number of characters In this case SciReadLength is set to 1 Back in function main ConfigGPIOPort is called to configure the GPIO ports In this subroutine the character string TurnsCounterString is initialized to C0000 GPIO port D pin 0 is opened and interrupts are enabled The serial communication method used in this software does not send all information values continuously Instead it only sends values when there is an updated value In this case the controller would only send the value of the counter if a new count is received In order to differentiate multiple strings a simple addressing scheme was implemented in which the count string is preceded by a C the torque string by a T and the pressure string by a P In a more complicated system a different addressing scheme would have to be used However for the current example this method proved sufficient and easier to use while debugging Function main then calls subroutine ConfigADCPort This opens the ADC port per the configuration in sadc0 initializes the synchronization flag and instructs the ADC to proceed with the first read ConfigTimer is then called to configure the timer which determines how often the ADC port is
98. ility use They focus on large system developments that can be integrated throughout a customer s company including engineering purchasing management etc The company s Oil Gas and Petrochemicals group develops control systems for production work over and process equipment Figure 2 25 These subsea control systems are developed around open architecture communication protocols such as HART Foundation Fieldbus and PROFIBUS see Glossary for definitions These types of protocols are ideal for industrial applications and harsh environment areas such as below the ocean surface The protocols themselves are designed to be usable in high noise environments with built in error checking Since it is an open architecture the designer is allowed flexibility in the size and expandability of the 36 system as well as the peripheral equipment that can be used However the downside of all this design flexibility is a relatively expensive and complicated system to install For large process automation control systems such as a chemical plant or a subsea drilling control system this approach is probably more sensible For the small baseline control system described in this writing it is a bit more complicated than the project requires Figure 2 25 ABB Clockwise from top left Workover Control Package Deepwater Control Pod Control Umbilical Reel Subsea Running Tool 37 Government and Educational Research Programs FLORIDA ATLANTI
99. ioctl dacDevice DAC WRITE MODE UPDATE NULL write dacDevice AValues sizeof UWord16 154 F FILE appconfig h External RAM J PROJECT TryDAC mep ifndef _ APPCONFIG_H define _ APPCONFIG H ifdef __cplusplus extern C endif Fra ss k k k k ak ae HI ake a ak ae ak ae ak ak ale ale ak ak ale ale ale ale ale ale ale ale ale K ale le oe ale ie ae fe ae fe ie ee ee ae ae ai ale ai Dale Di ale ale K ale ale K ale ale ale ale ale ale ale 2 ale ale fe ale ae kok Include needed SDK components by changing the undef to define Refer to config config h for complete list of all components and component default initialization x CHR K le eee ee ak se a ak ole ok K K Dale Di ale ke oe o oo oe eoe eoo ode de ooo ooo oe K K ae le ee ae ee ae ae K ale ai oe ale al oe eoe oe ee ale 2K K ale 2K ale ale K 2K 2K Ok define INCLUDE_BSP BSP support undef INCLUDE_CODEC codec driver define INCLUDE IO VO support undef INCLUDE SPI spi support define INCLUDE TIMER timer support undef INCLUDE FLASH flash support undef INCLUDE SCI SCI support undef INCLUDE ADC ADC support define INCLUDE QUAD TIMER Quadrature timer support undef INCLUDE CAN CAN support Zundef INCLUDE PWM PWM support undef INCLUDE DECODER Quadrature Decoder support undef INCLUDE_FILEIO File I O support define INCLUDE_GPIO General Purpose I O support u
100. ion of a magnetic field by the presence of a magnet either attracts the two contacts in a normally open reed switch or repels the two contacts in a normally closed reed switch Remotely operated vehicle In this case it is an underwater robotic vehicle that is operated by human pilots from a surface control station An ROV flies through the ocean using propeller style thrusters and receives power and command signals via an armored umbilical to the surface Remote transmission request Background receive buffer in the MSCAN message buffering system Receiver full flag Foreground receive buffer in the MSCAN message buffering system Single board computer 204 SCADA SDK SOF SRR bit TCP Supervisory control and data acquisition An industrial measurement and control system consisting of a central host or master usually called a master station master terminal unit or MTU one or more field data gathering and control units or remotes usually called remote stations remote terminal units or RTU s and a collection of standard and or custom software used to monitor and control remotely located field data elements Contemporary SCADA systems exhibit predominantly open loop control characteristics and utilize predominantly long distance communications although some elements of closed loop control and or short distance communications may also be present Software development kit Start of frame Su
101. is 15 Chapter 2 Overview of Related ROV Technology Remotely Operated Vehicles of the World lists 123 companies and institutions that manufacture remotely operated vehicles They range from the world renowned Woods Hole Oceanographic Institution WHOD who can claim such successes as the discovery of the wreck of the HMS Titanic to Seaeye Marine which manufactures small electric ROVs This chapter will review these groups and determine whether the control system designed for this thesis is unique when compared to existing technology ROV control systems are as numerous as the manufacturers themselves They include PC based systems and those using microcontrollers such as PIC and Zilog A number of these control systems are considered modular or expandable However these systems were designed with different goals in mind and resulted in products that do not meet the design parameters of this research The system described in this research is intended to control a simple ROV tool It would be beneficial for the baseline control system to maintain a small size in order to be accommodated on a variety of ROV sizes This baseline system should have the ability to be chained together in multiples to control a more complex system such as a work class ROV To accomplish this the Control Area Network bus has been selected This chapter will answer the following two questions Are there similar systems out there If so what sets this project apa
102. ities Turns count information displayed either via an LED or transmitted to the surface Turns counter Hall Effect or reed switch input digital I O Torque strain gage input analog I O Communication link for relay of information such as pressure and flow 50 ANALOG TEST JIG WITH DINAMOMETER DIGITAL TEST JIG WITH STRAIN GAGE ce AE i STANDARD TORQUE TOOL INTERFACE RECEPTACLE Figure 3 3 Torque Tool Test Jigs Beyond these initial requirements a valve pack with proportional controlled flow and pressure valves is supplied with this product These valves require a variable analog input for control In order to complete the system the controller would also have to be able to drive a digital to analog converter DAC The entire baseline list consists of the following Digital I O port capable of receiving up to eight 8 separate sensors Analog to digital ADC port capable of receiving 4 separate signals Digital to analog converter capable of driving three 3 signals One 1 serial communication port RS 232 Or RS 485 compatible 51 Method of Expansion The torque tool control system designed for this thesis requires a method for expansion to develop more complex control systems such as for a work class ROV A communication method had to be selected to provide for data and control signals to move between the various subsystems of the ROV The following communication protocols were investigated for t
103. itions Needham MA TechTarget Inc 2003 Chappell Laura Chapter 3 Physical and Data Link Layers Introduction to Cisco Router Configuration Indianapolis Cisco System Inc 1999 DeviceNet Technical Overview Open DeviceNet Vendor Association 2001 DF Protocol and Command Set Reference Manual Publication 1770 6 5 16 Milwaukee Allen Bradley Company Inc 1996 Bthernet searchNetworking com Definitions Needham MA TechTarget Inc 2003 Foundation Fieldbus Technical Overview Document No FD 043 Revision 2 0 Austin Fieldbus Foundation 1998 Schewe Philip F Elucidating the Hall Effect APS News Online http www aps org apsnews 1298 129803 html The American Physical Society 1998 10 Protocol History http www hartcomm org develop history html HART Communication Foundation 2003 11 Protocol Overview http www hartcomm org develop overview html HART Communication Foundation 2003 221 12 13 14 15 16 17 18 19 20 21 TEC 61131 3 2003 01 Programmable Controllers Part 3 Programming Languages http www iec ch cgi bin procgi pl www iecwww p wwwlang E amp wwwprog cat det p amp wartnum 02 9664 Geneva IEC 2003 FAQ What is ladder logic http performancesw com faq shtml Centennial CO Performance Software Associates Inc 2003 Introduction to the LONWorks System Document No 078 01
104. leveland Parker Hannifin Corporation 1992 Section 1 10 06E Proportional directional valve Wandfluh Hydraulics Electronics Catalog Edition 11 Frutigen Switzerland Wandfluh AG 2000 Section 2 3 43E Proportional pressure reducing valve Wandfluh Hydraulics Electronics Catalog Edition 11 Frutigen Switzerland Wandfluh AG 2000 Section 1 13 62E Proportional amplifier PO2 Wandfluh Hydraulics Electronics Catalog Edition 11 Frutigen Switzerland Wandfluh AG 2000 MAX5221 43V Quad 10 Bit Voltage Output DAC with Serial Interface Document No 19 1172 Rev 0 Sunnyvale CA Maxim Integrated Products 1996 MAX5221 3V Quad 10 Bit Voltage Output DAC with Serial Interface Document No 19 1172 Rev 0 Sunnyvale CA Maxim Integrated Products 1996 Section 1 13 62E Proportional amplifier PO2 Wandfluh Hydraulics Electronics Catalog Edition 11 Frutigen Switzerland Wandfluh AG 2000 216 Chapter 7 References 1 VxWorks 5 x Document No MCL DS VXW 0107 Alameda CA WindRiver Systems Inc 2001 2 LabView M 5 1 National Instruments 1999 Chapter 8 References 1 Control Area Network CAN Overview http www kvaser com can Kvaser 2003 2 1 Introduction CAN Specification Part B Version 2 0 Stuttgart Robert Bosch GmbH 1991 3 Chapter 1 Internetworking Basics Open System Interconnection Reference Model Internetworking Technologies
105. lled when an interrupt is triggered upon receiving SciReadLength number of characters The subroutine then outputs Hello via the serial port All communications were done using Windows HyperTerminal 68 Project LabViewGPIO With a basic understanding of setting up serial communications and the ability to implement a digital counter the next step was to combine the two and construct a topside display using LabView The results can be found in Appendix D LabViewGPIO Appendix D includes the c code main c and appconfig h as well as the LabView panel and diagrams This program was developed in a simplistic manner and does not use interrupts to trigger a count Instead it reads the I O port connected to the counter and calls subroutine COUNTRECEIVED if the pin is held high Smoothing is done by installing a quarter second pause This set up works ok for a simple program such as this but when multiple operations are brought together such as on the completed baseline system interrupts have to be used and prioritized to make the system work Following through the code main c initializes the serial port and GPIO ports as in the previous sections An LED is still used as a debugging tool to ensure the counter is working A continuous while loop comprises the GPIO read and calls subroutine COUNTRECEIVED if the pin registers high This subroutine first calls subroutine TURNSCOUNT which appends
106. mes There are other protocols such as Ethernet and TCP IP that have attributes similar to CAN Ethernet uses the broadcast method with a common bus and has extensive error checking However the method of bus arbitration that Ethernet uses is more complicated than and not as efficient as the non destructive method used by CAN TCP IP uses point to point addressing and has extremely efficient message routing built in If a node is offline or a part of the communication bus is congested data packets can be sent via other routes This type of system is ideal for an ever expanding network such as the Internet An ROV on the other hand is unusual if it has more than thirty separate items requiring a control node on the network An ROV control system would not make use of a multi path wiring scheme allowing different routing of data because of the necessity to keep wiring runs and thus failure points to a minimum Also the broadcast method as opposed to individual addressing fits easily with an ROV s control signals For example an operator s motion on a joystick may require a number of thrusters on the vehicle to operate This control signal may be sent once to all thrusters rather than multiple times to individual components The next chapter will describe how the torque tool control system can be expanded to control a work class ROV using the CAN protocol as the basis for a communication network The higher layer protocol MSCAN Motorola Scalable
107. n Error Out indicates if an error has occurred with a serial port connection or link up with the 82 bottom side controller The Timeout indicator will display if the serial port attempts to connect with the controller but does not succeed within the specified amount of time All serial programming is based upon the serial communications examples provided with LabView LabView Version 5 1 was used for this project Explanation of Diagrams In order to enable the multiple serial sends and reads a series of case structures were used Moving from the outside in the first case structure is attached to the Flow Side B submit button and labeled CASE STRUCTURE 1 When true this triggers a serial initialization with a 9600 baud rate a buffer size of 5 characters port 0 comm port 1 8 data bits and 1 stop bit An error code is associated with the next case structure labeled CS 2 This error code registers a 1 if the baud rate data bits stop bits or port number are out of range CS 2 will then follow the true value which causes the transmit string value to be set to zero and the Error out indicator to light If the error code does not light the false path of CS 2 is followed and the string conversion and send processes are started For the three strings sent Flow Side A Flow Side B and Pressure this process is the same First the decimal entered at the user control is converted to a string
108. n the vehicle side allowing for a light weight product DEEP SEA SYSTEMS INTERNATIONAL INC DSSI manufactures the MAX Rover line of ROVs that includes the Mk1 Mkz2 Figure 2 6 Mk3 Mini MAX and Omni MAX The company was founded 17 in 1983 in Cataumet MA Their ROVs have the ability to operate in depths of 6000m and are available in a small package to allow for easy transport The vehicles have been used by National Geographic productions oceanographic research institutions and NASA H P5 nM Figure 2 6 DSSI MAX Rover Mk 2 18 The vehicles use a proprietary Subsea Remote Data Acquisition System The RDAS is a multitasking 14 bit microprocessor and supports full IEEE communications protocol watch dog timers and multiple I O ports HYDROVISION SEAEYE dme 7 I Figure 2 7 Hydrovision Diablo Hydrovision Limited was founded in 1989 and is located in Aberdeen Scotland They produce ROV components such as electronic and hydraulic control systems as well as ROVs Seaeye Marine Limited was founded in 1986 and 19 acquired by Hydrovision in 1999 They are located in Fareham Hampshire in southern England The Hydrovision line of vehicles are primarily hydraulic work class types and include the Demon Diablo Figure 2 7 Hyball Offshore Hyball and Venom Seaeye produces all electric ROVs such as the Falcon Lynx Figure 2 8 Panther Puma Surveyor Plus and Tiger 1000
109. nclude arch h include io h include string h include fcntl h include assert h include adc h include led h include periph h include gpio h include types h include bsp h include sci h int CCFlag synchronization flag void CC CallBack adc eCallbackType type adc tSampleMask causedSampleMask Fr rar ak 2 ale III static const adc_sState sadcl AnalogChannel ADC CHANNEL 0 NumSamplesPerScan 1 OffsetRegister 0 LowLimitRegister 0 HighLimitRegister 0 ZeroCrossing 0 h Fr 8 es e ale ale akak ke le oe K 2 oe 2 ak 2K le ok ADC Channel Structure struct ChannelData UWord16 handle ssize t len Fracl6 Buf 8 E struct ChannelData Datal IE Low limit threshold for enabling disabling LED 139 ADC Channel 0 Configuration IIA EEE static const Frac16 low2Threshold FRAC16 0 6 static int LedFD static int PortD main int i int NumSend int NumSendTens int NumSendOnes int NumSendHuns int NumSendThous sci_sConfig SciConfig int SCIO Opern ADC port Datal handle open BSP DEVICE NAME ADC _0 0 amp sadc1 SciConfig SciCntl SCI CNTL WORD 8BIT SCI CNTL PARITY NONE SciConfig SciHiBit SCI HIBIT 0 SciConfig BaudRate SCI BAUD 9600 SCIO open BSP DEVICE NAME SCI 0 O_RDWR O_NONBLOCK amp SciConfig if SCIO 1 assert Open Sci0 device faile
110. nd associated amplifier controller cards were tested and are operational to this depth The specified flow control valve is a Wandfluh NG4 Mini proportional directional valve P N VWS4 D42 08 TF G12 with a nominal flow rate of 2 gpm gallons per minute and a maximum operating pressure of 3600 psi The proportional pressure valve is a Wandfluh screw in cartridge 71 proportional pressure reducing valve P N MVP PM18 200 G12 with a maximum flow rate of 5 gpm and a maximum operating pressure of 5800 psi These two valves are controlled with a Wandfluh proportional amplifier card P N P02A01D33 that is mounted directly on the valve If the PO2 card is configured for a variable voltage control input it requires a O to 8 volt signal for the entire range The DAC digital to analog converter chip that supplies the analog output signals on the SBC controller card is the Maxim MAX5251 It is only capable of an output voltage of 0 to 3 volts To get this to work the Maxim DAC can be set up with an external resistor as a digital programmable current source This can then be connected per the Wandfluh specification to drive the PO2 amplifier card See the electrical schematic Drawing SSE ELEC 0003 in Appendix G for more details Power and telemetry enter the unit from the backside through a port labeled ELEC The amplifier cards and controller board require 12 volts DC at 3 amps and a two wire RS 232 connection is needed this can be upgrad
111. ndef INCLUDE_BUTTONS Buttons support undef INCLUDE PCMASTER PC Master support define INCLUDE DAC DAC support define INCLUDE LED led support for target board define INCLUDE DSPFUNC dsp functional library undef INCLUDE MCFUNC mc functional library undef INCLUDE BLDC bldc library undef INCLUDE MEMORY memory support undef INCLUDE STACK CHECK stack utilization routines POSIX timers define INCLUDE USER TIMER C 0 1 define INCLUDE USER TIMER C 1 1 define INCLUDE USER TIMER C 2 1 155 CR SR Ste sese se k ak sk oe ak oe eo oe oe ale ale ale ale eoo ooo ie ee IO Overwrite default component initialization from config config h CHR K le S le ae ee e se oie ale ole Dale Di De ale Di ale ale oe ale ale ale ale ale 2 ale ale ale ale fe ale ale oe ale le ae ale oe a ae ae al ae ae e ae a a ae K ale a a ale a ale ale ai oe ale ale ale ale K ale ale ale ale K 2K 2K Ok ifdef __cplusplus endif endif 156 Appendix G Valve Pack 157 158 139 160 ya 161 Appendix H Baseline System 162 C Code JE Put It All Together c PROJECT PUT IT ALL TOGETHER vf include port h include arch h include stdlib h include io h include fcntl h include dac h include time h include assert h include bsp h include gpio h include sci h include string h
112. nformation but also use the raw data for diagnostic purposes By following this methodology generic subroutines can be developed that can be used for multiple purposes 12 It should be noted that all programming in this design was done in the C language Many microcontrollers in the past required a thorough understanding of Assembly code whereas the Motorola development environment provides the designer the choice of C Assembly or a mix of the two Because C is widely accepted throughout the industry and a great deal of code is available as shareware the use of the C language helps meet the design goals of being easily expandable portable and widely known An additional requirement was the ability to expand to accommodate a more complex system To accomplish this multiple microcontrollers are used instead of a single processor The system bus selected for connecting these multiple nodes is the Control Area Network CAN protocol developed by Bosch This was chosen because of its proven reliability in noisy industrial environments Each microcontroller is assigned a specific piece of equipment or set of equipment For instance one controller might be assigned a valve pack manifold which controls a robotic manipulator Another might be assigned to control all the thrusters onboard While another might control the movements of the camera pan and tilt units These components can then be assembled to create a mission specific ROV If mission r
113. nsist of a number of PC boards connected via a back plane bus One card is dedicated to the processor another to digital I O another to analog I O and so on All this hardware must be contained in a large sealed housing see Figure 3 1 with multiple connectors to attach to the ROV subsystems With the use of a microcontroller the processing and I O capabilities can be found on the same microchip This in turn can be used to create a single board computer SBC requiring less space substantial weight savings and a reduction in vehicle wiring 46 Figure 3 1 Typical ROV Control Pod The microcontroller selection process for this control system revolved around a list of requirements for the most basic application in this case a subsea torque tool and the ability to expand modularly to accommodate more complex systems The final selection was also limited by time and money constraints The first section of this chapter will outline the basic tasks this control system must be able to accomplish The second section explains the choice of the Control Area Network CAN to meet the expansion requirements The final section describes why the Motorola DSP56F805 was selected and how it meets the design requirements Baseline System The first question to be answered in order to define the basic requirements is What is a smart ROV torque tool or rotary actuator intervention tool According to API SPEC 17D a torque tool applies torque
114. nt 0x30 digitones count temp1 4 digittens temp 1 count 0x30 else digitones count Fr sg 2 ale ale ak K ale ak hee ak ak ake ake ak ke ale IO K static void COUNTRECEIVED void call function to assemble count string TURNSCOUNTO construct outgoing string strcpy goingout digittens strcat goingout digitones Toggle change state of the red LED ioctl PortB GPIO TOGGLE gpioPin B 0 write string to serial port write SCIO amp goingout sizeof goingout 133 Fr AR gt K 3k ale ale ale ee ale ak K ak aK ak ale ale ak ale ale oe ak DI ak aK DI ae ale ale ale oe a le ae a Di Sk 3K ale ale ale ale le ae a Dale Di ale ale ale ale oe O void main void This program serves as a quick start guide to writing either C or ASM programs using the Embedded SDK Modify it at will int value struct timespec QuartSecond 0 250000000 define pause of 1 4 second sci sConfig SciConfig SciConfig SciCntl SCI CNTL WORD 8BIT SCI CNTL PARITY NONE SciConfig SciHiBit SCL HIBIT 0 SciConfig BaudRate SCI BAUD 9600 SCIO open BSP DEVICE NAME SCI 0 O_RDWR O_NONBLOCK amp SciConfig if SCIO 1 assert Open sci0 device failed Set the data format for 8 bit characters and Clear the Read and Write buffers ioctl SCIO SCL DATAFORMAT EIGHTBITCHARS NULL Initialize gpio ports b and d PortD open BSP_DEVICE_NAME_GPIO_D NULL Por
115. nts that can withstand these pressures can be placed in thinner walled housings that are filled with non conducting dielectric oil and pressure compensated to prevent water incursion The controller board described for the basic system in Chapter 5 has been designed to take these pressures The only component that is susceptible to the high pressures is the crystal oscillator This item can be potted in a small housing using epoxy and the entire board mat be placed in an oil filled housing 104 MAIN LIFT POINT FOAM BLOCK ROBOTIC MANIPULATOR ELECTRIC MOTOR WITH HYDRAULIC PUMP SOLENOID VALVE PACK Figure 9 3 ROV with Expanded System Port Side View The vehicle can be seen in Figures 9 3 through 9 6 The major items on the system are as follows Flotation Foam block provides buoyancy to the system Aluminum frame the structure upon which the vehicle is built 2 Robotic manipulators used for retrieving and operating items tools 2 Solenoid or digital valve packs these on off valves are used to control the manipulators plus any mission specific equipment one controller card is required per pack Electric motor with hydraulic pump provides hydraulic power to the system Vehicle power can contains power supplies transformers and isolation equipment to supply power to the system except main motor relays to actuate 105 higher power items such as lights and fiber optic equipment for converting
116. onstruct the PressureString which is echoed back over the serial line ASideString or BSideString over the next 4 reads It will then call the corresponding ConstructXXXXString function to assemble the string Finally after every read it clears the receive buffer RS tke 2 o oe o coco he ee ak oko oe oe oe o oo K ak K ak ak ak ak opos ae ok ose oe oe oo ale ale le ae ale ae a ae ae ae a ale eoe oe eoe ale ale le he fe ie ee ake a ai ae ale K K void sciRxCallBack void char tempP 1 P char tempA 1 A char tempB 1 B char tempstring1 1 ntt read SCIO amp tempstring1 sizeof tempstringl if tempstring 1 0 0x50 PressureString 0 tempP 0 n 0 m 1 else if tempstring 1 0 0x41 ASideString 0 tempA 0 n 0 m 2 172 Read Pressure else if tempstring 1 0 0x42 BSideString 0 tempB 0 n 0 m 3 if m 1 ConstructPressureString tempstring 1 else if m 2 ConstructASideString tempstring 1 else if m 3 ConstructBSideString tempstring 1 ioctl SCIO SCI CMD READ CLEA R NULL This function is called by sciRxCallBack and will construct an integer JE from the pressuere a or b side string It will then calibrate the DACOutput value for a range of 0 2 574 VDC equivalent to a pressure setting of 0 3000 psi or a flow of 0 100 96 Finally it will set the 173
117. or MBARI Mitsui Kaiko 10 000m Depth Capability Oceaneering Hydra Magnum with Torque Tool and Garage IMS see a A Oceaneering Magellan 8000m with Phoenix V in O ram Es Rn bei Perry Slingsby Triton MRV Ne Perry Slingsby PCBS aa Perry Slingsby Control Pod pp FIGURE 2 18 FIGURE 2 19 FIGURE 2 20 FIGURE 2 21 FIGURE 2 22 FIGURE 2 23 FIGURE 2 24 FIGURE 2 25 FIGURE 2 26 FIGURE 2 27 FIGURE 2 28 FIGURE 2 29 FIGURE 2 30 FIGURE 2 31 FIGURE 3 1 FIGURE 3 2 FIGURE 3 3 FIGURE 4 1 FIGURE 4 2 FIGURE 4 3 FIGURE 4 4 FIGURE 5 1 FIGURE 5 2 FIGURE 5 3 FIGURE 7 1 Sonsub Innovator with Tophat TMS sese 29 Stolt Core Vehicle SCV 3000 with A Frame Launching and Recovery 9SyStena pp 30 Sub Atlantic Super Mohawk with Composite Frame 31 Sub Atlantic PCBs Eurocard and Octagonal 32 Subsea 7 Comunion ipods 33 Thales Oia 34 Thales S alion MAL eia 33 ABB Clockwise from top left Workover Control Package Deepwater Control Pod Control Umbilical Reel Subsea Running Tool eene 36 BAU Ocean Voyager I and II pp 37 HBOI Life Guard Panther Deployed with Tophat TMS 38 Ifremer Victor 6000 with Under Vehicle Work Skid 39 JAMSTEC Dolphin 3K with A Frame LARS 40 MBARI TT a aca she east 41 WHOL Jason Medea e
118. ork Class ROV Publication No 0334 1202 10395 http www thales geosolutions com 2002 Thales GeoSolutions Group Ltd Seal Light Work Class ROV Publication No 0292 1001 1629D http www thales geosolutions com 2001 Thales GeoSolutions Group Ltd Thales G3 High Performance Work Class ROV Publication No 0334 1202 10395 http www thales geosolutions com 2002 212 40 41 42 43 44 45 46 4T 48 49 Thales GeoSolutions Group Ltd Sealion MkII Heavy Work Class ROV Publication No 0293 1001 1629D http www thales geosolutions com 2001 ABB Automation Inc Control http www abb com 2000 ABB Oil Gas and Petrochemicals Inc http www abb com global abbzh abbzh25 1 nsf OpenDatabase amp db GLOB AL NOOFS NOOFS187 NSF amp v F 216 amp e us amp m 9F2 amp c E7FDDBDEID1 COBE9412567520054388E 2003 Harbor Branch Oceanographic Institute http www hboi edu eng auv_systems html 2002 Harbor Branch Oceanographic Institute http www hboi edu eng auv_systems html 2002 Harbor Branch Oceanographic Institute Harbor Branch Engineering Skills amp Services http www hboi edu eng auv_systems html 2002 Harbor Branch Oceanographic Institute Harbor Branch Engineering Skills amp Services http www hboi edu eng auv_systems html 2002 French Research Institute for Exploitation of the Seas Ifremer Victor 6000 http www ifremer f
119. pin 0 as a general purpose I O ioctl PortD GPIO_SETAS_GPIO gpioPin D 1 Set Port D pin 1 as a general purpose I O ioctl PortB GPIO SETAS OUTPUT gpioPin B 0 Set Port B pin 0 as an output 116 ioctl PortD GPIO INTERRUPT ENABLE gpioPin D 1 Enable interrupt control on Port D pin 1 ioctl PortD GPIO ENABLE PULLUP gpioPin D 1 Enable pullup on Port D pin 1 Turn green LED on ioctl PortB GPIO CLEAR gpioPin B 0 Turn off LED by clearing Port B pin0 Install ButtonISR function as an GPIO Port D interrupt service archInstallISR amp pArchInterrupts MpioD ButtonA_ISR start loop while 1 value ioctl PortD GPIO READ gpioPin D 1 value is only used for debugging purposes 117 FILE appconfig h PROJECT ifndef _ APPCONFIG_H define _ APPCONFIG H TryGPIO mcp External RAM NN IO Include needed SDK compo nents below by changing undef to define Refer to config config h for complete list of all components and component default initialization KOKK K KK K KK K K K K KK K K K K K K K K define INCLUDE_BSP HR HR ee K se a ak ole ok ale DI aK ale ak oe ook oe eoe oe eoe ale ale ale ale le de fe ae ale ie le ae ae fe sees e a e e ai a 2K K 2K 2K BSP support includes SIM COP CORE PLL ITCN undef INCLUDE_3DES 3des library undef INCLUDE_ADC ADC support undef INCLUDE_AEC AEC library
120. quarter second by the timer interrupt This reads the information in the ADC buffer and determines if a read did occur based on a buffer length greater than zero It then converts the value to a string using the CreateStringFrmDigits function and defines this string preceded by a T as the torque string to be sent The three strings ADCString TurnsCounterString and PressureString are then written to the serial port Finally the synchronization flag is reset and a new ADC read is initiated Subroutine sciRxCallBack is called when the buffer receives a specified number of characters in this case 1 and an interrupt is triggered It then reads the buffer and performs a check in the first set of if else statements If the buffer contains a character value of P A or B the following characters to be read correspond to pressure A side flow or B side flow Two counters are then 79 initialized to manage the construction of the strings Counter m determines which string is currently being read m 1 refers to pressure m 2 to A side flow and m 3 to B side flow Counter n determines how many characters of the string have been read Based on these counters the three functions ConstructPressureString ConstructASideString and ConstructBSideString are used to assemble the individual strings Again a simple addressing scheme is used in which the pressure string starts
121. quirements are that it must follow the same identifier rules as the existing control system and it must adhere to the CAN protocol Given that the DSP56F800 series controllers have onboard digital and analog I O pulse width modulation modules and support serial communication RS 232 there are few pieces of equipment that the controller will not support Conclusion The Control Area Network protocol provides an easy method to create an expanded system based on the torque tool control system described earlier The MSCAN drivers are provided in a format similar to the code already written for the existing control system The drivers also provide a default setting that allows the designer to concentrate on the integration of the various components and ordering of message priorities rather than the details of making the CAN protocol work properly The theoretical layout of the ROV shows how the CAN network system simplifies the design process In ROV designs with card racks and limited 110 expansion Space the engineer must also concentrate on including Space for possible future components The use of a networked vehicle eliminates this concern Future components can be added on as new nodes with no software modifications required 111 Chapter 10 Conclusion The purpose of this research was to develop a basic control system for use on subsea ROV Remotely Operated Vehicle tooling that can be expanded to control a full work clas
122. r construction projects communications cable installation and salvage work 207 List of References 208 Chapter 1 References 1 SubAtlantic Ltd ROV Products http www sub atlantic co uk product_pages rov htm 2001 2 Chaffey Mark Edward Mellinger and Andrew Pearce Distributed Multiplexers for an ROV Control and Data System http www mbari org dmo tiburon dcpaper html May 11 2000 Chapter 2 References 1 Remotely Operated Vehicles of the World 5 Edition Houston Oilfield Publications Inc 2002 2 Alstom The Quest WROV A Next Generation Electric Work Class ROV Publication no POWC PROB ROV uke ROBO O8 00 USA 1045 http www schilling com 2000 3 Alstom SeaNet Communication Telemetry Hub Publication no M 0175 Rev 3 http www schilling com 2000 4 Alstom The Quest WROV A Next Generation Electric Work Class ROV Publication no POWC PROB ROV uke ROBO O8 00 USA 1045 http www schilling com 2000 5 Benthos Inc 2001 Annual Report North Falmouth MA Benthos Inc 2002 6 Benthos Inc SuperSeaRover http www benthos com 2000 7 Benthos Inc Stingray Remotely Operated Vehicle System http www benthos com 2001 209 8 Benthos Inc Stingray Remotely Operated Vehicle System http www benthos com 2001 9 Deep Ocean Engineering Inc Company Profile http www deepocean com 1997 10 Deep Ocean Engineering Inc
123. r Timeout if not elapsed wait for a millisecond Error at Bytes at Serial Port No Action Taken for Read 146 Appendix F TryDAC 152 C Code Je FILE TryDAC c Je PROJECT TryDAC mep include port h include arch h include stdlib h include io h include fcntl h include dac h include dspfunc h include time h include led h include assert h static UWord16 AValues 1 static int dacDevice rar aa see ale od o le le le le ale ale a le le ale ale ale a led dd ale ale a le ale ale ai ale oe le 3K 3K ale ai ale e le ale ale ae K e ae 3K FK ale ae le eee ale ale ae K K ale fe ale ale oe K ld ale ale ak K ok Module main Description The DAC driver application is designed to test and demonstrate the usage ofthe DAC driver s API to control and communicate with the DSP56805 EVM target board hardware x x Returns None Arguments None Range Issues None Special Issues None x Bie 2A as ae ak ak k K ale as le ee ie K ale ae ake ae le K ale Die ake ale ale ale ale e le fe ale ale e ale e le fe ale ale a ale ie ale ale e le De le ad ale e ae ee ale ale ale ee fe ale ale ale ale e le ld 2 2K e le void main void int n 0 Get handle to DAC device dacDevice open BSP DEVICE NAME DAC NULL 153 Set Value for output AValues 0 65535 Output value on Channel A ioctl dacDevice DAC SET CHANNEL A NULL
124. r fleet systemes_sm engins victor htm 2001 Drogou J F Dr Michael Klages and J L Michel French German cooperation in arctic deep sea research Experiences in the joint use of the deep sea ROV VICTOR 6000 at a long term arctic station http www ifremer fr 2003 Japan Marine Science and Research Center Deep Sea Research Department http www jamstec go jp jamstec e shinkai 1998 213 50 Japan Marine Science and Research Center http www jamstec go jp jamstec e gallery mujin 3k_1 html 2000 51 Chaffey Mark Edward Mellinger and Andrew Pearce Distributed Multiplexers for an ROV Control and Data System http www mbari org dmo tiburon dcpaper html May 11 2000 52 Monterey Bay Aquarium Research Institute ROV Tiburon http www mbari org dmo vessels tiburon html 2003 53 Woods Hole Oceanographic Institute Jason 2 ROV General Specifications http www whoi edu 2000 54 Woods Hole Oceanographic Institute Jason II Medea Overview http www whoi edu marops vehicles jason index html 2003 Chapter 3 References 1 Alstom SeaNet Communication Telemetry Hub Publication no M 0175 Rev 3 http www schilling com 2000 2 Section 921 2f Specification for Subsea Wellhead and Christmas Tree Equipment API Specification 17D Spec 17D First Edition October 30 1992 Dallas American Petroleum Institute 1993 3 Universal Serial Bus Specification Revision 2
125. re ADC port ConfigADCPort pt Configure timer for ADC read l ConfigTimer Tnstall COUNTRECEIVED_ISR function as an GPIO interrupt service archInstallISR amp pArchInterrupts gt MpioD COUNTRECEIVED_ISR Main loop while 1 E a a a 4 363434383828 FUNCTION COUNTRRECEIVED ISR BR HR HR ak ak sese ale ale ale he ee se se ale ale 3K ale ie ie he K 2 oe 165 This function is called upon reception of a GPIO interrupt from pin D 1 It clears the interrupt increments the turns counter and calls the function CreateStringFrmDigits to update the Counter serial string OR ae ale ale eoo ale ale ok o ook ook ook ook ol ls ok le oko le e le le le le le K le ee ae ale 3K aK e ale ale ale ale oo eoe ook ol K al le al le ae le le le le ae le ae le le le le le le le ak static void COUNTRECEIVED_ISR void char temp1 1 C ioctl PortD GPIO CLEAR INTERRUPT PEND REGISTER gpioPin D 0 ioctl PortD GPIO INTERRUPT DISABLE gpioPin D 0 TurnsCounter CreateStringFrmDigits TurnsCounter TurnsCounterString 0 temp 1 0 TurnsCounterString 1 CreatedString 0 TurnsCounterString 2 CreatedString 1 TurnsCounterString 3 CreatedString 2 TurnsCounterString 4 CreatedString 3 nanosleep amp QuartSecond NULL ioctl PortD GPIO INTERRUPT ENABLE gpioPin D 0 PRR RR He aR ae eae kk kk k FUNCTION ConfigGPIOPort BR HR HR HR HR K ae K ale K ale ale
126. receives the data field correctly according to the CRC check will superscribe a dominant bit into the ACK slot Finally the end of frame sequence consists of seven recessive bits 89 The remote frame is similar to the data frame with two differences the RTR bit is recessive and there is no data field This frame type is used as a request for information Typically the identifier is the same as that of the data being requested The data length code must be identical to that of the data being requested for the request to be accepted Any node that detects a transmission error on the bus transmits an error frame An error frame consists of an error flag and an error delimiter An error flag can be either active 6 consecutive dominant bits or passive 6 consecutive recessive bits Because of an error checking method called bit stuffing six consecutive bits of the same value are not allowed therefore the transmission of an error flag causes all other nodes on the network to transmit their own error flag The superposition of all error flags will be anywhere from six to twelve bits long After the transmission of an error flag each node starts transmitting recessive bits until it receives a recessive bit This means all nodes have stopped sending error flags Once a recessive bit is detected seven more recessive bits are sent At the completion of an error frame the transmitter that was interrupted will attempt to re send its data T
127. rnet has a number of standards that specify the hardware it is transmitted with as well as the maximum transmit speed The most common is called 10BaseT where 10 refers to the bus speed 10 Mbps and T refers to the transmission medium twisted pair All nodes on an Ethernet system are identified by a unique address Bus communication can be done via unicast single node addressing multicast group 58 addressing or broadcast mode all nodes addressed 10BaseT uses a bus configuration called a star where all nodes communicate through common hub computers This differs from the linear bus configuration used by 10Base2 and 10Base5 systems A linear system defines a common line that all nodes attach to individually Communication on the common bus is governed by the Carrier Sense Multiple Access Collision Detection Method CSMA CD When a node detects that the bus is idle for a specified amount of time it will attempt to transmit Another node could possibly begin transmitting at the same time If this occurs a collision is signaled on the bus A collision results in all nodes waiting for a backoff period of time before they attempt to re send Priority can be assigned to nodes by varying the initial time period a node waits to transmit on an idle bus and by assigning varying backoff times CONTROL AREA NETWORK CAN Industrial bus protocols are designed to work in high noise environments with a high level of rel
128. rocessor Ethernet was originally developed by Xerox DEC and Intel An Ethernet LAN typically uses coaxial cable or special grades of twisted pair wires There are several types of Ethernet standards but the most common one is 10BaseT that transmits at 10Mbps over twisted pair wires Communication is over a common bus and is governed by Carrier Sense Multiple Access Collision Detection method Evaluation board or evaluation module An all digital serial two way communication system running at 31 25 kbit s which interconnects field equipment such as sensors actuators and controllers Fieldbus is a Local Area Network LAN for instruments used in both process and manufacturing automation with built in capability to distribute the control application across a network General Purpose I O Gallons per minute Graphical user interface 196 Hall Effect HART IDE IDE bit IEC Named after Edwin Hall who in 1879 observed that electrons moving longitudinally along a metal strip under the influence of an electric field will if also subject to a magnetic field perpendicular to the plane of the strip be deflected toward the side of the strip Because of this an excess of charge will build up one side of the strip This Hall voltage is proportional to the strength of the magnetic field That is a plot of Hall voltage or equivalently the electrical resistance of the material to the sideways current flow vers
129. rt to warrant even doing it 16 Industrial ROV Manufacturers ALSTOM SCHILLING ROBOTICS Figure 2 1 ALSTOM Schilling Quest Electric ROV ALSTOM Schilling Robotics is based in Davis CA and was founded in 1985 They are known for the design and production of ROVs and ROV components particularly robotic manipulators Their introduction of the Quest Figure 2 1 all electric ROV was one of the larger innovations in the ROV industry in recent years Some of the ideas it presented 17 Central expandable telemetry hub allows for increased control system capacity modularity SeaNet connectors with PIC Chip based logic are common to all items Logic connectors and visual software combine for a plug amp play effect which is extremely user friendly OIL FILLED JUNCTION BOX ONE ATMOSPHERE CAN SEANET CONNECTORS Figure 2 2 ALSTOM Schilling SeaNet Telemetry Hub The design from Schilling emphasizes modularity on the scale of a full size ROV Figure 2 2 shows the central control module called SeaNet This hub has the ability to control an entire vehicle and if extra capacity is needed another hub may be added on Although small in size for a control system of this capacity it proves cumbersome if only a few control functions need to be added The small one atmosphere sphere that houses the processor the SeaNet connectors 18 attached to both a camera and light and the rectangular section of the module
130. s ROV This was done by selecting an off the shelf microcontroller that supported a communication protocol with expansion properties The Motorola DSP56F80X series of microcontrollers was selected because it provides a fast 30MHz central processing unit CPU with onboard I O capabilities digital and analog RS 232 communications SPI serial peripheral interface PWM pulse width modulation and CAN Control Area Network An extensive review of current ROV technology revealed that the majority of ROV systems in existence use a PC based control system The vehicle side typically contains an Intel or comparable processor incorporated onto an industrial bus such as VME The topside computer is often a standard desktop computer or a rack mount derivative The vehicle control hardware of these systems require large one atmosphere sealed housings to protect the vehicle electronics The baseline control system designed in this thesis improves upon this housing problem by the basing itself upon a microcontroller that was incorporated into an application specific single board control card This single board controller has been designed in such a way that it may be housed in a smaller oil filled container subject to ambient pressures The result is a small footprint lightweight control system The baseline system was designed to control an ROV operated rotary actuator tool or torque tool The selection of this particular tool provided a simple found
131. s to be optimized for the application Within one network the physical layer must remain consistent from one node to the next The MAC sub layer represents the kernel of the CAN protocol It presents messages received from the LLC sub layer ad accepts messages to be transmitted to the LLC sub layer The MAC sub layer is responsible for message framing bus arbitration data acknowledgement and error detection and signaling This sub layer is supervised by a management entity called fault confinement which is a self checking mechanism fro distinguishing short disturbances from permanent failures The LLC sub layer is responsible for message filtering overload notification and recovery management Since CAN only defines the lower two layers a higher layer protocol HLP is required to construct a complete network communications system Basic CAN Concepts The method of communication used on the CAN bus is called broadcast This means that no message is sent to a single node address Instead data is broadcast along a common bus to all nodes which then determine according to the identifier preceding the data whether the information is pertinent to that particular node Ethernet is set up to use broadcast communication as well as multicast address groups and unicast single address TCP IP protocol and USB use point to point communication meaning messages are sent to single addresses The advantage to the broadcast method is tha
132. serial output HRS SR HR DI seo oe e e ale le aK ake se 2 K 2 K 2K ok i ok void CC CallBack adc eCallbackType type adc tSampleMask causedSampleMask void ConfigADCPort void void ReadADCChannel void void ConfigTimer void static void Timer 1ISR union sigval void sciRxCallBack void void SetDACOutput void void ConstructASideString char temp1 1 void ConstructBSideString char temp1 1 void ConstructPressureString char temp1 1 EII static const adc_sState sadcO AnalogChannel ADC CHANNEL 0 NumSamplesPerScan 1 OffsetRegister 0 LowLimitRegister 0 HighLimitRegister 0 ZeroCrossing 0 E Fr e as 2 ale ale de od ke le ae K ak oe 2 od 2K le ok ADC Channel Structure struct ChannelData UWord16 handle ssize t len Frac16 Buf 8 5 164 ADC Channel 0 Configuration IO EE struct ChannelData Data0 ADC Channel 0 Declaration K ak HR ee K a ale ale ale ie ak le ak ak DI ae ale aK ale ale ale OR ae ale ale ale ale ale ale ale ale k o ale ale ook ook od ae al oko le e le e le le ls le le le ee lee ale 3K aK fe ale ale ale ale ale ale ale ale al ale ol ale K ol e al le ae le e le le ae le ae le le le le le le ek void main void int n 0 Get handle to DAC device dacDevice open BSP DEVICE NAME DAC NULL Je Configure serial port ConfigSerial Configure GPIO port ConfigGPIOPort Configu
133. ssion flow control and the multiplexing of data This layer takes is responsible for proper transmission rates and transmission error checking TCP and UDP are both transport layer protocols The session layer controls the actual communication session This layer ensures the synchronization between communicating devices such as the three way handshaking method that TCP IP uses The presentation layer ensures that data conforms to a format acceptable by the receiving computer Common presentation formats include JPEG MPEG and TIFF that are accepted by a number of computer systems The application layer is an umbrella definition of anything outside the OSI definition that is required to interact with the current application This includes any software necessary to prepare the data for processing by the user application 1a CAN as a Low Level Protocol As mentioned above CAN is a low level protocol It only defines communications at the physical and data link layer levels Per the OSI standard the data link layer is divided into the LLC and MAC layers The Bosch CAN specification defines the scope of these layers as the following 87 The physical layer defines how signals are actually transmitted and therefore deals with the description of bit timing bit encoding and synchronization Within this specification the Driver Receiver characteristics are not defined so as to allow transmission medium and signal level implementation
134. t The DSP56F805 can manage up to 22 digital I O signals so one controller card per valve pack would be sufficient 107 UMBILICAL TERMINATION CAN TRANSFORMER CAN CONTACTOR CAN DIGITAL VALVE PACK Figure 9 5 ROV with Expanded System Starboard Side View The proportional valve pack needs to run five thrusters plus spare functions for tooling Each controller card can run up to 4 analog channels so an eight function proportional pack 5 thrusters plus three spare would require two controller cards All valve packs would be oil filled housings 108 THRUSTER HYDRAULIC RESERVOIR PROPORTIONAL VALVE PACK Figure 9 6 ROV with Expanded System Rear Bottom View 109 The vehicle power can would need to be a sealed one atmosphere housing The fiber optic converters relays and capacitors are not able to withstand the ambient pressures One controller card can be situated here to provide a communications link to the surface via a serial RS 232 or 485 link that is converted to fiber optic This controller card can also be responsible for controlling dimmer functions on lights by way of the four DAC digital to analog converter signals The entire vehicle system is connected via the common CAN bus as depicted in Figure 9 1 Instead of an EVM evaluation modules at each node there is a controller board If an additional valve pack needs to be added to the system then it just needs to be teed into the bus The only re
135. t a command requiring action from 88 multiple nodes can be sent once and avoid unnecessary use of the bus Depending on whether standard frames CAN 2 0A or extended frames CAN 2 0B are being used the identifier is 11 or 29 bits long respectively FRAME TYPES There are four types of data frames that can be broadcast Data frame Remote frame Error frame Overload frame The data frame can be broken down into seven fields start of frame arbitration control data CRC ACK and end of frame The start of frame SOF field is a single dominant bit The arbitration field in the standard format contains an 11 bit identifier followed by the remote transmission request RTR bit which is dominant In extended format the arbitration field consists of an 11 bit base identifier a substitute remote request SRR bit which is recessive an identifier extension IDE bit that is recessive and an extended identifier of 18 bits The control field is six bits long and contains the 4 bit data length code that defines the length of the data field The data field is the actual data being transmitted and can be anywhere from 0 to 8 bytes in length The CRC cyclic redundancy check field contains the CRC sequence derived from a CRC polynomial calculation and a CRC delimiter that is recessive The ACK acknowledge field is two bits long and contains the ACK slot and ACK delimiter both of which are recessive for the transmitter Any receiver that
136. t enable the programmer to control how much memory a particular application will require 1 amp 2 CAN MAX RECEIVE ID amp CAN MAX TRANSMIT ID These two definitions specify the maximum number of message buffers that can be open at one single time while in Queued mode The maximum value for each is seven buffers meaning that seven messages can be waiting for transmit and seven messages with different identifiers can be received This is separate from the multiple buffering scheme that defines two receive buffers and three transmit buffers Those five buffers are actually located in the MSCAN hardware The seven buffers declared by these two MAX ID definitions are defined by software and allocated out of program memory 3 through 8 CAN BIT TIMING DEFINITIONS The MSCAN driver provides six static definitions to control the bit timing parameters These are CAN SPEED CAN TIME SEGMENTI CAN TIME SEGMENT CAN PRESCALER CAN SAMPLING and CAN SYNCH JUMP WIDTH CAN_SPEED allows the programmer to specify the bit rate of the application from nine predefined speeds ranging from 1 Mbits s down to 10 kbits s If this setting is defined the five other timing definitions cannot be used 100 CAN TIME SEGMENT and CAN TIME SEGMENT define the length of the two time segments in clock cycles CAN PRESCALER is used t set the multiplication value used to determine the minimum time quanta CAN SAMPLING determines how man
137. t since it does not allow for time delays because of arbitration Also the CAN system is much more predictable since priorities are set by numeric message identifiers rather than a separate time delay ERROR HANDLING AND CONFINEMENT The CAN specification provides 5 methods of error detection The first is bit monitoring and happens when a node sends a bit and monitors a different value on the bus The exception to this error is when two nodes are in arbitration for control of the bus The node that loses arbitration transmits a recessive bit and detects a dominant bit on the bus This will not signal an error flag The second form of error handling results from bit stuffing During the SOF start of frame arbitration control data and CRC fields a transmitting node will place a complementary bit after a series of five identical bit values This means that six consecutive bits of the same value will result in an error on the bus The method of bit stuffing is not used during error or overload frames as well as the fields not mentioned for the data and remote frames The third error handler is the CRC check included in the data frame The CRC check is a polynomial calculation created from the de stuffed bit stream 91 consisting of the SOF arbitration control and data fields The Bose Chaudhuri and Hocquenghem BCH method is specified and results in a 15 bit CRC sequence Receiving nodes perform the CRC calculation and
138. tB open BSP DEVICE NAME GPIO B NULL Initialize pins B O and D 1 ioctl PortB GPIO SETAS GPIO gpioPin B 0 ioctl PortD GPIO SETAS GPIO gpioPin D 1 Set Pin B 0 as output ioctl PortB GPIO SETAS OUTPUT gpioPin B 0 Set pin D 1 as input ioctl PortD GPIO ENABLE PULLUP gpioPin D 1 134 Clear B 0 ioctl PortB GPIO CLEAR gpioPin B 0 Install ButtonISR function as an IRQ A interrupt service archInstallISR amp pArchInterrupts MpioD COUNTRECEIV ED while 1 value ioctl PortD GPIO READ gpioPin D 1 if value COUNTRECEIVEDO nanosleep amp QuartSecond NULL 135 5 FILE appconfig h External RAM JE PROJECT LabViewGPIO mcp ifndef APPCONFIG H define _ APPCONFIG H oL ss k k ae eae ae ae ak ake a ak 2 ae ak ak ale ale ai ak ale ale ale ale ale ale fe ale ale K K le he ale ie IO Include needed SDK components below by changing undef to define Refer to config config h for complete list of all components and component default initialization CHR K le eee ee ae oe oe ale De ok K oe ale ale Di ale oe oe ale ale 2 ale ale ak ale ale ale ale fe ale ale oe ale ae ae ale oe a ae ae al le ae Di ae a ae ae K ale a a ale a ale ale al oe ale ale ale ale K ale ale K ale ale 2K 2 Ok define INCLUDE_BSP BSP support includes SIM COP CORE PLL ITCN undef INCLUDE_3DES 3des library undef INCLUDE_ADC ADC support undef INCLUD
139. telemetry signals from optics to electrical one controller card required 2 Hydraulic reservoirs contain the hydraulic fluid and provide a pressure compensation system due to an internal spring contained in the flexible rubber bladder 5 Thrusters provide the force to maneuver the vehicle Umbilical termination can where the main umbilical or tether is splayed out into individual wires Transformer can contains the main power transformer for converting the 3000 volts AC run down the umbilical to the 480 volts required by the electric motor Contactor can provides a means of soft starting the electric motor in case of a vehicle power down Proportional valve pack provides proportional control for thrusters as well as any mission specific tooling two controller cards required 106 VERTICAL THRUSTER HYDRAULI VEHICLE POWER CAN RESERVOIR VEHICLE FRAME Figure 9 4 ROV with Expanded System Port Side Bottom View The valve packs power can and contactor can each contain their own controller boards much like the valve pack described in Chapter 5 The robotic manipulators have up to seven functions each requiring seven three position valves with two digital signals for each valve The solenoid valve packs must be able to support one manipulator each plus have spare functions for use with tooling and camera pan and tilt units A ten station valve pack would be suitable requiring 20 digital I O signals to control i
140. the wellhead during drilling operations and is comprised of multiple valves and seals Its purpose is to create an isolated drilling environment that can be shut in in case of an emergency such as a large release of natural gas or a high pressure pocket of oil The BOP can actually sever the drill string and seal off the hole 193 Buffer Bus CAN Checksum Christmas tree CPU A memory location reserved for the collection of a particular type of data A network bus is the transmission path that communication signals travel to move from one network point to another Control Area Network Developed by Bosch it is a serial communications protocol which efficiently supports distributed real time control with a very high level of security A checksum is a count of the number of bits in a transmission unit that is included with the unit so that the receiver can check to see whether the same number of bits arrived If the counts match it s assumed that the complete transmission was received Both TCP and UDP communication layers provide a checksum count and verification as one of their services Used in reference to the offshore oil industry this applies to the structure placed over a subsea wellhead once drilling is completed and the production phase is set to begin It consists of a series of valves used to control the flow out of the well Central processing unit 194 CRC CSMA CD DAC
141. the creation of an expanded system will require more funding than this project MSCAN alone costs 5000 this development opens the door to greater opportunity When an application arises that requires a control system the basics have already been done cutting the time to completion dramatically 114 Appendix A TryGPIO 115 C Code p FILE mainc 5 PROJECT TryGPIO mcp include port h include gpio h include bsp h File descriptor for LED driver static UWord16 LedFD OR SR ale ale ale ale ale ook ak ak ak oo ook ook od ae seo ol le o le ne le le le le le oko ae lee ale sooo ale ale ale ale ale eoe ale ale ook od le ad le o le le le le ae le ae le e le le le le le le This function is called upon reception of an interrupt static void ButtonA_ISR void Toggle change state of the green LED ioctl PortB GPIO TOGGLE gpioPin B 0 reset interrupt ioctl PortD GPIO CLEAR INTERRUPT PEND REGISTER gpioPin D 1 Fra ss is sae k ak ak ak ae ak ak ale ak K ale ale ale ale ale ale ale ie ale ie hee he ee ae a ak ale Di ale ale ale ale ale ale ale ale ale ale ie ale ale oe ale oe he he K fe K ae ae ae a ai ae ale aK ae ale K ale ccc int PortB int PortD void main void int value 0 PortB open BSP DEVICE NAME GPIO B NULL Anitialize Port B PortD open BSP DEVICE NAME GPIO D NULL hnitialize Port D ioctl PortB GPIO SETAS GPIO gpioPin B 0 Set Port B
142. the software and then give a full explanation of the baseline control system as it is applied to the torque tool including the hydraulic manifold with valves electrical layout and C code A theoretical layout of an expanded system in a work class ROV will be described in the ending chapters The baseline control system has been designed in such a way that it can be configured to control a variety of components required on an ROV such as valve packs electric thrusters camera pan and tilt units etc By linking these multiple control modules together with their associated hardware component an entire ROV system can be assembled The goal of this layout is to convey the advantages of using this expandable system and how it would be implemented A Brief Description of an ROV Control System An ROV control system includes two discrete structures a topside and vehicle or bottom side system connected by an umbilical Figure 1 3 The topside system is the user interface and is made up of a graphical video display and user controls such as joysticks switches paddles etc These user inputs are constructed into a data string that is transmitted to the vehicle via the umbilical Any processing of data typically takes place on the topside controller processor The bottom side system receives the user inputs and executes the command via the various subsystems and components such as manipulators thrusters and cameras It will relay information ba
143. ting such that the designer can begin creating the basic program without having to adjust more complicated settings such as bit timing clock source message filtering or power states These 96 static settings and program functions will be described below First an overview of some of the features offered by MSCAN will be presented MSCAN FEATURES Motorola Scalable Controller Area Network adheres to CAN version 2 0 A B It supports both the standard 11 bit identifiers and extended 29 bit identifiers Data messages can be anywhere from 0 to 8 bytes in length and bus speeds range from 10 kbit s to 1 Mbit s depending on the oscillator The DSP56F8XX family output a CAN signal directly from the controller On the evaluation board used for this research this signal passes to a Philips PCA82C250T transceiver that sends a two wire balanced signal in accordance with ISO 11898 The recommended connection of multiple evaluation boards EVMs in a common CAN bus can be seem in Figure 9 1 CAN Hi LL H Li CANH CANL CANH CANL CANH CANL EVM1 EVM2 EVM3 Figure 9 1 CAN Bus with Multiple EVMs Evaluation Modules MSCAN provides a multiple buffering scheme for sending and receiving messages as shown below in Figure 9 2 There are three transmitting buffers and two receive buffers Transmit buffers signal they are ready to handle data by setting the associated TxE transmitter empty flag Data can then be written to the 97 transmit bu
144. us field strength would be linear HART or Highway Addressable Remote Transducer was developed by Rosemount in the 1980 s The HART Protocol supports two way digital communications for process measurement and control devices and is overlaid on a standard 4 20mA control signal Applications include remote process variable interrogation cyclical access to process data parameter setting and diagnostics Higher layer protocol Integrated development environment Identifier extension International Electrotechnical Commission 197 IEC 61131 3 IEEE IEEE 802 3 IO ISA bus ISO ISR Publication 61131 governs the IEC standard on programmable controllers Part 3 specifies syntax and semantics of programming languages for programmable controllers as defined in part 1 of IEC 61131 Institute of Electrical and Electronic Engineers The IEEE specification for CSMA CD model communications The subcommittee that developed this standard based it on Ethernet Input output Refers to the capabilities of a microcontroller such as the ability and number of digital signals it can receive and transmit A 16 bit computer bus specified by the Industry Standards Association This bus was common to the IBM AT computers and a modified version is used on the PC 104 form factor controllers International Organization of Standards Interrupt service routine An ISR is a program function that is called as the result o
145. vailable through common suppliers Digi Key and Allied Electronics These were the Intel 87C196CA and the Motorola family DSP56F8XX The Motorola DSP56F805 was chosen for this project The Motorola demonstration board was on the shelf and ready to be shipped but it had other benefits as well First of all a development environment was supplied with the board called CodeWarrior IDE Integrated Development Environment This provides the developer with a programming environment including a C compiler and builder as well as the capability to program the microcontroller via a parallel port connection with real time debugging A note on the programming language the CodeWarrior software allows programming in the C language instead of the standard Assembly This makes the controller more accessible because of the wide spread usage of the C language The other software supplied with demonstration board was the Embedded Software Development Kit SDK This was a compilation of libraries example code and programming lessons which allow the developer to speed up time to production The examples and teaching methods emphasized code which would be portable across a number of Motorola products The code written for this thesis can 61 theoretically be taken directly to another chip within the DSP56F8XX family Also Motorola produces the M68HC12 and HCS12 families of microcontrollers that support CAN The code is purported to be portable to these with slig
146. wide range of I O capabilities including timers digital switching analog I O serial communication pulse width modulation etc An application layer messaging protocol positioned at level 7 of the OSI model that provides client server communication between devices connected on different types of buses or networks MODBUS Protocol was developed by Modicon in 1979 Motorola Scalable Controller Area Network Microsoft s framework for a compound document technology Briefly a compound document is something like a display desktop that can contain visual and information objects of all kinds text calendars animations sound motion video 3 D continually updated news controls and so forth Each desktop object is an independent program entity that can interact with a user and also communicate with other objects on the desktop Part of Microsoft s ActiveX technologies OLE takes advantage and is part of a larger more general concept the Component Object Model COM and its distributed version DCOM An OLE object is necessarily also a component or COM object 200 OPC OSI OLE for Process Control Based on Microsoft s OLE now ActiveX COM component object model and DCOM distributed component object model technologies OPC consists of a standard set of interfaces properties and methods for use in process control and manufacturing automation applications The goal of the standard is Plug and Play T
147. with a P the A side string with an A and the B side string with a B At the end of each read from the serial buffer a command is issued to clear the buffer In the final if statement of each of the ConstructString functions is a call to the subroutine SetDACOutput This function reads the counter m to determine which value it s re issuing and then converts the corresponding string to an integer This value is re calibrated for a range of 0 65535 the resolution of the DAC channels and then output to the corresponding channel Conclusion Put It All Together c combines the requirements laid out at the beginning of this chapter into a C program capable of real time control The code allows for proportional speed control of a torque tool in two rotational directions as well as proportional control of output torque through the use of a pressure reducing valve This rotational motion is monitored by the use of a turns count Hall Effect sensor and the torque via a strain gauge All of this information is transmitted by way of an RS 232 serial link The following chapter will detail the topside portion of this torque tool control system at the other end of this serial link The topside graphical user interface GUI has been written using LabView software and provides a method of user input and status monitoring 80 Chapter 7 Explanation of Surface Control Unit Graphical User Interface GUI
148. xtures Specification for Subsea Wellhead and Christmas Tree Equipment API Specification 17D Spec 17D First Edition October 30 1992 Dallas American Petroleum Institute 1993 223 224
149. y times the bus is sampled during a bit time If set to 0 the bus is sampled once If set to 1 three samples will be taken during a bit time to determine the actual value of the bit being sent CAN SYNCH JUMP WIDTH determines how many clock cycles a bit time may be lengthened or shortened in order to achieve re synchronization If this is defined CAN TIME SEGMENT may not be defined and will be set automatically by the driver 9 CAN STOP IN WAIT MODE If set to 1 the MSCAN hardware will enter the low power sleep mode if it detects that the central processing unit CPU is in a wait state If set to 0 the sleep mode is disabled 10 CAN LOOP BACK This is self test mode that enables a chip to internally feed transmitted messages back to its receiver When set to 1 the loop back mode is enabled 11 CAN WAKE UP MODE This can be set to prevent the MSCAN driver from waking up from sleep mode due to noise on the bus When set to 1 a continuous dominant pulse on the bus is required to wake up from sleep mode When set to 0 any recessive to dominant edge will cause a wake up This means that any voltage jump on the bus could be read as a wake up call 101 12 CAN CLOCK SOURCE This defines whether the internal DSP bus clock is used for CAN bit timing or whether the timing is determined directly from the oscillator If set to 0 the oscillator is defined as the CAN clock
Download Pdf Manuals
Related Search
Related Contents
Mode d`emploi centrale incendie 1-X fr_afdrukken als Samsung S24E650C Užívateľská príručka Mini Scoreboard Manual - Colorado Time Systems LED coaster & bottle stopper user manual 3701KL tri manual.cdr - Taylor Precision Products Centroid Universal Integrated Tonearm Manual del Usuario 5400299 Rev. A (03/2011) iLase equipo laser BDB-250 - Super B ENGLISH DEUTSCH РУССКИЙ Copyright © All rights reserved.
Failed to retrieve file