You are on page 1of 61

Electronics and Instrumentation Engineering

1.INTRODUCTION
1.1 MICROCONTROLLER BASED AIR DRYER

The operation of the dryer is under the control of a MCU through a pneumatic micro-solenoid valve set. Instrument pressure gauge indicates condition of each air operated valve. Air pressure On=valve Open. A mimic board on the control panel also indicates the state of the valves. When the dryer is operating, the MCU outputs energize the electro-pneumatic solenoid control valves SV1-SV6. Solenoid SV1 and SV2 : control the air supply to the main inlet valves v1 and v2 and instrument gauge pv1 and pv2. Solenoids SV3 and SV4. Control the air supply to the reactivation purge valves V3 and V4 and instrument pressure gauges PV3 and PV4. Solenoids SV5 and SV6. Control the air supply to the automatic drain valves V5 and V6 and instrument pressure gauges PV5 and PV6. To filter and dry, free air compressed at 400bar saturated with oil/water vapour at 45degrees ensuring the removal of hydrocarbons, true oilvapour to less than 0.005ppm with final filtration of 1 micron particles and dried to a dewpoint of -65degrees measured at 760mm Hg. Pre filter: Fitted with a permanent cleanable, stainless steel separator and replaceable coalescing. It removes large liquid and solid contaminants 3 micron and larger. Oil adsorption filter: the first stage will reduce the liquid oil content in the air down to 0.1mg, whilst removing all free moisture and dirt particles. The carbon canister located in the second stage contains a deep bed of activated carbon which after filtration can result in oil levels and vapours removed to less than 0.005ppm. The drying plant consists of two adsorbers which contain sufficient desiccant to dry the flow of compressed air to the dewpoint required. At the end of each adsorption period the compressed air inlet valves V1 and V2 are operated and divert the flow of compressed air to the adsorber which has been freshly reactivated. When the changeover of the air flow has been completed, reactivation of the desiccant in the adsorber coming off drying duties is started. The wet compressed air entering the drying plant is diverted
Dept Of EIE Page 1

Electronics and Instrumentation Engineering

to the adsorber on drying duty by either valve V1 or V2 depending on which adsorber is on drying duty. The compressed air will then pass up through the desiccant in the adsorber where the watervapour will be removed from the air and retained in the pores of the desiccant. The dry compressed air will leave the adsorber through the non-return valve and leave the plant via the after filter. The drying or adsorption period is of 22.5 minutes duration and during this time the wet compressed air will pass through the adsorber on drying duty. The dryer is fully automatic under the control of a microcontroller which controls the sequence operation of the compressed air inlet valves, reactivation purge valves and filter auto-drain valves. The dryer is controlled using PIC16F887 Microcontroller.

Dept Of EIE

Page 2

Electronics and Instrumentation Engineering

1.2 BLOCK DIAGRAM:

Fig1: Block diagram At Programmable Controller: Acquisition and Processing of information from analog signals of field sensors. Commanding of field elements like control valve. Execution of process algorithms in cyclic mode. Parameter display in local LCD display Alarm

The air dryer system requires programmable interrupt controller for valve operations, pressure transmitters, and buzzer. Six analog channels are required for this purpose. PC-UART communication card is required to store the pressure value continuously for every 1sec for offline analysis. A pressure transmitter is required to measure the pressure whether it is in the range or out of the range. When the pressure is low, one LED1 glows with warning alarm1. When the pressure is high, another LED2 glows with warning alarm2.
Dept Of EIE Page 3

Electronics and Instrumentation Engineering

2.HARDWARE
2.1 Implemented Hardware Circuit Block Diagram:

Fig2.1: Hardware circuit List of Used Hardware components: 1. 7805 IC voltage regulator 2. Capacitors -0.33F, 33F,1F 3. Heat Shield 4. Amplifier-UDN 2981(O/P-50 Volts) 5. 24V Power Supply. 6. Buzzer 7. Crystal oscillator-8MHz 8. LCD-4x20 display 9. Max 232-IC 10. PIC microcontroller
Dept Of EIE Page 4

Electronics and Instrumentation Engineering

2.2 PIC 16F887: 2.2.1 PIN DIAGRAM:

Fig2.2.1: Pin diagram

Dept Of EIE

Page 5

Electronics and Instrumentation Engineering

2.2.2 PINOUT DESCRIPTION:

Dept Of EIE

Page 6

Electronics and Instrumentation Engineering

Dept Of EIE

Page 7

Electronics and Instrumentation Engineering

Dept Of EIE

Page 8

Electronics and Instrumentation Engineering

2.2.3 INPUT/OUTPUT PORTS:


In order to synchronize the operation of I/O ports with the internal 8-bit organization of the microcontroller, they are, similar to registers, grouped into five ports denoted by A, B, C, D and E. All of them have several features in common: for practical reasons, many I/O pins are multifunctional. If a pin performs any of these functions, it may not be used as a general-purpose input/output pin. Every port has its satellite, i.e. the corresponding TRIS register: TRISA, TRISB, TRISC etc. which determines the performance of port bits, but not their contents. By clearing any bit of the TRIS register (bit=0), the corresponding port pin is configured as an output. Similarly, by setting any bit of the TRIS register (bit=1), the corresponding port pin is configured as an input. This rule is easy to remember 0 = Output, 1 = Input. Port A is an 8-bit wide, bidirectional port. Bits of the TRISA and ANSEL registers control the Port A pins. All Port A pins act as digital inputs/outputs. Five of them can also be analog inputs (denoted by AN):

RA0 = AN0 (determined by the ANS0 bit of the ANSEL register) RA1 = AN1 (determined by the ANS1 bit of the ANSEL register) RA2 = AN2 (determined by the ANS2 bit of the ANSEL register)
Dept Of EIE Page 9

Electronics and Instrumentation Engineering

RA3 = AN3 (determined by the ANS3 bit of the ANSEL register) RA5 = AN4 (determined by the ANS4 bit of the ANSEL register) Similar to bits of the TRISA register determine which of the pins are to be configured as inputs and which ones as outputs, the appropriate bits of the ANSEL register determine whether pins are to be configured as analog inputs or digital inputs/outputs. Each bit of this port has an additional function related to some of the built-in peripheral units, which will be described in later chapters. This chapter covers only the RA0 pins additional function since it is related to port A and the ULPWU unit.

Fig2.2.3: MCU I/O Ports


Dept Of EIE Page 10

Electronics and Instrumentation Engineering

2.2.4 ANALOG-TO-DIGITAL CONVERTER (ADC) MODULE:


The Analog-to-Digital Converter (ADC) allows conversion of an analog input signal to a 10-bit binary representation of that signal. This device uses analog inputs, which are multiplexed into a single sample and hold circuit. The output of the sample and hold is connected to the input of the converter. The converter generates a 10-bit binary result via successive approximation and stores the conversion result into the ADC result registers (ADRESL and ADRESH). The ADC voltage reference is software selectable to be either internally generated or externally supplied. The ADC can generate an interrupt upon completion of a conversion. This interrupt can be used to wake-up the device from Sleep.

Fig2.2.4: Block diagram of the ADC. ADC Configuration When configuring and using the ADC the following functions must be considered:
Dept Of EIE Page 11

Electronics and Instrumentation Engineering

Port configuration Channel selection ADC voltage reference selection ADC conversion clock source Interrupt control Results formatting PORT CONFIGURATION The ADC can be used to convert both analog and digital signals. When converting analog signals, the I/O pin should be configured for analog by setting the associated TRIS and ANSEL bits. See the corresponding Port section for more information. CHANNEL SELECTION The CHS bits of the ADCON0 register determine which channel is connected to the sample and hold circuit. When changing channels, a delay is required before starting the next conversion. ADC Operation for more information. ADC VOLTAGE REFERENCE The VCFG bits of the ADCON0 register provide independent control of the positive and negative voltage references. The positive voltage reference can be either VDD or an external voltage source. Likewise, the negative voltage reference can be either VSS or an external voltage source. CONVERSION CLOCK The source of the conversion clock is software selectable via the ADCS bits of the ADCON0 register. There are four possible clock options: FOSC/2 FOSC/8 FOSC/32 FRC (dedicated internal oscillator) The time to complete one bit conversion is defined as TAD. One full 10-bit conversion requires 11 TAD periods as shown in Figure .

Dept Of EIE

Page 12

Electronics and Instrumentation Engineering

2.3PIEZO BUZZER:
The piezo buzzer produces sound based on reverse of the piezoelectric effect. The generation of pressure variation or strain by the application of electric potential across a piezoelectric material is the underlying principle. These buzzers can be used alert a user of an event corresponding to a switching action, counter signal or sensor input. They are also used in alarm circuits. The buzzer produces a same noisy sound irrespective of the voltage variation applied to it. It consists of piezo crystals between two conductors. When a potential is applied across these crystals, they push on one conductor and pull on the other. This, push and pull action, results in a sound wave.Most buzzers produce sound in the range of 2 to 4 kHz.

Fig2.3 Piezo buzzer A Piezo buzzer is made from two conductors that are separated by Piezo crystals. When a voltage is applied to these crystals, they push on one conductor and pull on the other. The result of this push and pull is a sound wave. These buzzers can be used for many things, like signaling when a period of time is up or making a sound when a particular button has been pushed. The process can also be reversed to use as a guitar pickup. When a sound wave is passed, they create an electric signal that is passed on to an audio amplifier.

Dept Of EIE

Page 13

Electronics and Instrumentation Engineering

2.4 EASYPIC6 Development Board:


The EasyPIC6 development system is an extraordinary development tool suitable for programming and experimenting with PICmicrocontrollers from MICROCHIP. The board includes an on-board programmer with mikroICD support (In-Circuit Debugger) providing an interface between the microcontroller and pc. It is simply expected to write a code in some of the compilers, generates a hex file and program your microcontroller using the PIC flash programmer..Numerous on-board modules, such as 128x64 graphic LCD display, 2x16 LCD display, on-board 2x16 LCD display, keypad 4x4, port expander etc., allow you to easily simulate the operation of the target device.

Fig2.4: Easypic6 development board

Dept Of EIE

Page 14

Electronics and Instrumentation Engineering

Supported Microcontrollers The EasyPIC6 development system provides eight separate sockets for PIC microcontrollers in DIP40, DIP28, DIP20, DIP18, DIP14 and DIP8 packages. These sockets allow supported devices in DIP packages to be plugged directly into the development board. There are two sockets for PIC microcontrollers in DIP18 package provided on the board. Which of these sockets you will use depends solely on the pinout of the microcontroller in use. The EasyPIC6 development system comes with the microcontroller in a DIP40 package. Jumpers next to the sockets are used for selecting functions of the microcontroller pins:

Dept Of EIE

Page 15

Electronics and Instrumentation Engineering

PIC microcontrollers normally use a quartz crystal for the purpose of stabilizing clock frequency. The EasyPIC6 provides two sockets for quartz-crystal. Microcontrollers in DIP18A, DIP18B, DIP28 and DIP40 packages use socket X1 (OSC1) for quartz-crystal. If microcontrollers in DIP8, DIP14 and DIP20 packages are used, it is necessary to move quartz crystal from socket X1 to socket X2 (OSC2). Besides, it is also possible to replace the existing quartz-crystal with another one. The value of the quartz-crystal depends on the maximum clock frequency allowed. Microcontrollers being plugged into socket 10F use their own internal oscillator and are not connected to any of the aforementioned quartz-crystal sockets.

On-board USB2.0 PIC flash programmer: The PIC flash programmer is an obligatory tool when working with microcontrollers. The EasyPIC6 has an on-board PIC flash programmer with mikroICD support which allows you to establish a connection between the microcontroller and your PC. Use the PIC FLASH programmer to load a hex file into the microcontroller. There are two ways of programming PIC microcontrollers: Low Voltage and High Voltage programming modes. The PIC flash programmer uses solely High Voltage programming mode during its operation. This mode requires voltage higher than the
Dept Of EIE Page 16

Electronics and Instrumentation Engineering

microcontrollers power supply voltage (the range between 8V to 14V, depending on the type of the microcontroller in use) to be brought to the MCLR/Vpp pin in order so that the process of programming/debugging may be performed. The low voltage programming mode can be enabled/disabled using configuration bits of the microcontroller. If the low voltage programming mode is enabled, the programming process is initiated by applying a logic one (1) to the PGM pin. Unlike this mode, the High Voltage programming mode is always enabled and the programming process starts by applying a high voltage to the MCLR/Vpp pin. All PIC microcontrollers have the Low Voltage programming mode enabled by default. In some rare cases, in order to enable the microcontroller to be programmed in the High Voltage programming mode, it is necessary to apply a logic zero (0) to the PGM pin, which prevents the microcontroller from entering the Low Voltage programming mode. Depending on the microcontroller in use, it is possible to select one of the following pins RB3, RB4 and RB5 to be used as the PGM pin.

Fig2.4.1: flash programmer

Dept Of EIE

Page 17

Electronics and Instrumentation Engineering

IN CIRCUIT DEBUGGER: The mikroICD (In-Circuit Debugger) is an integral part of the on-board programmer. It is used for the purpose of testing and debugging programs in real time. The process of testing and debugging is performed by monitoring the state of all registers within the microcontroller while operating in real environment. The mikroICD software is integrated in all compilers designed by mikroElektronika (mikroBASIC,mikroC andmikroPASCAL). The mikroICD debugger communicates with the PC through the programming pins which cannot be used as I/O pins while the process of the program debugging is in progress.

POWER SUPPLY: The EasyPIC6 development system may use one of two power supply sources: 1. +5V PC power supply through the USB programming cable; 2. External power supply connected to a DC connector provided on the development board. The MC34063A voltage regulator is used for enabling external power supply voltage to be either AC (in the range of 7V to 23V) or DC (in the range of 9V to 32V). Jumper J6 is used as power supply selector. When using USB power supply, jumper J6 should be placed in the USB position. When using external power supply, jumper J6 should be placed in the EXT position. The development system is turned OFF/ON by changing the setting on the OFF/ON switch respectively.

Dept Of EIE

Page 18

Electronics and Instrumentation Engineering

Fig2.4.2: Power supply The programmer uses the MOSFET switch for suspending power supply on the development system during programming. When the process of programming is complete, the programmer enables the development system to be supplied with power. RS-232 COMMUNICATION INTERFACE: RS-232 serial communication is performed through a 9-pin SUB-D connector and the microcontroller USART module. In order to enable such communication, it is necessary to establish a connection between RX and TX communication lines (handshaking lines CTS and RTS are optionally used) and microcontroller pins provided with USART module using a DIP switch. The microcontroller pins used in such communication are marked as follows: RX receive data, TX transmit data, CTS clear to send and RTS request to send. Baud rate goes up to 115kbps. The USART (universal synchronous/asynchronous receiver/transmitter) is one of the most common ways of exchanging data between the PC and peripheral components. In order to enable the USART module of the microcontroller to receive input signals with different voltage levels, it is necessary to provide a voltage level converter such as MAX202C.

Dept Of EIE

Page 19

Electronics and Instrumentation Engineering

Fig2.4.3: RS-232C The function of DIP switches SW7 and SW8 is to determine which of the microcontroller pins are to be used as RX and TX lines. The microcontroller pinout varies depending on the type of the microcontroller.

USB Communication: The USB connector enables PIC microcontrollers with a built-in USB communication module to be connected to peripheral components. In order to enable USB communication, it is necessary to change the position of jumpers J12 from left-hand to right-hand, thus connecting the USB DATA lines (D+ i D-) to RC4 and RC5 microcontroller pins and the RC3/VUSB pin to capacitors C16 and C17. If USB communication is not used, jumpers J12 should be left in the left-hand position. The status of USB communication (OFF/ON) is indicated by LED. Figures show schematics of the most commonly used microcontrollers with integrated USB module.

Dept Of EIE

Page 20

Electronics and Instrumentation Engineering

Fig2.2.4: USB Communication

DS1820 TEMPERATURE SENSOR: Serial communication enables data to be transferred over one single communication line while the process itself is under the control of the master microcontroller. The advantage of such communication is that only one microcontroller pin is used. All slave devices have by default a unique ID code, which enables the master device to easily identify all devices sharing the same interface. DS1820 is a temperature sensor that uses 1-wire standard for its operation. It is capable of measuring temperatures within the range of -55 to 125C and provides 0.5C accuracy for temperatures within the range of -10 to 85C. Power supply voltage of 3V to 5.5V is required for its operation. It takes maximum 750ms for the DS1820 to calculate temperature with 9-bit resolution. The EasyPIC6 development system provides a separate socket for the DS1820. It may use either RA5 or RE2 pin for communication with the microcontroller. Jumper J11s purpose is selection of the pin to be used for 1-wire communication. Figure 10-5 shows 1-wire communication with microcontroller through the RA5 pin.

Dept Of EIE

Page 21

Electronics and Instrumentation Engineering

Fig2.4.5: Temperature sensor A/D Converter: An A/D converter is used for the purpose of converting an analog signal into the appropriate digital value. A/D converter is linear, which means that the converted number is linearly dependent on the input voltage value. The A/D converter built into the microcontroller provided with the EasyPIC6 development system converts an analog voltage value into a 10-bit number. Voltages varying from 0V to 5V DC may be supplied through the A/D test inputs. Jumper J15 is used for selecting some of the through the potentiometer or the microcontroller pin. The value of the input analog voltage can be changed linearly using potentiometer P1.

LEDs LED is a highly efficient light source. When connecting LEDs it is necessary to place a current limiting resistor the value of which is calculated using formula R=U/I where R is referred to resistance expressed in ohms, U is referred to voltage on the LED and I stands for LED diode current. A common LED diode voltage is approximately 2.5V, while the current varies from 1mA to 20mA depending on the type of LED diode. The EasyPIC6 development system uses LEDs with current I=1mA. The EasyPIC6 has 36 LEDs which visually indicate the logic state of each microcontroller I/O pin. An active LED diode
Dept Of EIE Page 22

Electronics and Instrumentation Engineering

indicates that a logic one (1) is present on the pin. In order to enable LEDs, it is necessary to select appropriate port PORTA/E, PORTB, PORTC or PORTD using the DIP switch SW9.

PUSH BUTTONS The logic state of all microcontroller digital inputs may be changed using push buttons. Jumper J17 is used to determine the logic state to be applied to the desired microcontroller pin by pressing the appropriate push button. The purpose of the protective resistor is to limit maximum current thus preventing a short circuit from occurring. Advanced users may, if needed, disable such resistor using jumper J24. Just next to the push buttons, there is a RESET button which is not connected to the MCLR pin. The reset signal is generated by the programmer.

Fig2.4.6: PUSH BUTTONS

Input/Output Ports Along the right side of the development system, there are seven 10-pin connectors which are connected to the microcontrollers I/O ports. Some of the connectors pins are directly connected to the microcontroller pins, whereas some of them are connected using jumpers. DIP switches SW1-SW5 enable each connector pin to be connected to one pull-

Dept Of EIE

Page 23

Electronics and Instrumentation Engineering

up/pull-down resistor. Whether port pins are to be connected to a pull-up or pull-down resistor depends on the position of jumpers J1-J5.

Fig2.4.7: I/O ports Pull-up/pull-down resistors enable voltage signal to be brought to the microcontroller pins. The logic level at pin idle state depends on the pull-up/pull-down jumper position. The RB0 pin along with the relevant DIP switch SW2, jumper J2 and RB2 push button with jumper J17 are used here for the purpose of explaining the performance of pull-up/pull-down resistors. The principle of their operation is identical for all the microcontroller pins. In order to enable PORTB pins to be connected to pulldown resistors, it is necessary to set jumper J2 in the lower position, thus providing 8x10K resistor network with a logic zero (0V). To bring a signal to the RB0 pin, it is necessary to set switch 1 on the DIP switch SW2 to the ON position. This will cause the microcontroller RB0 pin to be pulled down to the low logic level (0V) in its idle state. Jumper J17, used to determine the pin logic state provided by pressing push-buttons, should be set in the opposite position of jumper J2. Accordingly, every time you press the RB0 push button, a logic one (1) will appear on the RB0 pin.

Dept Of EIE

Page 24

Electronics and Instrumentation Engineering

2.5 UDN2981AMPLIFIER:
Recommended for high-side switching applications that benefit from separate logic and load grounds, these devices encompass load supply voltages to 50 V and output currents to -500 mA. These 8-channel source drivers are useful for interfacing between low-level logic and highcurrent loads. Typical loads include relays, solenoids, lamps, stepper and/or servomotors, print hammers, and LEDs. All devices may be used with 5 V logic systems TTL, Schottky TTL, DTL, and 5 V CMOS. The UDN2981A, UDN2982A, and A2982SLW are electrically interchangeable, will withstand a maximum output off voltage of 50 V, and operate to a minimum of 5 V. All devices in this series integrate input current limiting resistors and output transient suppression diodes, and are activated by an active high input. The suffix A (all devices) indicates an 18-lead plastic dual in-line package with copper lead frame for optimum power dissipation. Under normal operating conditions, these devices will sustain 120 mA continuously for each of the eight outputs at an ambient temperature of +50C and a supply of 15 V. The suffix LW (UDN2982LW only) indicates an 18-lead surface mountable wide-body SOIC package; the A2982SLW is provided in a 20-lead wide-body SOIC package with improved thermal characteristics. The UDN2982A, UDN2982LW, and A2982SLW drivers are also available for operation over an extended temperature range to -40C. To order, change the prefix UDN to UDQ or the suffix SLW to ELW. These packages are available in Pb (lead) free variants (suffix -T), with 100% matte-tin lead frame plating.
FEATURES _ TTL, DTL, PMOS, or CMOS Compatible Inputs _ 500 mA Output Source Current Capability _ Transient-Protected Outputs _ Output Breakdown Voltage to 50 V _ DIP or SOIC Packaging

Dept Of EIE

Page 25

Electronics and Instrumentation Engineering

8-CHANNEL SOURCE DRIVERS 2981 CHANNELSOURCE DRIVERS

Fig 2.5:2981 AND 2982 8-CHANNEL SOURCE DRIVERS

Dept Of EIE

Page 26

Electronics and Instrumentation Engineering

Dept Of EIE

Page 27

Electronics and Instrumentation Engineering

8-CHANNEL SOURCE DRIVERS

Fig2.5.1
Dept Of EIE Page 28

Electronics and Instrumentation Engineering

2.6 LCD:
LCD (Liquid Crystal Display) screen is an electronic display module and find a wide range of applications. A 16x2 LCD display is very basic module and is very commonly used in various devices and circuits. These modules are preferred over seven segments and other multi segment LEDs. The reasons being: LCDs are economical; easily programmable; have no limitation of displaying special & even custom characters (unlike in seven segments), animations and so on.

A 16x2 LCD means it can display 16 characters per line and there are 2 such lines. In this LCD each character is displayed in 5x7 pixel matrix. This LCD has two registers, namely, Command and Data.The command register stores the command instructions given to the LCD. A command is an instruction given to LCD to do a predefined task like initializing it, clearing its screen, setting the cursor position, controlling display etc. The data register stores the data to be displayed on the LCD. The data is the ASCII value of the character to be displayed on the LCD.

Pin Diagram of LCD:

Dept Of EIE

Page 29

Electronics and Instrumentation Engineering

Pin Description of LCD:


Pin No 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Function Ground (0V) Supply voltage; 5V (4.7V 5.3V) Contrast adjustment; through a variable resistor Selects command register when low; and data register when high Low to write to the register; High to read from the register Sends data to data pins when a high to low pulse is given Name Ground Vcc VEE Register Select Read/write Enable DB0 DB1 DB2 DB3 DB4 DB5 DB6 DB7 Led+ Led-

8-bit data pins

Backlight VCC (5V) Backlight Ground (0V)

Dept Of EIE

Page 30

Electronics and Instrumentation Engineering

2.7OPERATION OF AIRDRYER:
The operation of the dryer is under the control of a PLC through a pneumatic micro-solenoid valve set. Instrument pressure gauge indicates condition of each air operated valve. Air pressure On=valve Open. A mimic board on the control panel also indicates the state of the valves. With power supplied to the dryer and the isolator QO1 switched on the supply will illuminate power on lamp H1 and energize power trip relay. When the compressor run contact across terminals is closed, this brings on dryer run lamp H6. It also starts the PLC, the hour counter HC, and the alarm delay timer T1. On compressor or dryer start up, the function of the alarm delay timer is to delay all the alarm functions until the air system between the compressor and dryer itself pressurizes and the pressure in each adsorber vessel is correct dependent upon the position of PLC. It also inhibits the alarm output from the dew-point meter. Thereafter all alarms are functional until the dryer is switched off. When the dryer is operating the PLC outputs energize the electro-pneumatic solenoid control valves SV1-SV6. Solenoid SV1 and SV2 : control the air supply to the main inlet valves v1 and v2 and instrument gauge pv1 and pv2. Solenoids SV3 and SV4. Control the air supply to the reactivation purge valves V3 and V4 and instrument pressure gauges PV3 and PV4. Solenoids SV5 and SV6. Control the air supply to the automatic drain valves V5 and V6 and instrument pressure gauges PV5 and PV6. Outputs Y6 and Y7 are used to monitor the pressurization alarms. Delay timers T2 and T3 monitor the depressurization alarms. The pressure in the vessels is monitored by programmable pressure switches. All lamps apart from the power-on lamp have a lamp test facility. Press lamp test button S2 to energize lamp test relays LT, LT1 and LT3. The dryer malfunction warning lamps are intended to indicate failure of dryer adsorber vessels to depressurize or pressurize during each purge cycle. In the event of failure each warning lamp is latched on until the reset button is pressed. The pressure

Dept Of EIE

Page 31

Electronics and Instrumentation Engineering

switch contacts are subjected to a timer delay, the relevant contact being selected by the PLC outputs Y6 or Y7 or timers T2 and T3. FAIL TO DEPRESSURISE: Pressure switch contacts are set to close on a falling pressure of 25 bar. If the pressure in the vessel on reactivation doesnt fall below this pressure within the time set by timers T2 or T3 or pressurize during reactivation, then warning lamps Failed to depressurize will be illuminated. Alarm lamps H4 and H2 would be latched on and relay contacts will be closed giving no volt contacts across terminals for remote alarm and compressor shutdown. Relay contacts would be open to de-energize delay timer T1 and prevent any spurious or further alarms. The alarm lamp will remain illuminated until the re-set button S1 is pressed or power to panel is switched off or lost. The alarm relay will remain latched until re-set. FAIL TO PRESSURIZE: pressure switch contacts are set to close on a raising pressure of 200bar. Should at any time the pressure in the vessel going on stream fail to reach the set pressure, PLC outputs Y6 or Y7 energize respective relays R4 or R2 and the warning lamps Fail to pressurize will be illuminated. Alarm lamps H5 or H3 would be latched on and relay contacts will be closed giving no volt contacts across terminals for remote alarm and compressor shutdown. Relay contacts would be open to de-energize delay timer T1 and prevent any spurious or further alarms. DEW POINT ALARM SOUNDER: If the dryer fails to achieve the required dewpoint, the dew-point warning lamp on the mimic diagram will illuminate and the sounder will sound. The sounder can be silenced by pressing the alarm mute button. ALARM DELAY TIMER T1: timer T1 is set to hold off the alarm circuits for a period of time to allow circuits on pressurize and depressurize to settle. POWER TRIP RELAY: Timer PTR holds the alarm circuit off for a set period to allow delay in operating main control panel dryer failure flag relay. This prevents compressor lockout and dryer shutdown in the event of minor breaks in control panel supply voltage. The dryer is designed that upon loss of power, the air solenoid valves de-energize and
Dept Of EIE Page 32

Electronics and Instrumentation Engineering

shutoff the control air supply to the main inlet, purge and drain valves V1-V6, leaving the plant in a safe condition. Main air circuit: For the purpose of description, assume that the left hand Adsorber AD1 of the drying plant is on drying duties and the desiccant in the right hand Adsorber AD2 is being reactivated. The wet compressed air enters through the pre-filter and 3 stage oil Adsorption filter as mounted on the Dryer plant. The compressed air then passes through the air operated inlet valve V1 and up through Adsorber AD1 wher water vapour will be removed and retained in the pores of the desiccant. The dry air will leave the adsorber through the left hand non-return valve at the top of the plant.a small volume of the dry compressed air leaving Adsorber AD1 passes through the activation flow control orifices. The dry air passes through the combined filter and orifices which regulates the flow of Activation air and expand it to Approximately 30 psig. It then passes in to the top saction of Adsorber AD2. Adsorber AD1 pressure Gauge PG3 reading high. Adsorber AD2 pressure Gauge PG4 reading low. The dry expanded air entering the top part of Adsorber AD2 will pass down through the desiccant and pick up the water vapour adsorbed during the previous drying cycle. The moisture laden air leaves the adsorber through the bottom connection and passes through activation purge Valve V4 and out of the plant via the activation air silencer S1. Adsorber AD2 pressure Gauge PG4 reading low.the reactivation air passes down through Adsorber AD2 for 4 minutes 20 seconds of the period. The activation purge Valve V4 the closes and the reactivation air continues to flow and increase the pressure in Adsorber AD2. During the reaming 7 minutes the pressure increase until both Adsorber Vessels are at line pressure.

Dept Of EIE

Page 33

Electronics and Instrumentation Engineering

Adsorber AD2 pressure Gauge PG4 rising to full pressure. At the end of the cycle, inlet valve V2 will open and V1 will close 20 seconds later and the changeover of the air flow will be completed. Adsorber pressure Gauge PG3 and PG4 both reading high. Activation purge valve V3 now opens and the pressure in adsorber AD1 will reduce and activation of the desiccant will proceed. Adsorber AD1 pressure guage PG3 reading low. Adsorber AD2 pressure guage PG4 reading high. The activation air flow is maintained by the fixed flow restrictor orifice and the pressure at which activation takes place is controlled by the purge orifice in the outlet pipework coupling of the activation purge valve. Air then leaves the drying plant through the after filter and back pressure maintain valve.

Dept Of EIE

Page 34

Electronics and Instrumentation Engineering

DRYER TIMING CHART:

Dept Of EIE

Page 35

Electronics and Instrumentation Engineering

3.SOFTWARE:
The software that runs in the programmable controller has been developed in Mikro C . The program is implemented using the Mikro C PRO PIC v.4.600 which provides the libraries that can be used to develop real time applications. The real time task named as Main Task executes the application code in cyclic manner. This Main Task has to be initialized using the INIT task. In each cycle of this cyclic task the value for the hardware watch-dog timer is set. If the execution time for the current cycle exceeds the watch-dog timer value, then the microcontroller is interrupted and the interrupt service routine brings the system to a predefined safe state. The software that runs in the programmable controller has been developed in Mikro C. The program is implemented using the Mikro C PRO IDE, These libraries can be used to develop real time applications. OSA is a cooperative multitasking real-time operating system (RTOS) for Microchip PIC-controllers PIC16, for Atmel AVR 8-bit controllers, and for STMicroelectronics STM8. RTOS allows the programmer to focus on problem-oriented tasks (algorithmic, mathematical etc.) and not have to worry about secondary tasks. All secondary tasks are performed by OSA's kernel:

switching between parallel processes (e.g. keyboard scanning, output data to LCD, switching relays);

checking timeouts, counting delays; finding the ready task with the highest priority and executing it; data exchange between different tasks using semaphores, messages, queues etc.

Dept Of EIE

Page 36

Electronics and Instrumentation Engineering

3.1 STATE TRANSITION CHART:

Fig3.1 flow chart

Dept Of EIE

Page 37

Electronics and Instrumentation Engineering

3.2 INTRODUCTION TO MIKROC PRO FOR PIC


The mikroC PRO for PIC is a powerful, feature-rich development tool for PIC microcontrollers. It is designed to provide the programmer with the easiest possible solution to developing applications for embedded systems, without compromising performance or control. PIC and C fit together well: PIC is the most popular 8-bit chip in the world, used in a wide variety of applications, and C, prized for its efficiency, is the natural choice for developing embedded systems. mikroC PRO for PIC provides a successful match featuring highly advanced IDE, ANSI compliant compiler, broad set of hardware libraries, comprehensive documentation, and plenty of ready-to-run examples.

Features
mikroC PRO for PIC allows you to quickly develop and deploy complex applications:

Write your C source code using the built-in Code Editor (Code and Parameter Assistants, Code Folding, Syntax Highlighting, Auto Correct, Code Templates, and more.)

Use included mikroC PRO for PIC libraries to dramatically speed up the development: data acquisition, memory, displays, conversions, communication etc.

Monitor your program structure, variables, and functions in the Code Explorer. Generate commented, human-readable assembly, and standard HEX compatible with all programmers.

Use the integrated mikroICD (In-Circuit Debugger) Real-Time debugging tool to monitor program execution on the hardware level.

Inspect program flow and debug executable logic with the integrated Software Simulator.

Generate COFF(Common Object File Format) file for software and hardware debugging under Microchip's MPLAB software.

Active Comments enable you to make your comments alive and interactive.
Page 38

Dept Of EIE

Electronics and Instrumentation Engineering

Get detailed reports and graphs: RAM and ROM map, code statistics, assembly listing, calling tree, and more.

mikroC PRO for PIC provides plenty of examples to expand, develop, and use as building bricks in your projects. Copy them entirely if you deem fit thats why we included them with the compiler.

3.2.1 RTOS:
There are several commercially available, shareware and open-source RTOS systems for the PIC microcontroller family. Brief details of some popular RTOS systems are given in this section. Salvo is a low-cost, event-driven, priority-based, multitasking RTOS

designed for microcontrollers with limited program and data memories. It can be used for many microcontrollers, including the 8051 family, ARM, Atmel AVR, M68HC11, MS430, PIC microcontroller family and others. Salvo is written in ANSI C and supports a large number of compilers, including Keil C51, Hi-Tech 8051, Hi-Tech PIC C-18, Microchip MPLAB C18 and many others. A demo version (Salvo Lite) is available for evaluation purposes. The SE and LE versions are for systems requiring smaller number of tasks with less features, while the Pro version is the top model aimed for professional applications. The Pro version supports unlimited number of tasks with priorities, event flags, semaphores, binary semaphores, message queues and many more features. Real-time operating systems are built around a multi-tasking kernel which controls the allocation of time slices to task. A time slice is the period of time a given task has for execution before it is stopped and replaced by another task. This process, also known as context switching, repeats continuously. When context switching occurs, the executing task is stopped, the processor register are saved in memory, the processor register of the next available task are loaded in the CPU, and the new task begins execution. An RTOS also provides task-to-task message passing, synchronization of task, and allocation of shared resources to tasks.

Dept Of EIE

Page 39

Electronics and Instrumentation Engineering

The basic parts of an RTOS are: Scheduler RTOS services Synchronization and The scheduler: A scheduler is at the heart of every RTOS, as it provides the algorithms to select the tasks for execution. Three of the more common scheduling algorithm are: Cooperative scheduling Round-robin scheduling Preemptive scheduling CO-OPERATIVE SCHEDULING: Co-operative scheduling cannot satisfy real-time system needs, since it cannot support the prioritization of tasks according to importance. State machine construct is a simple form of a co-operative scheduling technique. ROUND-ROBIN SCHEDULING: In this one it assigned an equal share of CPU time. A counter tracks the time slice for each task. When one tasks time slice completes, the counter is cleared and the task is placed at the end of the cycle. Newly added tasks are placed at the end of the cycles with there counters cleared to zero.

TASK 1

TASK 2

TASK 3

TASK 1

TASK 2

Fig 3.2.1(a)

Dept Of EIE

Page 40

Electronics and Instrumentation Engineering

PREEMPTIVE SCHEDULING: It is a real-time scheduling algorithm it is priority based, and each task is given a priority. The task with highest priority gets the CPU time. Real-time systems generally support priority levels ranging from 0 to 255, where 0 is highest priority and 225 is the lowest. priority
TASK 3 TASK 2 TASK 2

TASK 1

TASK 1

Time Fig3.2.1(b): Preemptive scheduling In a real-time system a task can be in any one of the following states Ready to run Running Blocked When a task is first created, it is usually ready to turn and is entered in the task list. From this state, subject to the scheduling algorithm, the task can become a running task. The task will run if it is the highest priority task in the system and is not waiting for resource. The kernel usually provides an interface to manipulate task operations. Typical task operations are: Creating a task Deleting a task Changing the priority of a class
Dept Of EIE Page 41

Electronics and Instrumentation Engineering

Changing the state of a task

TASK STATES

RTOS MANAGEMENT OF TASKS:

Dept Of EIE

Page 42

Electronics and Instrumentation Engineering

3.2.2 OSA:
OSA is a cooperative multitasking real-time operating system (RTOS) for Microchip PIC-controllers PIC16, PIC18, PIC24, dsPIC, for Atmel AVR 8-bit

controllers, and for STMicroelectronics STM8. RTOS allows the programmer to focus on problem-oriented tasks (algorithmic, mathematical etc.) and not have to worry about secondary tasks. All secondary tasks are performed by OSA's kernel

switching between parallel processes (e.g. keyboard scanning, output data to LCD, switching relays);

checking timeouts, counting delays; finding the ready task with the highest priority and executing it; Data exchange between different tasks using semaphores, messages, queues etc.

A task in OSA is a C-function. This function must contain an infinite loop which has inside it at least one service that switches task context. A simple task can look like this: void SimpleTask (void) { for (;;) // Infinite loop { OS_Yield(); // Unconditional context switching } }

Scheduler The service OS_Run() is a macro that contains an infinite loop calling the scheduler. This service should be called at the end of function main (). It gives full control to the OSA kernel. The scheduler examines all active tasks and looks for the ready task with highest priority. When the task is found, the scheduler executes it. OS_Run() is a macro. This macro contains global labels; thus this service can be used only once in the program.

Dept Of EIE

Page 43

Electronics and Instrumentation Engineering

So program can look like this: void main (void) { OS_Init(); OS_Task_Create(...); OS_Task_Create(...); // Create all the tasks you need // ... OS_Run(); } The scheduler scans all active tasks (i.e. those created by service OS_Task_Create and finds all those ready to execute. Then the scheduler compares the priorities of all ready tasks and gives control to the highest priority one of them. There is one exception: when one of the tasks is in a critical section, only this task can get control; other tasks are skipped by the scheduler in this case.

If, while scanning all tasks, the scheduler finds a ready task with priority = 0 (highest) then the scheduler stops the search and gives control to this task. This increases the scheduler's speed.

Events and priority Task states To synchronize tasks, the system uses events. For example, we have two active tasks (created by service OS_Task_Create): one of them measures temperature, and the other
Dept Of EIE Page 44

Electronics and Instrumentation Engineering

displays the measured value on a screen. The second task cannot display data if there is no measured value. While the first task makes measurements, the second task waits. After the temperature is measured (in other words, the event has taken place), the second task becomes ready to run. And then the second task can be executed. Thus all tasks can have one of five states: not active task was not created or was deleted Waiting Ready Running Paused task is waiting for some event the expected event occurred but the task did not get control yet task is executing task is paused. It is still active but can't get control.

In order for a task to get control, two conditions must be met: 1. The event expected by the task occurs (task becomes ready) 2. The task's priority must be higher than the priorities of other ready tasks. Priority: All tasks have a priority from 0 (highest) to 7 (lowest). There are three priority modes (levels): disabled priorities - all assigned priorities are ignored. This is the fastest and compact mode. But it does not allow assigning higher priority for more important tasks. Normal priorities - each task have it's own priority. If there are several ready tasks, then the task with the highest priority will get control. If several ready tasks have the same priority, then they will be run in round-robin mode. This mode has two disadvantages:
Dept Of EIE Page 45

Electronics and Instrumentation Engineering

when there is an always ready task with high priority, no low priority tasks will get control; when two or more tasks have the same priority and they wait for the same event, only one of them always will get the control Extended priorities- all tasks get control according to their priority. For example, if there are two always ready tasks with priorities 3 and 4, then one of them will get 55-60% of control (with priority 4) and other - 40-45%. The advantage of this mode is that all tasks guaranty will get the control. But in this mode system requires 2 addition bytes of RAM per each task. Read Speed characteristics to learn more about speed of scheduler in different modes. The priority mode is defined once on the compilation stage by setting constant

OS_PRIORITY_LEVEL in osacfg.h. #define OS_PRIORITY_LEVEL priorities #define OS_PRIORITY_LEVEL priorities #define OS_PRIORITY_LEVEL priorities OS_PRIORITY_DISABLE // For disable

OS_PRIORITY_NORMAL

// For normal

OS_PRIORITY_EXTENDED // For extended

Dept Of EIE

Page 46

Electronics and Instrumentation Engineering

3.2.3PROGRAM CODE
//****************************************************************************** //Title : Micro Controller Based Air Drier System //Purpose: Demonstration of Air Drier Project with OSA RTOS features //Authors: Students //Date of Creation: //Date of Last Modification: // // PIC16F887 EasyPIC6 OSA RTOS // //****************************************************************************** #include <osa.h> #include <OSAcfg.h>//-----------------------------------------------------------------------------// Configuration bits: // - internal RC-oscilator // - WDT OFF // - low-voltage programming OFF // - debugging OFF //-----------------------------------------------------------------------------//-----------------------------------------------------------------------------// Define outputs where leds are connected //-----------------------------------------------------------------------------#define LOW_PRESSURE_ALARM RD6_bit #define HIGH_PRESSURE_ALARM RD7_bit //-----------------------------------------------------------------------------// Timer's parameters: // - prescaler = 4, // - postscaler = 1, // - count limit = 250 // // Fosc = 8 MHz. // // TMR2 interrupt period = 4 * 1 * 250 * Tcyc = 1 ms // //-----------------------------------------------------------------------------#define PR2_CONST 250-1 #define TMR2_PRS 1 // prs = 4 #define TMR2_POST 0 // post = 1 #define T2CON_CONST (TMR2_POST<<3) | TMR2_PRS // LCD module connections sbit LCD_RS at RB4_bit; sbit LCD_EN at RB5_bit; sbit LCD_D4 at RB0_bit; sbit LCD_D5 at RB1_bit; sbit LCD_D6 at RB2_bit; sbit LCD_D7 at RB3_bit; sbit LCD_RS_Direction at TRISB4_bit; Dept Of EIE Page 47

Electronics and Instrumentation Engineering sbit LCD_EN_Direction at TRISB5_bit; sbit LCD_D4_Direction at TRISB0_bit; sbit LCD_D5_Direction at TRISB1_bit; sbit LCD_D6_Direction at TRISB2_bit; sbit LCD_D7_Direction at TRISB3_bit; // End LCD module connections //-----------------------------------------------------------------------------// Declaration of all Variables // -------------------------------------------------------------------unsigned long int temp_res,temp, secs,cnt,x; float engcur; unsigned long int msec,count; bit START,bAnalog,bAlarm,STOP; int i,k,te; float engval; char txt[10]; //****************************************************************************** // Interrupt service routine. (Interrupt occures every 1 ms) //****************************************************************************** void interrupt (void) { if (PIR1.TMR2IF == 1) { OS_Timer(); msec++; if (msec%1000 ==0) { secs++; // 1 sec generation bAnalog=1; } if(secs>1350) { cnt=0; secs=0; } PIR1.TMR2IF = 0; if (STOP==1) { PORTB=0; } } } void Tone1() { Sound_Play(659, 250); // Frequency = 659Hz, duration = 250ms } void Tone2() { Sound_Play(800, 250); // Frequency = 698Hz, duration = 250ms } Dept Of EIE Page 48

Electronics and Instrumentation Engineering //****************************************************************************** // Tasks //****************************************************************************** //-----------------------------------------------------------------------------void Task_T1 (void) { for (;;) { if (START==1) { /************VP1 *******/ if(secs>=0 && secs <=699) { PORTA.B0=1; if(PORTD.B0 ==1) { //DO NOTHING ; } else { STOP=1; } } else { PORTA.B0=0; } /************VP2 *******/ if((secs>=675 && secs <=1350) || (secs<=14)) { PORTA.B1=1; if(PORTD.B1 ==1) { //DO NOTHING ; } else { STOP=1; } } else { PORTA.B1=0; } /************VP3 *******/ if(secs>=702 && secs <=918) { PORTA.B3=1; if(PORTD.B2 ==1) Dept Of EIE Page 49

Electronics and Instrumentation Engineering { //DO NOTHING ; } else { STOP=1; } } else { PORTA.B3=0; } /************VP4 *******/ if(secs>=27 && secs <=243) { PORTA.B4=1; if(PORTD.B3 ==1) { //DO NOTHING ; } else { STOP=1; } } else { PORTA.B4=0; } /************VP5 *******/ if(secs>=810 && secs <=819) { PORTA.B5=1; if(PORTD.B4 ==1) { //DO NOTHING ; } else { STOP=1; } } else { PORTA.B5=0; } /************VP6 *******/ if(secs>=135 && secs <=144) Dept Of EIE Page 50

Electronics and Instrumentation Engineering { PORTA.B6=1; if(PORTD.B5 ==1) { //DO NOTHING ; } else { STOP=1; } } else { PORTA.B6=0; } } } } //-------------------------------------------------------------------------------------------------void Task_T2 (void) { for (;;) { OS_Cond_Wait(bAnalog); bAnalog=0; temp_res = ADC_Read(2); // Get 10-bit results of AD conversion te=temp_res; k=1; for(i=0; i<10;i++) { te=te+(te&0x01)*k; //Decimal vaue Conversion k=k*2; } engcur =(0.11*te)-55.0; // Engineering Value conversion -55Mpa to +55 MPa FloatToStr(engcur,txt); //Convert Float to String bAlarm =1; UART1_Write_Text( txt); //Send Data to PC for Storing and Doing Offline Analysis though Serial communication Lcd_Out(2, 5, txt); //Display Current value in LOcal LCD dispaly OS_Delay(200); // Wait 200 ms } }

//-----------------------------------------------------------------------------void Task_T3 (void) { Dept Of EIE Page 51

Electronics and Instrumentation Engineering for (;;) { OS_Cond_Wait(bAlarm); bAlarm=0; if (engcur > 55.0) // Checking for High Pressure Dew Limit { HIGH_PRESSURE_ALARM =1; Tone1(); } else if (engcur < -55.0) // Checking for Low Pressure Dew Limit { LOW_PRESSURE_ALARM =1; Tone2(); } }

} //****************************************************************************** // Perifery init //****************************************************************************** void init (void) { //-----------------------------------------------------------------------------// I/O ports setup //------------------------------------------------------------------------------

ANSEL = 0x04; // AN2 is configured as Analog Input ANSELH = 0x00; PORTB = 0; PORTC = 0; PORTD = 0; TRISA = 0X04; TRISB = 0; TRISC = 0; TRISD = 0x3F; UART1_init(9600); START =1; //-----------------------------------------------------------------------------// Timer setup //-----------------------------------------------------------------------------PR2 = PR2_CONST; T2CON = T2CON_CONST | 0x04; Dept Of EIE Page 52

Electronics and Instrumentation Engineering //-----------------------------------------------------------------------------// Interrupts setup //-----------------------------------------------------------------------------PIR1 = 0; PIR2 = 0; INTCON = 0; PIE1.TMR2IE = 1; // Enable TMR2 interrupt INTCON.PEIE = 1; // Enable periphery interrupts // Global interrupts will be enabled // in main just before running scheduler Lcd_Init(); // Initialize LCD Lcd_Cmd(_LCD_CLEAR); // Clear display Lcd_Cmd(_LCD_CURSOR_OFF); // Cursor off Lcd_Out(1,6,txt); // Write text in first row Lcd_Out(1, 1, " Dew Point: "); // Print degree character, 'C' for Centigrades Lcd_Chr(2,13,223); // Different LCD displays have different char code for degree // If you see greek alpha letter try typing 178 instead of 223 Lcd_Chr(2,14,'M'); /*-----------------------------------------------------------------------------*/ // Initilisation of Sounds /*-----------------------------------------------------------------------------*/ Sound_Init(&PORTC, 3);

//****************************************************************************** // MAIN //****************************************************************************** #pragma funcall main Task_T1 #pragma funcall main Task_T2 #pragma funcall main Task_T3 void main (void) { init(); // Init perifery OS_Init(); // System init

// Creating Tasks OS_Task_Create(1, Task_T1); // OS_Task_Create(2, Task_T2); OS_Task_Create(3, Task_T3); Dept Of EIE Page 53

Electronics and Instrumentation Engineering

OS_EI(); OS_Run(); }

// Enable interrupts // Run scheduler

//****************************************************************************** // END //******************************************************************************

Dept Of EIE

Page 54

Electronics and Instrumentation Engineering

4. Verification and Validation:


Verification is intended to check that a product, service, or system (or portion thereof, or set thereof) meets a set of initial design requirements, specifications, and regulations. In the development phase, verification procedures involve performing special tests to model or simulate a portion, or the entirety, of a product, service or system, then performing a review or analysis of the modeling results. In the post-development phase, verification procedures involve regularly repeating tests devised specifically to ensure that the product, service, or system continues to meet the initial design requirements, specifications, and regulations as time progresses.[citation needed] It is a process that is used to evaluate whether a product, service, or system complies with

regulations, specifications, or conditions imposed at the start of a development phase. Verification can be in development, scale-up, or production. This is often an internal process. Validation is intended to check that development and verification procedures for a product, service, or system (or portion thereof, or set thereof) result in a product, service, or system (or portion thereof, or set thereof) that meets initial requirements, specifications, and regulations. For a new development flow or verification flow, validation procedures may involve modeling either flow and using simulations to predict faults or gaps that might lead to invalid or incomplete verification or development of a product, service, or system (or portion thereof, or set thereof). A set of validation requirements, specifications, and regulations may then be used as a basis for qualifying a development flow or verification flow for a product, service, or system (or portion thereof, or set thereof). Additional validation procedures also include those that are designed specifically to ensure that modifications made to an existing qualified development flow or verification flow will have the effect of producing a product, service, or system (or portion thereof, or set thereof) that meets the initial design requirements, specifications, and regulations; these validations help to keep the flow qualified.[citation needed] It is a process of establishing evidence that provides a high
Dept Of EIE Page 55

Electronics and Instrumentation Engineering

degree of assurance that a product, service, or system accomplishes its intended requirements. This often involves acceptance of fitness for purpose with end users and other product stakeholders. This is often an external process. It is sometimes said that validation can be expressed by the query "Are you building the right thing?" and verification by "Are you building it right?" "Building the right thing" refers back to the user's needs, while "building it right" checks that the specifications are correctly implemented by the system. In some contexts, it is required to have written requirements for both as well as formal procedures or protocols for determining compliance. Test cases for all the failure and success cases Test case1: The control logic is initially tested in the Lab setup as the below procedure. 1.Valves commanding ON /OFF checked on the LEDs 2.Analog Data current loop simulated from CA11 and Pressure value is logged at PC every one sec and display on LCD 3. Alarm is generated and tested for the frequency.

Dept Of EIE

Page 56

Electronics and Instrumentation Engineering

S.No 1

Test Case

Expected Output

Observed Output

Action as Reset variables all

Case 1-valves Reset all the Same are commanded valves-stop the expected but sts not program

availabe 2 Case 2-checked Alarm1-LED1 for the alarm1- glows dewpoint 55Mpa 3 Case 3-checked Alarm1-LED2 for the alarm2- glows dewpoint 55Mpa <Alarm1LED2glows Result expected as <Alarm1-LED1 glows Result expected as

Dept Of EIE

Page 57

Electronics and Instrumentation Engineering

Test Setup:1.For Valves Control and Valve Micro Switch status is available or not

Dept Of EIE

Page 58

Electronics and Instrumentation Engineering

USART Terminal picture for logging of data:

Dept Of EIE

Page 59

Electronics and Instrumentation Engineering

CONCLUSION: The logic for reading the valve status and logging the pressure and to glow the

LED according to the setpoint was successfully ported onto the PIC16F887 MCU and was tested in simulation mode for all possible conditions and the results are found to be satisfactory. The system was designed to be as a general purpose real time embedded system where all ports are configurable as per the requirements and any specific or general purpose application can be easily ported into the system. The system developed was interface to a general purpose personal computer for displaying all process values and recording all the values for offline analysis. Scope of the Project in the near Future: Instead of logging the data at PC, the data can be stored in EEPROM card and can be interfaced to the PC for offline analysis.

Dept Of EIE

Page 60

Electronics and Instrumentation Engineering

BIBLIOGRAPHY: Books Referred: 1. PIC microcontrollers by -Douglas Ibrahim Websites:


1. http://www.mikroe.com/eng/products/view/297/easypic6-development-system/ 2. http://ww1.microchip.com/downloads/en/DeviceDoc/41291D.pdf 3. http://rtos.com/news/detail/New_Textbook_Explains_RealTime_Programming_of_MIPS _Processors/ 4. http://www.pic24.ru/doku.php/en/osa/ref/introduction/intro

Dept Of EIE

Page 61

You might also like