Modbus Based Control System

82
TABLE OF CONTENT: SR.NO TITLE PAGE NO. I LIST OF FIGURES 6 II LIST OF TABLES 7 1. SYNOPSIS 8 2. LITERATURE SURVEY 9 3. INTRODUCTION 10 4. SYSTEM SPECIFICATION 12 5. BLOCK DIAGRAM 14 BLOCKWISE DESIGN 15 1

Transcript of Modbus Based Control System

Page 1: Modbus Based Control System

TABLE OF CONTENT:

SR.NO TITLE PAGE

NO.

I LIST OF FIGURES 6

II LIST OF TABLES 7

1. SYNOPSIS 8

2. LITERATURE SURVEY 9

3. INTRODUCTION 10

4. SYSTEM SPECIFICATION 12

5. BLOCK DIAGRAM 14

6. BLOCKWISE DESIGN 15

7. DESIGN APPROACH

1)SERVER

2)RS485 IMPLEMENTATION

3)SCADA SYSTEM

16

8. HARDWARE DESIGN 19

9. SOFTWARE DESIGN 29

10. APPLICATION 48

1

Page 2: Modbus Based Control System

11. TESTING 50

1 2. FUTURE SCOPE 54

13. BIBLIOGRAPHY 55

14. APPENDIX 56

15. CIRCUIT DIAGRAM 62

16. DATA SHEETS 69

2

Page 3: Modbus Based Control System

I. LIST OF FIGURES

Figure5.1 Block diagram DCS……………………………………………………..14

Figure 6.1

to 6.4 Internal Block diagram of all modules…………………………….…..15

Figure7.1 DCS system flow chart…………………………………………….……16

Figure8.1 power supply design……………………………………………….……20

Figure8.2 RS485 biasing circuit……………………………………………….…...24

Figure8.3 Driver circuit for Buzzer……………………………………….………...25

Figure8.4 Signal conditioning circuit……………………………………………….27

Figure9.1 Network layer…………………………………………………….……....30

Figure9.2 Modbus Transaction diagram…………………………….…….………36

Figure9.3 ………….….………37

To 9.8 Flowcharts of various functions ……………………………..to…....42

Figure9.9 RTU frame………………………………………………………………..45

Figure10.1 Application block diag……………………………………………..…….48

Figure14.1 Modbus protocol &ISO model comparison…………………….……...56

Figure14.2 Modbus Frame…………………………………………………………...58

Figure14.3 Address rule……………………………………………………………...58

Figure14.4 4 wire Topology for RS485……………………………………………..59

Figure14.5 CRC calculations………………………………………………………...59

Figure15.1 Module C………………………………………………………………….63

Figure15.2 Module B………………………………………………………………….64

Figure15.3 Module A………………………………………………………………….65

Figure15.4 Module D………………………………………………………………….66

3

Page 4: Modbus Based Control System

II. LIST OF TABLES

Table9.1 System supported functions……………………………………………30

Table9.2 Exception code…………………………………………………………..31

Table9.3 Address allotment of Module A………………………………………...43

Table9.4 Address allotment of Module B…….…………………………………..43

Table9.5 Address allotment of Module C………………………………………...44

Table14.1 Primary table………………………………………………….…………..57

Table15.1 Components & Bill…………………………………………………...60,61

4

Page 5: Modbus Based Control System

1. SYNOPSIS

Modbus based Distributed control System (DCS)

Domain: Industrial process automation. Hardware Platform: 8-bit microcontroller. Programming Language: Embedded C. Application layer protocol: Modbus Protocol (A de-facto Industrial Application

layer protocol),SPI. Physical Layer Interface: RS-232, RS-485. Parameter monitoring SCADA

System will continuously monitor the temperature and stores the value in its internal memory. On receiving a Modbus command from the PC based software / Control system with specified formatted protocol will send the read value as a Modbus response.

A temperature can be set through the PC based software which can send indication over Modbus at some other remote place.

A 24V to 5V DC/DC Converter is used to power up the system.

According to alarm Trigger Pt. Setting Buzzer & Led’s will indicate.Control over all 3 modules from module D or Master is over MODBUS-RS485.

5

Page 6: Modbus Based Control System

2. LITERATURE SURVEY

To get basic knowledge about “Modbus protocol”, we referred following Web resources:

1. www.MODICON.com

2. www.wikipedia.com

3. www.google.com.

After getting used to with protocol, we started from Physical layer which tells about topology, for that we referred Application Note[AN002] from www.modicon.com,[Mazi] and [JanS] .

For RS232 we referred: Application note [AN723],[AN2020] from www.maxim.com.

For RS485 we referred: Application note[AN1063],[AN736],AN[723] from www.maxim.com. & [SLLA272B] from www.TI.com

Power supply design concepts were found from [Boye].

Moving further towards upper layers, we decided to implement system modules using Atmega32 controller, which is 8-bit controller from AVR family. To study this we referred [DhanG].

Software tools used:

IDE: AVRSTUDIO4, Compiler: WINAVR, Downloader: FreeIsp,

Ref: Manual: doc2510, doc1019.

While working on UART again [JanS] was useful.

To Implement Application layer with device profile

Ref: Application Note [AN001], [AN003]

6

Page 7: Modbus Based Control System

3. INTRODUCTION

Name of project: Our project is named as “Modus based Distributed Control System”. It is

basically a model which just demonstrates system

Need of project: In industries there are certain processes where human intervention is not possible due to harsh environmental conditions and criticality of application, but at the same time physical parameter like temperature, pressure, air flow etc. have to be monitored and controlled. Remote monitoring and controlling is must in such cases, which is RTU .

Our system is a RS-232/ RS485 based temperature transmitter can read the surrounding temperature, send this data over Modbus protocol to the PC based software or a PLC control system which controls it.

A distributed control system (DCS) in which the controller elements are not central in location (like the brain) but are distributed throughout the system with each component sub-system controlled by one or more controllers

DCS is a very broad term used in a variety of industries, to monitor and control distributed equipment.

Why MODBUS?

1)It is openly published and royalty-free

2)Relatively easy industrial network to deploy

3)It moves raw bits or words without placing many restrictions on vendors

7

Page 8: Modbus Based Control System

Basic idea & approach:

we are going to develop distributed control system

Which consist of 4 modules->master taking service from 3 slaves (Servers).

Master-> pc : module D.

Slaves->Module A: Temp module

• Module B: Generic module

• Module C: Alarm & process status indicator .

• They all will communicate using Modbus protocol over RS-485.

Module-D

Is PC based Modbus Master running SCADA - supervisory control and data acquisition systems

Module-A

System will continuously monitor the temperature and stores the value in its

internal memory. At particular trigger point of temperature set by master alarm

module will come in picture.

Module-B

Generic module is universal sensing device. User also has to feed data read in

the form of 0-5v and conversion factor.

Module-C

This module consists of two parts

1) To indicate exceeding of trigger point temperature .

2) For the purpose of controlling part 3LED’s are provided to show different

works or functions.

8

Page 9: Modbus Based Control System

4. SYSTEM SPECIFICATION

Power I/P: 230 v ac, 50Hz

1)Module A: Intelligent Temperature Sensor Module

Temp Range: 0 to 100˚C

Display: 16x2 Character Display

Communication port: Modbus over RS485 (TWI).

Resolution : 0.1˚C

2)Module B: Generic Analog I/P Module

Variable I/p: 0 to 5v simulating any physical quantity

Display: 16x2 Character Display

Communication port: Modbus over RS485 (TWI).

Resolution: 10bit

3)Module C:Alarm & process status indicator

Communication port: Modbus over RS485 (TWI)

Two Alarm Signals:

Visuals: 3 LEDs .

Audio: Buzzer .

4) RS232-Rs485 Converter

2 communication port: RS232/RS485

RS 485-2 wire configuration

9

Page 10: Modbus Based Control System

Calculated Termination Resistance

5) Module D: PC Based mini SCADA System

VB/Turbo c Based Front End s/w

Communication: Modbus Master over RS 232

Data Logging Facility

Alarm Trigger Pt Setting

Monitoring Parameter

6) UART:

Baud Rate Supported (bps):4800, 9600, 19.2k, 38.4k, 57.6k, and 115.2k

Data Bits: 7, 8

Parity: N, 0, E

Stop bits: 1(for E), 2

Flow Control: None

Domain: Industrial process automation.

Hardware Platform: 8-bit microcontroller.(ATMega32)

Programming Language: Embedded C.

Application layer protocol: Modbus Protocol

Physical Layer Interface: RS-232, RS-485.

Data Link Layer Interface: UART

Parameter monitoring Software using

(PC based Mini SCADA system) : VB 6.0 / VC++.

10

Page 11: Modbus Based Control System

5. BLOCK DIAGRAM

LT1

D: MODBUS Master

B: MODBUS Slave

A: MODBUS Slav

C: MODBUS Slave

LT2

Fig 5.1

11

Generic

Device

Alarm and process status indicator

Temperature Module

PC

(SCADA SYSTEM)

RS RS

- -

232 485

Page 12: Modbus Based Control System

6. BLOCKWISE DESIGN

1) MODULE A: Temp Module

A TTL

B

Fig 6.1

2) MODULE B : Generic device

A

TTL

B

Fig 6.2

3) MODULE C: Alarm and Process status indicator

A TTL

B

Fig 6.3

4) MODULE D: PC based mini SCADA system

A

RS232 TTL

B

Fig 6.4

12

TTL to 485

ADC TEMPRATURE SENSOR

Controller

TTL to 485

ADCController 0 to 5V analog I/p

TTL to 485

Controller Led’s &

Buzzer

PC

Serial port

RS232

Db9-plug

232

To TTL

UART

TTL to 485

Page 13: Modbus Based Control System

7. DESIGN APPROACH

System is broadly divided in 3 parts

1) SERVER

2) RS485 implementation

3) SCADA system

13

SLAVE BOOTING PROCESS

MASTER BOOTING

POLL FOR SLAVE DEVICES

SET CONDITION FOR ALARM

START MONITORING THE PROCESS

CHECK FOR

CONDITION

SET ALARM OR LED’S

Fig 7.1

DCS system Flowchart ->

YES NO

Page 14: Modbus Based Control System

1) SERVER

Hardware approach :

These are modules A,B&C

In which common requirement s are

• 8-bit microcontroller->AVR ATMEGA32 selected

• Power supply ->230v to 9v conversion.

For the purpose of testing of various interfaces like

1) Ttl-Rs232

2) Downloading section

3) Display unit

4) ADC interface

& many more

A unique Development board built around ATmega32 Is required.

Module a)

1) Sensor selection according to resolution and range->LM35

2) Signal condition circuit-

3) LCD interface

Module b)

To make it user friendly, Menu driven->tactile switches & LCD

Device protection circuitry

Module c)

14

Page 15: Modbus Based Control System

Hooter and led indicator.

Logical approach:

Module b) module will show 2 modes on display

1) Program mode

User can select parameter to be sensed & its convergent

factor

2) Run mode

Run mode is common for all modules or server

It just means server waiting for command from client & eager to respond.

2) RS-485 implementation

1) For level conversion needed for slaves ->

RS485 –TTl Transceivers (for slaves)

2) For level conversion needed for master ->

RS232-RS485 ->

A) RS232 to TTL and TTl to RS485 transceiver

B) RS232 to RS485 transceiver

3) Termination resistance selection->

3) SCADA system

1) Modbus Master- slave driver implementation

Programming language-visual basic

2) Graphics User Interface

15

Page 16: Modbus Based Control System

8. HARDWARE DESIGN

16

Page 17: Modbus Based Control System

1) POWER SUPPLY DESIGN

0 . 3 3 u F

U 2L M 7 8 0 5 C / TO

1 3

2

I N O U T

GN

D

6 0 0 u Fregulated

- +

1 N 4 0 0 72

1

3

4

Vout=5V

Vin=24VDC

0 . 1 u F

Fig 8.1

As shown in above diagram;

Bridge rectifier:

I/P=24V.

It is commonly used circuit for large amount of DC power. At one time two diodes conduct simultaneously. We are using 1N4007 diodes.

Voltage drop=0.7*2=1.4V

So O/P of bridge rectifier is

24-1.4=22.6V.

Filters:

A circuit that removes ripples from a rectifier output without affecting DC voltage is known as filter.

We are going to use capacitor filter. We will assume ripple factor as 5%.

We know;

Ripple factor= r=Vr(rms)/Vdc.

=Idc/4*31/2*f*C*Vdc

17

Page 18: Modbus Based Control System

=1/4*31/2*f*C*RL

Substituting values;

0.05 =1/ 4*31/2*f*C*RL

Now we have for our modules;

Idc=150mA

RL=5/150mA=33.33ohm

So we have

0.05= 1/ 4*31/2*f*C*33.33 C = 1732uF.

C=2200uF (standard).

IC7805:

From datasheet we have;

1. Wide input range: 7-35V

2. Max current capacity:1A

3.Output voltage : 5V regulated..

Then i/p of IC 7805 ;

Vdc=22.6v (I/P range for ic 7-35V)

Capacitors Cin and Co are used at input and output side of IC….

Need of capacitor:

1. Capacitor Cin filters out effects of stray inductance of input wire.

2. Output capacitor is generally not used but it improves the transient of Regulator.

Power dissipation consideration:

18

Page 19: Modbus Based Control System

We know from datasheet IC has max. PD=2W.

We know

Power dissipation =(Vin-Vout)*Io.

We have

Io=150mA and Vin to 7805=22.6V

For max.2W PD we need

Vin-Vout=2W/0.5

=4V

But we have Vin-Vout =17.6V

So in our case PD will be

PD=17.6*150mA

PD =2.64W

Since we have more PD we NEED heat sink…

We are going to use general 25x50 mm Heat Sink which dissipates

power up to 3 watts.

19

Page 20: Modbus Based Control System

2) Controller selection (ATMega32)

• 8-bit Microcontroller

• Advanced RISC Architecture

• Large amount of In-System Self-programmable Flash program memory

• At least 1K Bytes EEPROM

• Inbuilt 8-channel

• 10-bit ADC Programmable Serial USART

• Baud Rate achievable 115Kbps @ Fosc=3.6864MHz With 0% error

• Sophisticated IDE, Software tools like compiler, library

• Free downloading circuit and software

• Availability of prototype board

20

Page 21: Modbus Based Control System

mV between A and B data line.

Fig 8.2

As we know that using modbus we can connect up to 32 devises. so RS485 can have at max

32 nodes. In our case we are going to use 3 slaves and 1 master. So we have 4 RS485 Nodes.

21

Page 22: Modbus Based Control System

Each RS 485 node has load impedance of 12K. so for such 4 nodes in parallel give load of 3k.

Minimum requirement of voltage between terminals A and B=200mV.

So to maintain this voltage the bias current required to flow through load is given by

Bias current=200mV/(120||3K||120)

Bias current =3.4mA

Now to calculate bias resistance value we have;

3.4mA=5V/(2R+(120||3K||120))

2R+59=5V/3.4mA

2R+59=1470

2R=1411

R=705 ohm.

Value used=700 ohm

4) Transistor driver circuit for buzzer

5 V

B C 5 4 7

1

2

3

L S 1

B U Z Z E R

1

2

5VR 2

4 7 K o h m

4 0 0 o h m

Fig 8.322

Page 23: Modbus Based Control System

For 5V supply, Since buzzer draws about 1.5 mA we will consider Ic as 10mA..

So

Ic =10mA.

From datasheet; Vce=1V.

1. Applying KVL to C-E;

Vcc=Ic*R1+Vce

5=10mA*R1+1

R1=400 ohm.

For Ib we know;

Ib=Ic/Hfe(min).

From datasheet of BC547 we have;

Hfe(min)=110.

So,

Ib=10mA/110

Ib =90.90uA.

2. Applying KVL to B-E, we have

VIN=Ib*R2+Vbe

5=Ib*R2+0.7

4.3=Ib*R2

4.3=90.90uA*R2

R2=4.3/90.90uA

R2=47.3047Kohm.

So we have R1=400ohm and R2=47.3047kohm.

23

Page 24: Modbus Based Control System

5)SIGNAL CONDITIONING

Fig 8.4

For non inverting amplifier ;

Gain: 1+Rf/Ri.

Required gain: Vo/Vin:

=5/1.5

=3.333.

We will use Ri=1K… then we have

3.33=1+Rf/1K

Rf=2.33K..

We will use 10K pot as Rf.

So we have

Ri=1K and

Rf=10K(variable)…

Now for offset nulling technique as shown in figure…

24

Page 25: Modbus Based Control System

We are going to use LM358 so Vcc=5V and from datasheet of that opamp we got value of input offset voltage as 7mV(max)….

V=Vcc=5V

Vios=(Rc/Rb)V

7mV= (Rc/Rb)5

Rb=1400Rc

Choose Rc as 20 ohm.. then we have

Rc=20ohm

Rb=1400*20

=28Kohm

Take Rmax=Rb/10 so

Rmax=2800

As we know Rmax=Ra/4

Ra/4=2800

Ra=11.2Kohm(this is variable one)

We can adjust this variable Ra till the output reaches to zero…..

25

Page 26: Modbus Based Control System

9. SOFTWARE DESIGN

26

Page 27: Modbus Based Control System

Network layer

Fig 9.1

As per our system consider, We support following Functins:

Primary Table Object typeAccess Type Reference

Function Supported

Discrete Input Single bit Read Only 1x 0x2

Coil Single bit Read/Write 0x 0x1        0x5

Input Register 16 bit word Read Only 3x 0x4Holding Register 16 bit word Read/Write 4x 0x3        0x6        0x10

Table 9.1

27

Device Profile

Modbus Application layer

UART

RS-485

Page 28: Modbus Based Control System

Exception Codes

Code Name Meaning

01 ILLEGAL FUNCTION

The function code received in the query is not an allowable action for the slave. If a Poll Program Complete command was issued, this code indicates that no program function preceded it.

02 ILLEGAL DATA ADDRESS

The data address received in the query is not an allowable address for the slave.

03 ILLEGAL DATA VALUE

A value contained in the query data field is not an allowable value for the slave.

04 SLAVE DEVICE FAILURE

An unrecoverable error occurred while the slave was attempting to perform the requested action.

05 ACKNOWLEDGE

The slave has accepted the request and is processing it, but a long duration of time will be required to do so. This response is returned to prevent a timeout error from occurring in the master. The master can next issue a Poll Program Complete message to determine if processing is completed.

28

Page 29: Modbus Based Control System

Table 9.2

Algorithms

Main for Module A :

1. Start

2. Initialize all variable.

3. Initialize all Ports.

4. Initialize ADC.

5. Initialize UART for Baud rate 9600,no Parity,1 Start and 1 Stop bit.

6. Init Timer0;

7. Enable USART_RXC Interrupt.

8. Set Global Interrupt Enable pin high.

9. Loop

10.Check sampling rate and log data into eeprom using internal ADC

11.Go to step 9

Main for Module B:

1. Start

2. Initialize all variable.

3. Initialize all Ports.

4. Initialize ADC.

5. Initialize UART for Baud rate 9600, no Parity, 1 Start and 1 Stop bit.

29

Page 30: Modbus Based Control System

6. Init Timer0;

7. Enable USART_RXC Interrupt.

8. Set Global Interrupt Enable pin high.

9. Loop

10.Check sampling rate and log data into eeprom using internal ADC

11.Go to step 9

Main for Module C

1. Start

2. Initialize all variable.

3. Initialize all Ports.

4. Initialize UART for Baud rate 9600,no Parity,1 Start and 1 Stop bit.

5. Init Timer0;

6. Enable USART_RXC Interrupt.

7. Set Global Interrupt Enable pin high.

8. Loop

9. Go to step 9

ISR-RECIEVED COMPLETE

1. clear interrupt enable

2. disable USTART complete

3. initialize timer for 10usec

4. enable timer interrupt

5. received byte[count] = received byte

30

Page 31: Modbus Based Control System

6. count = count +1

7. set delay count for 3.5msec

8. set interrupt enable

ISR-Transmission COMPLETE

1. Clear interrupt enable

2. If Current= Byte to send then go to step 3

Else transmit que[current++];go ot step 4;

3. Disable transmit complete interrupt

TIMER 0 interrupt enable

4. Set interrupt enable.

ISR-Timer0

1. Clear interrupt enable

2. if delay counter ON go to step 3

3. if delay count2=0 then delay counter OFF

else delay count 2=delay count2 - 1

4. if delay count!=0, then delay count= delay count - 1

Go to step 7

5. if count=0, then no of bytes received = count

else go to step 7

6. if first received byte [0] = slave id

a) Call updateQue()

b) Enable USART transmission complete interrupt

c) Transmit Que[0]

31

Page 32: Modbus Based Control System

d) Current = 1

7. Preset counter.

8. Send interrupts enable flag.

UpdateQue

1. Current = 0

2. Que(0) = slave id

3. If login, then go to step4 else go to step 6

4. Check if exception

5. if exception

a) Que(1) = 80Hex + received byte [1]

b) Que(2) = Exception code

c) byte to send=3

d) return

6. if password wrong

a) send exception 4

b) return

7. Que(1) = received byte [1]

8. serve functions

9. return

32

Page 33: Modbus Based Control System

STATE DIAGRAMs

UpdateQue()

Whenever Responding to any query wile updating Queue of Response frame it may be Exception or Normal Response.

33

Page 34: Modbus Based Control System

Figure 9.2 : Modbus Transaction diagram.

Function 1

Figure 9.3 : Read Coil state diagram

34

ENTRY

MB Server receives mb_req_pdu

Function code supported

0x0001≤quantity of Registers ≤ 0x007D

Starting Address & Quantity of Registers OK

Quantity of Registers == OK

and ReadDiscreteOutputs OK

MB Server Sends mb_rsp

Exit

ExceptionCode=04

ExceptionCode=02

ExceptionCode=01

ExceptionCode=03

Request processing

MB Server Sends mb_exception_rsp

NO

NO

NO

NOYES

YES

YES

YES

Page 35: Modbus Based Control System

Function 2

Figure 9.4 : Read Discrete Inputs state diagram

35

ENTRY

MB Server receives mb_req_pdu

Function code supported

0x0001≤quantity of Registers ≤ 0x007D

Starting Address & Quantity of Registers OK

Quantity of Registers == OK

andRead Discrete Inputs OK

MB Server Sends mb_rsp

Exit

ExceptionCode=04

ExceptionCode=02

ExceptionCode=01

ExceptionCode=03

Request processing

MB Server Sends mb_exception_rsp

NO

NO

NO

NOYES

YES

YES

YES

Page 36: Modbus Based Control System

Function 3

Figure 9.5 : Read Holding Register state diagram

36

ENTRY

MB Server receives mb_req_pdu

Function code supported

0x0001≤quantity of Registers ≤ 0x007D

Starting Address & Quantity of Registers OK

Quantity of Registers == OK

andReadMultipleRegister OK

MB Server Sends mb_rsp

Exit

ExceptionCode=04

ExceptionCode=02

ExceptionCode=01

ExceptionCode=03

Request processing

MB Server Sends mb_exception_rsp

NO

NO

NO

NOYES

YES

YES

YES

Page 37: Modbus Based Control System

Function 4

37

Page 38: Modbus Based Control System

Fig 9.6

Function 5

Figure 9.7 : Write Single Output state diagram

38

YES

ENTRY

MB Server receives mb_req_pdu

Function code supported

0x0001≤quantity of Registers ≤ 0x007D

Starting Address & Quantity of Registers OK

Quantity of Registers == OK

andWriteSingleOutput OK

MB Server Sends mb_rsp

Exit

ExceptionCode=01

ExceptionCode=02

ExceptionCode=01

ExceptionCode=03

Request processing

MB Server Sends mb_exception_rsp

NO

NO

NO

NOYES

YES

YES

YES

Page 39: Modbus Based Control System

Function 6

Figure 9.8 : Write Single Register state diagram

39

ENTRY

MB Server receives mb_req_pdu

Function code supported

0x0001≤quantity of Registers ≤ 0x007D

Starting Address & Quantity of Registers OK

Quantity of Registers == OK

andWriteSingleRegister OK

MB Server Sends mb_rsp

Exit

ExceptionCode=04

ExceptionCode=02

ExceptionCode=01

ExceptionCode=03

Request processing

MB Server Sends mb_exception_rsp

NO

NO

NO

NOYES

YES

YES

YES

Page 40: Modbus Based Control System

Data address allotment

Module A :

s.n. Task Data model Access Start address Ending address

1 Enter passwodHolding Register R/W 400020 400024

2 Login Status Input Coil R/O 100001  3 Logoff Output coil R/W 000010  4 Current data Input Register R/O 300001  

5 Sample rateHolding Register R/W 400100 400102

Hour   400100   Minute   400101   Seconds   400102  

6Retrieve logged data Output coil R/W 000001  

7 No. valid loggs Input Register R/O 300002  8 Access nth log Input Register R/O 301000 304999

9 Choose unitHolding Register R/w 400002  

Table 9.3

Module B :

s.n. Task Data model Access Start address Ending address

1 Enter passwodHolding Register R/W 410020 410024

2 Login Status Input Coil R/O 110001  3 Logoff Output coil R/W 010010  4 Current data Input Register R/O 310001  

5 Sample rateHolding Register R/W 410100 410102

Hour   410100   Minute   410101   Seconds   410102  

6Retrieve logged data Output coil R/W 010001  

7 No. valid loggs Input Register R/O 310002  8 Access nth log Input Register R/O 311000 3149999 Read unit Input Register R/O 313002  

40

Page 41: Modbus Based Control System

10 Scaling Factor Input Register R/O 312000  Table 9.4

Module C:

s.n. Task Data model Access Start address

Ending address

1 Enter passwodHolding Register R/W 420020 40024

2 Login Status Input Coil R/O 120001  3 Logoff Output coil R/W 20001  4 Buzzer Output coil R/W 20020  5 LEDs Output coil R/W 20100 20102

Table 9.5

Calculations:

Timer 0 interrupt for 100uS:

TCCR0 = 0x02;

Resultant clock source after multiplier = Fcrystal/8.

Fclk = 3.6864MHz/8=460.8KHz.

TCNT0 = 210;

Resultant time=(256-TCNT0)/Fclk

=46/460.8K

=100uSec.

UART:

UBRR Settings for 3.6864MHz crystal.

Ref:Page166 Table 69 AtMega32 datasheet ,for 0% error up to 230.4K baud rate.

Delay count for Time Out:

41

Page 42: Modbus Based Control System

MODBUS Message RTU FramingA MODBUS message is placed by the transmitting device into a frame that has a known beginning and ending point. This allows devices that receive a new frame to begin at the start of the message, and to know when the message is completed. Partialmessages must be detected and errors must be set as a result. In RTU mode, message frames are separated by a silent interval of at least 3.5 character times. In the following sections, this time interval is called t3,5.

Fig 9.9

Specifically, about 9600 baud rate.

In 9600 Baud rate each bit takes 1/9600 seconds to transmit.

For whole frame (Normal)= 1 start+1 stop+8 data bits=10bits=>

So require 10*1/9600 seconds. Which is time taken for transmitting 1 char

so for 3.5 char time taken will be=10*3.5/9600=3.5mSec.

For 3.5 msec with help of 100usec Interrupt popping out .

So ,we require 3.5m/100u=35 as Delay count.

42

Page 43: Modbus Based Control System

SCADA Design:

SCADA usually starts with login process and after that continuously monitor for expected information. While designing there are many free SCADA’s available to use with MODBUS like-> Modscan32, SimplyModbus6.3.6 (Master) & very useful Docklight.

First of all we tried with Docklight

Wrong Id, wrong password, password ….

At the last, Logoff.

43

Page 44: Modbus Based Control System

Expected GUI ( Font end) under VB2008

Algorithm followed->

1. Select device from user. Generate slave ID accordingly.

2. Check login status, if login then continuously monitor for current reading.

3. Else ask for password. Unless right one is not entered.

In Back End, it will monitor for trigger point and take accordingly action.

44

Page 45: Modbus Based Control System

10. APPLICATIONS

process control

Factory floor automation

Manufacturing process

Industrial process automation

Industrial process automation: Press Forging

Press forging

Forging is one of the oldest known metalworking processes

In modern times, industrial forging is done either with presses or with hammers powered by compressed air, electricity, hydraulics or steam. These hammers are large, having reciprocating weights in the thousands of pounds.

Press forging is an operation characterized by the process of deformation which consists of a lot of heating and cooling. During the process, the material is slowly condensed into a shape by increasing pressure. There are two dies; one stationary and one pushed towards the other, which compresses the part. Press forging is variation of drop-hammer forging. Unlike drop-hammer forging, press forges work slowly by applying continuous pressure or force. The main advantage of press forging, as compared to drop-hammer forging, is its ability to deform the complete work piece

MODBUS

Over RS485 Vin (condition: 0v<Vin<5v)

Conversion GND

Factor

45

Generic

Device

Process status

Temperature

Module

Pc based

SCADA

2 4

3 8

2 5 Pressure sensor &

Conditioning circuit

Page 46: Modbus Based Control System

Fig 10.1

Press Forging Beryllium Copper Billet: http://www.freedomalloysusa.com/index.html

It should be noted that production input billet casting is the beginning point of the

manufacturing process which eventually yields the various wrought forms of beryllium

copper.

Beryllium copper application:

Beryllium copper strip alloys have historically been specified in electronic connector applications in an impressive array of telecommunications, computer, and automotive electronics applications. Beryllium copper rod is utilized to produce certain machined connector designs and beryllium copper casting alloys are specified for intricate miniature investment cast connectors. Undersea fiber optic cable repeater housings and their associated components have been specified in beryllium copper for many years. These beryllium copper housing assemblies (wrought and cast components) must perform flawlessly, for an extended service life measured in decades, in the harsh deep water marine environment of the world’s oceans. Obviously, beryllium copper’s special

46

C82500 BeCu Cast Electronic

Component

Page 47: Modbus Based Control System

combination of corrosion resistance, high strength, and durability characteristics match the severe operational requirements.

11.TESTING:

Communication

*For all serial communication purpose DOCKLIGHT Ver.1.6 s/w used.

RS232 Driver Implementation:

Circuit tested on bread board and following PCB is also tested.

Serial Communication with pc1)First part, RXD & TXD pin shorted, echo of transmitted pattern obtained on PC

2)Second part,100 bytes Sent from Microcontroller and successfully received on PC

47

Page 48: Modbus Based Control System

RS485 Driver Implementation:

Circuit Design & PCB:Circuit tested on bread board and following PCB is also tested.

Serial Communication with pc as half duplex Using 2nd PCB in Fig Transmission lines are shorted so as to get back echo on PC.

Serial Communication with pc as full duplexBoth PCB’s from Fig are used, one for Master side and another for slave side, so that 100 bytes sent from controller received on PC

Driver circuitry for Buzzer

Circuit designed resistances values were found out. Implemented on breadboard and tested .verified on multisim .Where buzzer Load impedance found out equal to 5kohm.

48

Page 49: Modbus Based Control System

Q1

BC547BP

VCC5V

R2390

R3

47k

XMM1

R1

4.3kXMM2

Temperature sensing: LM35

Using internal ADC of controller temperature is observed on PC. For that LM35 and its signal conditioning circuit is used.

While implementing Timer on timer0 using 2 LED’s connected to 2 pin and implementing toggling algorithem timer of 100usec was verified.

49

Page 50: Modbus Based Control System

SCADA testing:

SCADA tested using Modscan32.exe a freeware SCADA.

50

Page 51: Modbus Based Control System

12. FUTURE SCOPE

We have used 4 wire interface for implementing RS485 . Instead of that we can make use of 2 wire interface. But for that we have to define directional logic which is necessary for that system interface.

There are two types of modes of MODBUS one is RTU and other is ASKII. we have implemented RTU mode. We can implement ASKII mode also.

We have implemented only 6 functions, can be upgraded to fully functional DCS.

For fully fledged system we have to consider effect of “Grounding and Isolation”

51

Page 52: Modbus Based Control System

13. BIBLOGRAPHY

BOOKS

[Boye] Electronic Devices and Circuit Theory.

8th Edition.Robert Boylestad.

Prentice Hall India

[Mazi] The 8051 Microcontroller and Embedded Systems

2nd Edition, Muhammad Mazidi

Pearson Education

[JanS] Serial Port Complete Penram International Pvt. Ltd. 2nd Edition, Jan Axleson

[Dhan] Programming and customizing the AVR microcontroller-Dhananjay V.

Gadre

APPLICATION NOTES

*Modicon.com

[AN001] MODBUS APPLICATION PROTOCOL SPECIFICATION V1.1b[AN002] MODBUS over Serial LineSpecification and Implementation Guide

V1.02[AN003] Modicon Modbus Protocol Reference Guide PI–MBUS–300 Rev. J

*Texas Instruments [SLLA272B] The RS-485 Design Guide February 2008–Revised May 2008

*Maxim-IC

[AN1063] Microcontroller Recognizes Addresses in RS-485 Systems

[AN736] RS-485 (EIA/TIA-485) Differential Data Transmission System Basics

*Analog Devices

[AN960] RS-485/RS-422 Circuit Implementation Guide by Hein Marais

52

Page 53: Modbus Based Control System

14. APPENDIX

MODBUS @

The following figure gives a general representation of MODBUS serial communication stack compared to the 7 layers of the OSI model with respect to our system..

Fig 14.1

Application layer

Data EncodingMODBUS uses a ‘big-Endean’ representation for addresses and data items. This means that when a numerical quantity larger than a single byte is transmitted, the most Significant byte is sent first.

MODBUS data model

MODBUS bases its data model on a series of tables that have

distinguishing characteristics.

53

Page 54: Modbus Based Control System

The four primary tables are:

Primary table Object

type

Type of

access

Comments

coils Single bit Read-

Write

This type of data can be alterable by

an application program

Input registers 16-bit word Read-Only This type of data can be provided by

an I/O system

Holding

registers

16-bit word Read-

Write

This type of data can be alterable by

an application program

Discrete Input Single bit Read-Only This type of data can be provided by

an I/O system

Table 14.1

Data link layer:

1) MODBUS frame description

The MODBUS protocol defined a simple protocol data unit (PDU) independent of the underlying communication layers. The mapping of

MODBUS protocol on specific buses or network can introduce some additional fields on the application data unit (ADU).

General MODBUS frame:

ADU

54ADDITIONAL

ADDRESSES

DATAFUNCTION

CODE

ERROR CHECK

Page 55: Modbus Based Control System

PDU

Fig 14.2

The function code 1 byte. (128 – 255 reserved for exception responses).

Max size:

RS485 ADU = 256 bytes.PDU for serial line communication = 253 bytes

Server address (1 byte) , CRC (2 bytes)

2) MODBUS addressing rules:

Fig 14.3

3) The two serial Transmission Modes

Two different serial transmission modes are defined: The RTU mode and the ASCII mode.

It defines the bit contents of message fields transmitted serially on the line. It determines how information is packed into the message fields and decoded.

The transmission mode (and serial port parameters) must be the same for all

devices on a MODBUS Serial Line.

55

Page 56: Modbus Based Control System

General 4 wire topology.

Fig 14.4

CRC CALCULATIONS

Fig 14.5

56

Page 57: Modbus Based Control System

Table 15.1: COMPONENT LIST AND BILL

SR NO

COMPONENT SPECIFICATIONS QTY COST (Rs)

1 IC 7805 5V regulator 3 18

2 IC ATMEGA32 40-pin DIP 3 435

ICMAX232 16-pin-DIP 1 25

ICMAX485 8-pin DIP 8 320

ICLM35 TEMPERATURE SENSOR

1 40

ICLM324 Quad OpAmp 2 20

3 IC base 16 pin dip 3 6

40 pin dip 3 12

8 pin dip 8 8

4 Relamet connector 6 pin 1 9

2 pin 6 12

5 Transistor BC547 1 1

6 Toggle switch SPDT 3 24

7 Zener diode 5.1 V 2 2

8 Diode 1N4007 16 16

9 Resistors 1K ohm 0.25watt 12 3

10 kohm 0.25watt 2 0.5

15 Kohm 0.25watt 1 0.25

4.7 kohm 0.25 watts 2 0.5

120ohm0.25watts 4 1

57

Page 58: Modbus Based Control System

47Kohm0.25watts 1 0.25

680ohm0.25watts 4 1

20ohm0.25watts 4 1

402ohm0.25watts 1 0.25

10. Variable Pot 10k,1k precesion 2 8

11. Capacitors 1000uF,25V,electrolytic 1 6

100 uF,25V,electrolytic 1 2

10uF 25V, electrolytic 4 4

0.01 uF,22pF ceramic 10 10

2200uF, electrolytic 2

12. Bur strips 40 pin 3 18

13. 2 pin push button 1 2

14 LEDs 3mm 10 10

15 PCB

16 Serial cable Plug socket DB9

1 75

17. DB 9 socket Female 2 20

18. Crystal 3.6864Mhz 1 15

19. casing

20. BUZZER 3V-24V 1 21

TOTAL

58

Page 59: Modbus Based Control System

15. CIRCUIT DIAGRAM

MODULE C

59

Page 60: Modbus Based Control System

1 . 8 K

A R x _ in

L S 1

B U Z Z E R

1

2

5 V

5 V

A R x _ in

A Tx _ in

1 . 8 K

1 . 8 K

b u zze r

C 30 . 1 u F

C 30 . 1 u F

B C 5 4 7

1

2

3

B R x _ in

5 V

A Tx _ in

Tx D _ in

L E D

C 2

2 2 p F

R 2

4 7 K o h m

L E D

B Tx _ in

L E D

B Tx _ in

C 30 . 1 u F

C 1

2 2 p F

L E D

R x D _ in

5 V

B R x _ in

4 0 0 o h m

1 . 8 K

5 v

J P 1

4 H E A D E R

1234

R x D _ in

b u zze r

0-5V

L E D

L E D

U 4

M A X4 8 5

123

467

8

R OR ED E

D IAB

+V C C

U 3

M A X4 8 5

123

467

8

R OR ED E

D IAB

+V C C

C 30 . 1 u F

1 . 8 KU 1

D I P 4 0

3 5

2 1

1 0

4 03 93 83 73 6

2 2

1234

5678

9

2 42 52 62 72 82 9

3 03 1

1 1

1 3

1 41 5

1 61 7

1 81 92 0

3 2

3 3

1 2

3 4

2 3

P A 5 / A D C 5

P D 7 / O C 2

V C C

P A 0 / A D C 0P A 1 / A D C 1P A 2 / A D C 2P A 3 / A D C 3P A 4 / A D C 4

P C 0 / S C L

P B 0 / XC K 0 / T0P B 1 / T1P B 2 / I N T2 / A I N 0P B 3 / O C 0 / A I N 1

P B 4 / S SP B 5 / M O S IP B 6 / M I S OP B 7 / S C K

R E S E T

P C 2 / TC KP C 3 / TM SP C 4 TD OP C 5 / TC I

P C 6 / TO S C 1P C 7 / TO S C 2

A V C CG N D

G N D

XTA L 1

P D 0 / R x DP D 1 / Tx D

P D 2 / I N T0P D 3 / I N T1

P D 4 / O C 1 BP D 5 / O C 1 AP D 6 / I C P 1

A re f

P A 7 / A D C 7

XTA L 2

P A 6 / A D C 6

P C 1 / S D A

Y 1C R Y S TA L

Tx D _ in

1 . 8 K

Fig 15.1

60

Page 61: Modbus Based Control System

MODULE B

C 30 . 1 u F

R c

A R x _ in

C 30 . 1 u F

J P 1

1234B R x _ in

5 V

C 1 2 2 p F

C 3

0 . 1 u F

B R x _ in

R _ in

U 6 M A X4 8 5

123

467

8

R OR ED E

D IAB

+V C C

5 V

Tx D _ in

B Tx _ in

5 V

C 1

A R x _ in

R a

13

2

5 V5 V

5 V

12

5 V

U 6 M A X4 8 5

123

467

8

R OR ED E

D IAB

+V C C

Tx D _ in

R 1

R x D _ in

R x D _ in

C 3

0 . 1 u F

A Tx _ in

+

-

U 3 A

L M 3 5 8

3

21

84

U 1

D I P 4 0

3 5

2 1

1 0

4 03 93 83 73 6

2 2

1234

5678

9

2 42 52 62 72 82 9

3 03 1

1 1

1 3

1 41 5

1 61 7

1 81 92 0

3 2

3 3

1 2

3 4

2 3

P A 5 / A D C 5

P D 7 / O C 2

V C C

P A 0 / A D C 0P A 1 / A D C 1P A 2 / A D C 2P A 3 / A D C 3P A 4 / A D C 4

P C 0 / S C L

P B 0 / XC K 0 / T0P B 1 / T1P B 2 / I N T2 / A I N 0P B 3 / O C 0 / A I N 1

P B 4 / S SP B 5 / M O S IP B 6 / M I S OP B 7 / S C K

R E S E T

P C 2 / TC KP C 3 / TM SP C 4 TD OP C 5 / TC I

P C 6 / TO S C 1P C 7 / TO S C 2

A V C CG N D

G N D

XTA L 1

P D 0 / R x DP D 1 / Tx D

P D 2 / I N T0P D 3 / I N T1

P D 4 / O C 1 BP D 5 / O C 1 AP D 6 / I C P 1

A re f

P A 7 / A D C 7

XTA L 2

P A 6 / A D C 6

P C 1 / S D A

R 1

5 K o h m

13

2

C 3

0 . 1 u F

1 K o h m

C 2 2 2 p F

5 V

R bR _ in

B Tx _ in

A Tx _ in

Y 1C R Y S TA L

C 3

0 . 0 1 u F

Fig 15.2

61

Page 62: Modbus Based Control System

MODULE A

5 V

Tx D _ in

5 V

C 3

0 . 1 u F

C 3

0 . 1 u F

0 . 1 u F

5 V

C 3

0 . 0 1 u F A R x _ in

U 4

L M 3 5 / TO

12V S +V O U T

R 1

J P 1

1234

C 2 2 2 p F

A R x _ in

Y 1C R Y S TA L

C 30 . 1 u F

A Tx _ in

Tx D _ in

R _ in

R x D _ in

U 1

D I P 4 0

3 5

2 1

1 0

4 03 93 83 73 6

2 2

1234

5678

9

2 42 52 62 72 82 9

3 03 1

1 1

1 3

1 41 5

1 61 7

1 81 92 0

3 2

3 3

1 2

3 4

2 3

P A 5 / A D C 5

P D 7 / O C 2

V C C

P A 0 / A D C 0P A 1 / A D C 1P A 2 / A D C 2P A 3 / A D C 3P A 4 / A D C 4

P C 0 / S C L

P B 0 / XC K 0 / T0P B 1 / T1P B 2 / I N T2 / A I N 0P B 3 / O C 0 / A I N 1

P B 4 / S SP B 5 / M O S IP B 6 / M I S OP B 7 / S C K

R E S E T

P C 2 / TC KP C 3 / TM SP C 4 TD OP C 5 / TC I

P C 6 / TO S C 1P C 7 / TO S C 2

A V C CG N D

G N D

XTA L 1

P D 0 / R x DP D 1 / Tx D

P D 2 / I N T0P D 3 / I N T1

P D 4 / O C 1 BP D 5 / O C 1 AP D 6 / I C P 1

A re f

P A 7 / A D C 7

XTA L 2

P A 6 / A D C 6

P C 1 / S D A

C 1 2 2 p F

R b

5 V

C 30 . 1 u F

U 6 M A X4 8 5

123

467

8

R OR ED E

D IAB

+V C C

B R x _ in

5 V

B Tx _ in

5 V

5 V

R c

B Tx _ inR _ in

R a

13

2

5 V

12

U 6 M A X4 8 5

123

467

8

R OR ED E

D IAB

+V C C

R x D _ in

+

-

U 3 A

L M 3 5 8

3

21

84

B R x _ in

R 3

1 K o h m

C 3

0 . 1 u F

A Tx _ in

C 1

Fig 15.3

62

Page 63: Modbus Based Control System

Master: Module D

B Tx _ in

1 0 m ic ro F

R x D _ o u t

1

6

2

7

3

8

4

9

5

16

27

38

49

5

A R x _ in

V C C

J P 2

4 H E A D E R

1234

R x D _ o u t

V C C

R x D

A R x _ in

U 2

M A X2 3 2

1 38

1 11 0

134526

1 291 47

R 1 I NR 2 I NT1 I NT2 I N

C +C 1 -C 2 +C 2 -V +V -

R 1 O U TR 2 O U TT1 O U TT2 O U T

5 V

RS485 to RS232 conversion on master side(PC)

7 0 5

7 0 5

Tx D

A Tx _ in

1 2 0

R 2

5 V

Tx D _ o u t

B Tx _ in

U 7

M A X4 8 5 / S O

123

467

8

R OR ED E

D IAB

+V C C

B R x _ in

5 V

1 0 m ic ro F

7 0 5

Tx D _ o u t

U 8

M A X4 8 5 / S O

123

467

8

R OR ED E

D IAB

+V C C

A Tx _ in

1 0 m ic ro F

1 2 0

1 0 m ic ro F

B R x _ in

R x D

Tx D

Fig 15.4

63

Page 64: Modbus Based Control System

Layout of basic Prototype board

64

Page 65: Modbus Based Control System

65

Page 66: Modbus Based Control System

16. DATA SHEETS

66