F3–16AD 16-Channel Analog Input

F3–16AD 16-Channel Analog Input

F3–16AD

16-Channel

Analog Input

In This Chapter. . . .

Ċ Module Specifications

Ċ Setting the Module Jumpers

Ċ Connecting the Field Wiring

Ċ Module Operation

Ċ Writing the Control Program

1

5

5–2

F3–16AD 16-Channel Analog Input

Module Specifications

Analog Input

Configuration

Requirements

The following table provides the specifications for the F3–16AD Analog Input

Module from FACTS Engineering. Review these specifications to make sure the module meets your application requirements.

Number of Channels

Input Ranges

Resolution

Input Impedance

Absolute Maximum Ratings

Conversion Time

Converter Type

Linearity Error

Maximum Inaccuracy at 77

°

F

(25

°

C)

Accuracy vs. Temperature

16, single ended (one common)

"

5V,

"

10V, 0–5V

1

, 0–10V,

0–20 mA, 4 – 20 mA

2

12 bit (1 in 4096)

2M W , voltage input

500 W

"

1%, current input

"

25V, voltage input

"

30 mA, current input

35 m s per channel

1 channel per CPU scan

Successive Approximation, AD574

"

1 count maximum

0.25% of full scale, voltage input

1.25% of full scale, current input

57 ppm /

_

C maximum full scale

0.032 A, Series 217 fast-acting, current inputs

33 mA @ 9 VDC, 47 mA @ 24 VDC

Recommended Fuse

Power Budget Requirement

External Power Supply

Operating Temperature

Storage Temperature

None required

32

°

to 140

°

F (0

°

to 60

_

C)

–4

°

to 158

°

F (–20

°

to 70

_

C)

5 to 95% (non-condensing) Relative Humidity

Environmental air

Vibration

Shock

Noise Immunity

No corrosive gases permitted

MIL STD 810C 514.2

MIL STD 810C 516.2

NEMA ICS3–304

1 – requires gain adjustment with potentiometer.

2 – resolution is 3275 counts (instead of 4096). Allows easier broken transmitter detection

The F3–16AD Analog Input appears as a 16-point module. The module can be installed in any slot configured for 16 points. See the DL305 User Manual for details on using 16 point modules in DL305 systems. The limitation on the number of analog modules are:

S

For local and expansion systems, the available power budget and

16-point module usage are the limiting factors.

5–3

F3–16AD 16-Channel Analog Input

Setting the Module Jumpers

Jumper Locations

The module is set at the factory for a 0–20 mA signal on all sixteen channels. If this is acceptable you do not have to change any of the jumpers. The following diagram shows the jumper locations.

Polarity

ADJ

Bipolar

Unipolar

10V

20V

X100

X1000

Gain

X1

X10

Current

Channels

2

1

8

4

Selecting the

Number of

Channels

1

1 2

1 2 3

1 2 3 4

1 2 3 4 5

1 2 3 4 5 6

1 2 3 4 5 6 7

1 2 3 4 5 6 7 8

If you examine the rear of the module, you’ll notice several jumpers. The jumpers labeled +1, +2, +4 and +8 are used to select the number of channels that will be used. Without any jumpers the module processes one channel. By installing the jumpers you can add channels. The module is set from the factory for sixteen channel operation.

Any unused channels are not processed so if you only select channels 1–8, then the last eight channels will not be active.

The following table shows which jumpers to install.

Jumper

+8 +4

No

No

No

No

No

No

No

No

+2 +1

No

No

No

No

No

Yes

No

No

Yes

Yes

Yes No

No

Yes

No

Yes No Yes

Yes Yes No

Yes Yes Yes

+8 +4 +2 +1

Number of

Channels

Jumpers installed as shown selects 16-channel operation

Jumper

+8 +4 +2 +1

1 2 3 4 5 6 7 8 9

1 2 3 4 5 6 7 8 9 10

1 2 3 4 5 6 7 8 9 10 11

1 2 3 4 5 6 7 8 9 10 11 12

1 2 3 4 5 6 7 8 9 10 11 12 13

Yes

Yes

No

No

Yes No

Yes No

No

No

Yes

Yes

Yes Yes No

No

Yes

No

Yes

No

1 2 3 4 5 6 7 8 9 10 11 12 13 14 Yes Yes No Yes

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Yes Yes Yes No

1 2 3 4 5 6 7 8 9 10 11 12 13141516 Yes Yes Yes Yes

5–4

F3–16AD 16-Channel Analog Input

Selecting Input

Signal Ranges

As you examined the jumper settings, you may have noticed there are current jumpers for each individual channel. These jumpers allow you to select the type of signal (voltage or current).

The span and polarity jumpers are used to select the signal range. The polarity and span selection affect all the channels. For example, if you select unipolar operation and a 10V span, you can use both 0 –10V and 0–20 mA signals at the same time.

Channels that will receive 0–20 mA signals should have the current jumper installed.

The following table shows the jumper selections for the various ranges. (Only channel 1 is used in the example, but all channels must be set.)

Bipolar Signal Range

–5 VDC to +5 VDC

Bi

Polarity

Uni

–10 VDC to +10 VDC

Bi

Polarity

Uni

Jumper Settings

20V

Span

10V

Current Jumper

Gain Jumper

20V

Span

10V x1

Current Jumper x10 x1

Gain Jumper x10

Unipolar Signal Range

0 to 20 mA

(these settings are also used for the 4–20mA range)

Bi

Polarity

Uni

Jumper Settings

20V

Span

10V

Current Jumper x1

Gain Jumper x10

0 VDC to +10 VDC

Bi

Polarity

Uni

0 VDC to +1 VDC

0 VDC to +0.1 VDC

0 VDC to +0.01 VDC

Bi

Polarity

Uni

Bi

Polarity

Uni

Bi

Polarity

Uni

20V

Span

10V

Current Jumper

20V

Span

10V x1

Gain Jumper x10

Current Jumper

Gain Jumper x1 x10

20V

Span

20V

Span

Current Jumper

10V

Gain Jumper x100

Current Jumper x1000

10V

Gain Jumper x100 x1000

F3–16AD 16-Channel Analog Input

5–5

Variable Gain

Adjustment

Input Signal Range

0 VDC to +5 VDC

(requires gain adjustment see instructions below)

0 VDC to +12 VDC

(requires gain adjustment see instructions below)

Bi

Polarity

Uni

Bi

Polarity

Uni

Jumper Settings

20V

Span

Current Jumper

10V x1

Gain Jumper x10

20V

Span Current Jumper

10V x1

Gain Jumper x10

If you look at the terminal block closely, you’ll notice a small hole conceals an adjustment potentiometer. This small potentiometer is used to adjust the gain for certain situations.

For example, if you have 0–5V transmitters you have to use the 0–10V scale on the module. Since the module converts the signal to a digital value between 0 and 4095, a 5V signal would only yield a value of 2048. Fortunately, the variable gain feature provides a simple solution. Just complete the following steps.

Potentiometer

Adjustment

Hole

1. Install a jumper on the gain adjustment pins. (This jumper location is labeled ADJ. This jumper will remain installed after the gain adjustment .)

2. Apply 5V to one of the channels.

3. Use a handheld programmer or DirectSOFT to monitor the input register that contains the analog data. (If you’re not familiar with this procedure, wait until you read the section on Writing the Control Program. This will show you how to get data into a register. You can come back to this procedure later.)

4. Adjust the potentiometer until the register value reads 4094 or 4095. The potentiometer is turned clockwise to increase the gain.

Now the module has been adjusted so a 5V signal provides a digital value of 4095 instead of 2048.

5–6

F3–16AD 16-Channel Analog Input

Connecting the Field Wiring

Wiring Guidelines

Your company may have guidelines for wiring and cable installation. If so, you should check those before you begin the installation. Here are some general things to consider.

S

Use the shortest wiring route whenever possible.

S

Use shielded wiring and ground the shield at the signal source. Do not ground the shield at both the module and the source.

S

Don’t run the signal wiring next to large motors, high current switches, or transformers. This may cause noise problems.

S

Route the wiring through an approved cable housing to minimize the risk of accidental damage. Check local and national codes to choose the correct method for your application.

User Power Supply

Requirements

The F3–16AD receives all power from the base. A separate power supply is not required.

Custom Input

Ranges

5–7

F3–16AD 16-Channel Analog Input

Occasionally you may have the need to connect a transmitter with an unusual signal range. By changing the wiring slightly and adding an external resistor to convert the current to voltage, you can easily adapt this module to meet the specifications for a transmitter that does not adhere to one of the standard input ranges. The following diagram shows how this works.

Internal

Circuitry

+

-

Current

Transmitter

+CH1

R

COM

Jumper

Removed

250W

R =

V max

I max

R = value of external resistor

I

V max max

= high limit of selected voltage range

= maximum current supplied by the transmitter

Example: current transmitter capable of 50mA, 0 - 10V range selected.

10V

R =

R = 200 ohms

50mA

NOTE: Your choice of resistor can affect the accuracy of the module. A resistor that has

"

0.1% tolerance and a

"

50ppm /

_

C temperature coefficient is recommended.

5–8

F3–16AD 16-Channel Analog Input

Current Loop

Transmitter

Impedance

Standard 4 to 20 mA transmitters and transducers can operate from a wide variety of power supplies. Not all transmitters are alike and the manufacturers often specify a minimum loop or load resistance that must be used with the transmitter at the various voltages.

The F3–16AD provides 500 ohm resistance for each channel. If your transmitter requires a load resistance below 500 ohms, then you do not have to make any adjustments. However, if your transmitter requires a load resistance higher than 500 ohms, then you need to add a resistor in series with the module.

Consider the following example for a transmitter being operated from a 36 VDC supply with a recommended load resistance of 750 ohms. Since the module has a

500 ohm resistor, you need to add an additional resistor.

R

+

Tr

*

Mr

R

+

750

*

500

R w

250

DC Supply

0V

+36V

R – Resistor to add

Tr – Transmitter Requirement

Mr – Module resistance (internal 500 ohms)

R

Module Channel 1

+

500W

+ –

Two-wire Transmitter

5–9

F3–16AD 16-Channel Analog Input

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

Removable

Connector

The F3–16AD module has a removable connector to make wiring easier. Simply squeeze the top and bottom tabs and gently pull the connector from the module.

Wiring Diagram

Note 1: Terminate all shields at their respective signal source.

Note 2: Jumpers for CH4, 7, 12 and 16 are installed for current input.

See note

CH1

Volatage

Transmitter

CH2

Volatage

Transmitter

CH3

Volatage

Transmitter

CH4

Current

Transmitter

CH5

Volatage

Transmitter

CH6

Volatage

Transmitter

CH7

Current

Transmitter

CH8

Volatage

Transmitter

CH9

Volatage

Transmitter

CH10

Volatage

Transmitter

CH11

Volatage

Transmitter

CH12

Current

Transmitter

CH13

Volatage

Transmitter

CH14

Volatage

Transmitter

CH15

Volatage

Transmitter

CH16

Current

Transmitter

1

COM

2

3

4

5

6

7

8

9

10

11

12

13

14

15

COM

16

Internal Module Wiring

Analog

Switch

ANALOG INPUT

F3–16AD

C

O

M

CH

6

CH

8

CH

2

CH

4

CH

14

CH

16

CH

10

CH

12

CH

11

CH

13

CH

15

C

O

M

CH

1

CH

3

CH

5

CH

7

CH

9

All resistors are 500

W

5–10

F3–16AD 16-Channel Analog Input

Module Operation

Channel Scanning

Sequence

Before you begin writing the control program, it is important to take a few minutes to understand how the module processes and represents the analog signals.

The F3–16AD module supplies 1 channel of data per each CPU scan. Since there are sixteen channels, it can take up to sixteen scans to get data for all channels.

Once all channels have been scanned the process starts over with channel 1.

You do not have to select all of the channels. Unused channels are not processed, so if you select only eight channels, then the channels will be updated within eight scans.

Channel 1

Channel 2

.

.

.

Channel 16

Channel 1

Scan N

Scan N+1

.

.

.

Scan N+15

Scan N+16

Scan

I/O Update

Execute Application Program

Read the data

Store data

Even though the channel updates to the CPU are synchronous with the CPU scan, the module asynchronously monitors the analog transmitter signal and converts the signal to a 12-bit binary representation. This enables the module to continuously provide accurate measurements without slowing down the discrete control logic in the RLL program.

F3–16AD 16-Channel Analog Input

5–11

Understanding the

I/O Assignments

You may recall the F3–16AD module appears to the CPU as a 16-point module.

These 16 points provide:

S an indication of which channel is active.

S the digital representation of the analog signal.

Since all I/O points are automatically mapped into Register (R) memory, it is very easy to determine the location of the data word that will be assigned to the module.

F3–16AD

8pt

Relay

050

057

8pt

Output

040

047

8pt

Output

030

037

16pt

Input

16ch

(Analog)

16pt

Input

020

027

120

127

010

017

110

117

000

007

100

107

R 002, R012

MSB

1

1

7

R 011

LSB

1

1

0

R 000, R010

MSB

0

1

7

R 001

LSB

0

1

0

Within these two register locations, the individual bits represent specific information about the analog signal.

5–12

F3–16AD 16-Channel Analog Input

Active Channel

Indicator Inputs

The last four inputs of the upper Register indicate the active channel. The indicators automatically increment with each CPU scan.

Scan

Channel Active

Inputs Channel

N

N+1

N+2

N+3

N+4

N+5

N+6

N+7

N+8

N+9

N+10

N+11

N+12

N+13

N+14

N+15

0000

0001

0010

0011

0100

0101

0110

0111

1000

1001

1010

1011

1100

1101

1110

1111

10

11

12

13

14

15

16

5

6

7

8

9

1

2

3

4

R011

MSB LSB

1

1

7

1

1

6

1

1

5

1

1

4

1

1

3

1

1

2

1

1

1

1

1

0

- channel indicator inputs

F3–16AD 16-Channel Analog Input

5–13

Analog Data Bits

The remaining twelve bits represent the analog data in binary format.

Bit

0 (LSB)

3

4

1

2

5

Value

1

8

16

2

4

32

Bit

6

9

10

7

8

11

Value

64

128

256

512

1024

2048

MSB

R011

1

1

7

1

1

6

1

1

5

1

1

4

1

1

3

1

1

2

1

1

1

1

1

0

0

1

7

0

1

6

0

1

5

0

1

4

0

1

3

0

1

2

0

1

1

0

1

0

- data bits

R001

LSB

Since the module has 12-bit resolution, the analog signal is converted into 4096

“pieces” ranging from 0 – 4095 (2

12

). For example, with a 0 to 10V scale, a 0V signal would be 0, and a 10V signal would be 4095. This is equivalent to a a binary value of

0000 0000 0000 to 1111 1111 1111, or 000 to FFF hexadecimal. The following diagram shows how this relates to each signal range.

+V

–10V – +10V

–5V – +5V

+V

0V – 10V

20mA

0 – 20mA

20mA

4 – 20mA

0V

-V 0V 0mA

4mA

0 819 4095

NOTE: When you use 4–20mA signals, you have to use the 0–20mA scale. You do not have resolution of 4096 if the 4–20mA signal is present. In this case, the range is

819 to 4095. This is because a 0 still represents 0mA, not 4mA.

Each “piece” can also be expressed in terms of the signal level by using the equation shown. The following table shows the smallest signal levels that will possibly result in a change in the data value for each signal range.

Resolution

+

H

*

L

4095

H = high limit of the signal range

L = low limit of the signal range

Range

–10 to +10V

–5 to +5V

0 to 5V

0 to 10V

0 to 12V

0 to 20mA

(4 to 20mA also)

0 to 1V

0 to 0.1V

0 to 0.01V

Highest Signal

+10V

+5 V

5V

10V

12V

20mA

1 V

0.1 V

0.01 V

Lowest Signal

–10V

–5V

0V

0V

0V

0mA

0 V

0 V

0 V

Smallest Change

4.88 mV

2.44 mV

1.22 mV

2.44 mV

2.90 mV

4.88 m

A

0.244 mV

24.4 uV

2.44 uV

5–14

F3–16AD 16-Channel Analog Input

Writing the Control Program (DL330 / DL340)

Identifying the

Data Locations

Since all channels are multiplexed into a single data word, the control program must be setup to determine which channel is being read. Since the module provides input points to the CPU, it is very easy to use the active channel status bits to determine which channel is being monitored.

F3–16AD

8pt

Relay

050

057

8pt

Output

8pt

Output

040

047

030

037

16pt

Input

16ch

(Analog)

16pt

Input

020

027

120

127

010

017

110

117

000

007

100

107

R 002, R012

MSB

1

1

7

R 011

LSB

1

1

0

R 000, R010

MSB

0

1

7

R 001

LSB

0

1

0

F3–16AD 16-Channel Analog Input

5–15

Example Program

The following example shows a program designed to read any of the available channels of analog data into Register locations. Once the data is in a Register, you can perform math on the data, compare the data against preset values, etc. Since the DL305 CPUs use 8-bit word instructions, you have to move the data in pieces. It’s pretty simple if you follow the example.

Identify the channel

374

DSTR2

R011

F52

This rung loads the channel ID bits into the accumulator from Register 011 on every scan.

Read the data

374

BCD

DOUT

R600

F86

F60

DSTR3

R011

F53

Convert the channel ID status to BCD. (We’ll use relational contacts later to make the chanel selection much easier.)

Store the channel ID in R600. (Note, you don’t absolutely have to do it this way. If you use R600, then you can’t use Timer/Counter 600. You could just use the channel indicators. See the Store

Channel 1 example that follows.)

This rung loads the four least significant data bits into the accumulator from Register 011 on every scan.

Temporarily store the bits to Register 501.

DOUT1

R501

F61

DSTR1

R001

F51

This rung loads the eight least significant data bits into the accumulator from Register 001.

Store channel data

Store channel 1

114 115 116 117

Store channel 2

CT600 K0001

=

Store channel 15

CT600 K0014

=

Store channel 16

CT600 K0015

=

DOUT1

R500

F61

DSTR

R500

BCD

DOUT

R400

DOUT

R402

DOUT

R434

DOUT

R436

F50

F86

F60

F60

F60

F60

Temporarily store the bits to Register 500. Since the most significant bits were loaded into 501, now

R500 and R501 contain all twelve bits in order.

Now that all the bits are stored, load all twelve bits into the accumulator.

Math operations are performed in BCD. This instruction converts the binary data to BCD. (You can omit this step if your application does not require the conversion.)

The channel selection inputs are used to let the

CPU know which channel has been loaded into the accumulator. By using these inputs to control a

DOUT instruction, you can easily move the data to a storage register. Notice the DOUT instruction stores the data in two bytes. (Two bytes are required for four digit BCD numbers.)

This rung shows how you would use the channel indicator inputs as contacts to control the channel selection.

This rung shows an easier way. Earlier we loaded the channel ID bits (in BCD format) into R600. Now we can use one relational contact to examine this value. However, this method uses the register associated with Timer/Counter 600. If you use this method, make sure you don’t use the

Timer/Counter associated with the register elsewhere in the program.

5–16

F3–16AD 16-Channel Analog Input

Scaling the Input

Data

Most applications usually require measurements in engineering units, which provide more meaningful data.

This is accomplished by using the conversion formula shown.

The following example shows how you would use the analog data to represent pressure (PSI) from 0 to 100. This example assumes the analog value is

1760. This should yield approximately

42.9 PSI.

Units

+

A

4096

S

Units = value in Engineering Units

A = Analog value (0 – 4095)

S = high limit of the Engineering unit range

Units

+

A

4096

S

Units

+

1760

4096

100

Units

+

42.9

F3–16AD 16-Channel Analog Input

5–17

The following instructions are required to scale the data. (We’ll continue to use the

42.9 PSI example.) In this example we’re using channel 1. The active channel indicator inputs are all off when channel 1 data is being read. Of course, if you were using a different channel, you would use the active channel indicator point combination that corresponds to the channel you were using.

This example assumes you have already read the analog data and stored the BCD equivalent in R400 and R401

Scale the data

114 115 116 117

DSTR

R400

F50

This instruction brings the analog value (in BCD) into the accumulator.

Accumulator Aux. Accumulator

1 7 6 0 0 0 0 0

R577 R576

DIV

K4096

F74

DSTR

R576

F50

MUL

K100

F73

DSTR

R576

F50

DOUT

R450

F60

The analog value is divided by the resolution of the module, which is 4096. (1760 / 4096 = 0.4296)

Accumulator

0 0 0 0

Aux. Accumulator

4 2 9 6

R577 R576

This instruction moves the two-byte decimal portion into the accumulator for further operations.

Accumulator

4 2 9 6

Aux. Accumulator

4 2 9 6

R577 R576

The accumulator is then multiplied by the scaling factor, which is 100. (100 x 4296 = 429600). Notice the most significant digits are now stored in the auxilliary accumulator. (This is different from the way the Divide instruction operates.)

Accumulator

9 6 0 0

Aux. Accumulator

0 0

R577

4 2

R576

This instruction moves the two-byte auxilliary accumulator for further operations.

Accumulator

0 0 4 2

Aux. Accumulator

0 0 4 2

R577 R576

This instruction stores the accumulator to R450.

R450 now contains the PSI, which is 42 PSI.

Accumulator

0 0 4 2

Store in R451 & R450

0 0 4 2

R451 R450

5–18

F3–16AD 16-Channel Analog Input

You probably noticed the previous example yielded 42 PSI when the real value should have been 42.9 PSI. By changing the scaling value slightly, we can “imply” an extra decimal of precision. Notice in the following example we’ve added another digit to the scale. Instead of a scale of 100, we’re using 1000, which implies 100.0 for the

PSI range.

This example assumes you have already read the analog data and stored the BCD equivalent in R400 and R401

Scale the data

114 115 116 117

DSTR

R400

F50

This instruction brings the analog value (in BCD) into the accumulator.

Accumulator Aux. Accumulator

1 7 6 0 0 0 0 0

R577 R576

DIV

K4096

F74

DSTR

R576

F50

MUL

K1000

F73

DSTR

R576

F50

DOUT

R450

F60

The analog value is divided by the resolution of the module, which is 4096. (1760 / 4096 = 0.4296)

Accumulator

0 0 0 0

Aux. Accumulator

4 2 9 6

R577 R576

This instruction moves the two-byte decimal portion into the accumulator for further operations.

Accumulator

4 2 9 6

Aux. Accumulator

4 2 9 6

R577 R576

The accumulator is multiplied by the scaling factor, which is now 1000. (1000 x 4296 = 4296000). The most significant digits are now stored in the auxilliary accumulator. (This is different from the way the Divide instruction operates.)

Accumulator

6 0 0 0

Aux. Accumulator

0 4

R577

2 9

R576

This instruction moves the two-byte auxilliary accumulator for further operations.

Accumulator

0 4 2 9

Aux. Accumulator

0 4 2 9

R577 R576

This instruction stores the accumulator to R450 and R451. R450 and R451 now contain the PSI, which implies 42.9.

Accumulator

0 4 2 9

Store in R451 & R450

0 4 2 9

R451 R450

F3–16AD 16-Channel Analog Input

5–19

This example program shows how you can use the instructions to load these equation constants into data registers. The example is written for channel 1, but you can easily use a similar approach to use different scales for all channels if required.

You may just use the appropriate constants in the instructions dedicated for each channel, but this method allows easier modifications. For example, you could easily use an operator interface or a programming device to change the constants if they are stored in Registers.

Load the constants

374

DSTR

K4096

F50

On the first scan, these first two instructions load the analog resolution (constant of 4096) into R460 and R461.

DOUT

R460

F60

DSTR

K1000

F50

DOUT

R462

F60

These two instructions load the high limit of the

Engineering unit scale (constant of 1000) into

R462 and R463. Note, if you have different scales for each channel, you’ll also have to enter the

Engineering unit high limit for those as well.

Read the data

374

DSTR3

R011

F53

DOUT1

R501

F61

This rung loads the four most significant data bits into the accumulator from Register 011 on every scan.

Temporarily store the bits to Register 501.

Store channel 1

114 115 116 117

DIV

R460

F74

DSTR

R576

F50

MUL

R462

F73

DSTR

R576

F50

DOUT

R400

F60

The analog value is divided by the resolution of the module, which is stored in R460.

This instruction moves the decimal portion from the auxilliary accumulator into the regular accumulator for further operations.

The accumulator is multiplied by the scaling factor, which is stored in R462.

This instruction moves most significant digits (now stored in the auxilliary accumulator) into the regular accumulator for further operations.

The scaled value is stored in R400 and R401 for further use.

5–20

F3–16AD 16-Channel Analog Input

Broken Transmitter

Detection

If you use 4–20mA signals you can easily check for broken transmitter conditions.

Since you have to use the 0–20mA range and the lowest signal for the 4–20mA transmitter is 4mA, the lowest digital value for the signal is not 0, but instead is 819.

If the transmitter is working properly the smallest value you should ever see is 819. If you see a value of less than about 750 (allowing for tolerance), then you know the transmitter is broken.

Read the channel ID

374

DSTR2

R011

F52

This rung loads the channel ID bits into the accumulator from Register 011 on every scan.

BCD

DOUT

R600

F86

F60

Convert the channel ID status to BCD. We’ll use relational contacts later to make the chanel selection much easier.)

Store the channel ID in R600.

Read the data

374

DSTR3

R011

F53

This rung loads the four most significant data bits into the accumulator from Register 011 on every scan.

DOUT1

R501

F61

Temporarily store the bits to Register 501.

DSTR1

R001

F51

This rung loads the eight least significant data bits into the accumulator from Register 001.

DOUT1

R500

F61

Temporarily store the bits to Register 500. Since the most significant bits were loaded into 501, now

R500 and R501 contain all twelve bits in order.

Now that all the bits are stored, load all twelve bits into the accumulator.

DSTR

R500

F50

Store channel 1

114 115 116 117

BCD

DOUT

R400

F86

F60

CMP

K0100

F70

Broken transmitter indicator on channel 1

773 114 115 116 117

040

OUT

774

Math operations are performed in BCD. This instruction converts the binary data to BCD. (You can omit this step if your application does not require the conversion.)

The DOUT instruction copies the accumulator data to R400 and R401. Since the data is still in the accumulator, we can compare it against a constant. Since the minimum value for a 4mA signal is 819 (minus the module tolerance), we can choose a value for the compare. We picked 100, but you could choose something else from 0 to about 750.

Flags 773 and 774 are used with the Compare instruction. In this example if the analog value is less than or equal to 100, then output 040 is turned on.

You may want to latch 040 to catch intermittent broken transmitters.

F3–16AD 16-Channel Analog Input

5–21

Writing the Control Program (DL350)

Reading Values:

Pointer Method and Multiplexing

There are two methods of reading values for the DL350:

S

The pointer method (all system bases must be D3–xx–1 bases to

support the pointer method)

S

Multiplexing

You must use the multiplexing method with remote I/O modules (the pointer method will not work). You can use either method when using DL350, but for ease of programming it is strongly recommended that you use the pointer method.

NOTE: Do not use the pointer method and the PID PV auto transfer from I/O module function together for the same module. If using PID loops, use the pointer method and ladder logic code to map the analog input data into the PID loop table.

Pointer Method

The DL350 has special V-memory locations assigned to each base slot that greatly simplifies the programming requirements. These V-memory locations allow you to:

S specify the data format

S specify the number of channels to scan

S specify the storage locations

The example program shows how to setup these locations. Place this rung anywhere in the ladder program or in the Initial Stage if you are using RLL

PLUS

instructions. This is all that is required to read the data into V-memory locations.

Once the data is in V-memory, you can perform math on the data, compare the data against preset values, and so forth. V2000 is used in the example, but you can use any user V-memory location. In this example the module is installed in slot 2. You should use the V-memory locations for your module placement.

SP0

LD

K

1

000

OUT

V7662

LDA

O2000

OUT

V7672

16 channels selected

- or -

LD

LD

K

0f

00

15 channels selected

- or -

LD

K

8f

00

Loads a constant that specifies the number of channels to scan and the data format. For 1–15 channels, the upper byte, most significant nibble (MSN) selects the data format (i.e. 0=BCD,

8=Binary), the LSN selects the number of channels (i.e. 1, 2, 3, 4,

5, 6, 7, 8, 9, a, b, c, d, e, f). To select 16 channels, the upper nibble (MSN) selects the data format and the number of channels

(i.e. 1=16 channels BCD, 9= 16 channels Binary).

Special V-memory location assigned to slot 2 that contains the number of channels to scan.

This loads an octal value for the first V-memory location that will be used to store the incoming data. For example, the O2000 entered here would designate the following addresses.

Ch1 - V2000, Ch2 - V2001, Ch3 - V2002, Ch4 - V2003,

Ch5 – V2004, Ch6 – V2005, Ch7 – V2006, Ch8 – V2007,

Ch9 – V2010, Ch10 – V2011, Ch11 – V2012, Ch12 – V2013

Ch13 – V2014, Ch14 – V2015, Ch15 – V2016, Ch16 – V2017

The octal address (O2000) is stored here. V7672 is assigned to slot

2 and acts as a pointer, which means the CPU will use the octal value in this location to determine exactly where to store the incoming data.

5–22

F3–16AD 16-Channel Analog Input

The table shows the special V-memory locations used with the DL350. Slot 0 (zero) is the module next to the CPU, slot 1 is the module two places from the CPU, and so on. Remember, the CPU only examines the pointer values at these locations after a mode transition. The pointer method is supported on expansion bases up to a total of

8 slots away from the DL350 CPU. The pointer method is not supported in slot 8 of a

10 slot base.

Slot

Analog Input Module Slot-Dependent V-memory Locations

0 1 2 3 4 5 6 7

No. of Channels V7660 V7661 V7662 V7663 V7664 V7665 V7666 V7667

Storage Pointer V7670 V7671 V7672 V7673 V7674 V7675 V7676 V7677

Multiplexing:

DL350 with a

Conventional

DL305 Base

F3–16AD 16-Channel Analog Input

5–23

The example below shows how to read multiple channels on an F3–08AD Analog module in the 20–27/120–127 address slot. This module must be placed in a 16 bit slot in order to work.

Load the data

_On

SP1

LDF X120

K8

This rung loads the upper byte of analog data from the module.

SHFL

ORF

ANDD

BCD

K8

X20

K8

Kfff

SHFL K8 shifts the data to the left eight places to make room for the lower byte of data.

The ORF X20 brings the lower byte of data from the module into the accumulator. At this time there is a full word of data from the analog module in the accumulator.

The ANDD Kfff masks off the four most significant bits of data from the word. This leaves the actual analog value.

The BCD command converts the data to BCD format.

OUT

V2200

Stores the data in V2200.

Channel 1 Select Bit States

X124 X125 X126 X127

LD

V2200

OUT

V3000

Channel 2 Select Bit States

X124 X125 X126 X127

LD

V2200

OUT

V3001

Channel 3 Select Bit States

X124 X125 X126 X127

LD

V2200

OUT

V3002

This sends channel one analog data to

V3000 when bits X124, X125, X126 and X127 are as shown.

This sends channel two analog data to

V3001 when bits X124, X125, X126 and X127 are as shown.

This sends channel two analog data to

V3002 when bits X124, X125, X126 and X127 are as shown.

5–24

F3–16AD 16-Channel Analog Input

Multiplexing:

DL350 with a

D3–XX–1 Base

The example below shows how to read multiple channels on an F3–16AD Analog module in the X0 address slot of the D3–XX–1 base. If any expansion bases are used in the system, they must all be D3–xx–1 to be able to use this example.

Otherwise, the conventional base addressing must be used.

_On

SP1

LD

VX0

This rung loads the upper byte of analog data from the module.

SHFL K12 shifts the word to the right twelve places.

SHFR

K12

OUT

V1400

Puts the four channel select bits in the lower nibble

(four bits) of word V1400. This will increment once with each scan from 0 to F.

_On

SP1

LDF X0

K12

BCD

This rung loads the twelve bits of analog data to the module and converts it to BCD. It is the OUT to

V1401.

This converts the data to BCD.

OUT

V1401

The analog data (in BCD format) is then stored in the Holding Register, V1401.

Rungs 3–18 compare the count of the chennel select bits. When the corresponding bits are true, the channel data for that channel is stored in the proper V-memory location. For sixteen channels of analog data, the module will require sixteen scans in order to update all channels.

Channel Selection Data

V1400

K0

=

LD

V1401

Channel #1 Data

OUT

V2000

Channel Selection Data

V1400

K1

=

LD

V1401

Channel #2 Data

OUT

V2001

Channel Selection Data

V1400

K2

=

LD

V1401

Channel #3 Data

OUT

V2002

F3–16AD 16-Channel Analog Input

5–25

Channel Selection Data

V1400 K3

=

LD

V1401

OUT

V2003

Channel Selection Data

V1400

K4

=

LD

V1401

OUT

V2004

Channel Selection Data

V1400

K5

=

LD

V1401

OUT

V2005

Channel Selection Data

V1400

K6

=

LD

V1401

OUT

V2006

Channel Selection Data

V1400

K7

=

LD

V1401

OUT

V2007

Channel Selection Data

V1400

K8

=

LD

V1401

OUT

V2010

Channel Selection Data

V1400

K9

=

LD

V1401

OUT

V2011

Channel #4 Data

Channel #5 Data

Channel #6 Data

Channel #7 Data

Channel #8 Data

Channel #9 Data

Channel #10 Data

5–26

F3–16AD 16-Channel Analog Input

Channel Selection Data

V1400

Ka

=

LD

V1401

OUT

V2012

Channel Selection Data

V1400 Kb

=

LD

V1401

OUT

V2013

Channel Selection Data

V1400

Kc

=

LD

V1401

OUT

V2014

Channel Selection Data

V1400 Kd

=

LD

V1401

OUT

V2015

Channel Selection Data

V1400 Ke

=

LD

V1401

OUT

V2016

Channel Selection Data

V1400

Kf

=

LD

V1401

OUT

V2017

Channel #11 Data

Channel #12 Data

Channel #13 Data

Channel #14 Data

Channel #15 Data

Channel #16 Data

F3–16AD 16-Channel Analog Input

5–27

Scaling the

Input Data

Most applications usually require measurements in engineering units, which provide more meaningful data.

This is accomplished by using the conversion formula shown.

You may have to make adjustments to the formula depending on the scale you choose for the engineering units.

Units

+

A H

*

4095

L

H = high limit of the engineering unit range

L = low limit of the engineering unit range

A = Analog value (0 – 4095)

For example, if you wanted to measure pressure (PSI) from 0.0 to 99.9 then you would have to multiply the analog value by 10 in order to imply a decimal place when you view the value with the programming software or a handheld programmer.

Notice how the calculations differ when you use the multiplier.

Here is how you would write the program to perform the engineering unit conversion.

This example assumes you have BCD data loaded into the appropriate V-memory locations using instructions that apply for the model of CPU you are using.

NOTE:

This example uses SP1, which is always on. You could also use an X, C, etc. permissive contact.

SP1

LD

V3000

MUL

K1000

DIV

K4095

When SP1 is on, load channel 1 data to the accumulator.

Multiply the accumulator by 1000 (to start the conversion).

Divide the accumulator by 4095.

Store the result in V3020.

OUT

V3020

5–28

F3–16AD 16-Channel Analog Input

Analog and Digital

Value Conversions

Sometimes it is helpful to be able to quickly convert between the signal levels and the digital values. This is especially helpful during machine startup or troubleshooting.

The following table provides formulas to make this conversion easier.

Range

–10V to + 10V

If you know the digital value ...

If you know the analog signal level ...

A

+

20D

4095

*

10 D

+

4095

20

(A

)

10)

–5V to + 5V

A

+

10D

4095

*

5 D

+

4095

10

(A

)

5)

0 to 5V

A

+

5D

4095

D

+

4095

5

A

0 to 10V

0 to 12V

0 to 20mA

(or 4–20mA)

A

A

+

+

10D

4095

12D

4095

A

+

20D

4095

D

D

+

4095

12

A

D

+

+

4095

10

4095

20

A

A

0 to 1V

0 to 0.1V

0 to 0.01V

A

+

1D

4095

A

+

0.1D

4095 ȏ

A

+

0.01D

4095

For example, if you are using the –10 to

+10V range and you have measured the signal at 6V, you would use the following formula to determine the digital value that should be stored in the register location that contains the data.

D

+

4095

1

A

D

+

4095

0.1

A

D

+

4095

0.01

A

D

+

4095

20

(A

)

10)

D

+

4095

20

(6V

)

10)

D

+

(204.75) (16)

D

+

3276

Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Download PDF

advertisement