BEKA Advisor A90 Modbus Interface User Guide
- June 9, 2024
- BEKA
Table of Contents
BEKA Advisor A90 Modbus Interface
Introduction
This guide gives all the necessary information to use our Advisor A90 process
meter in a Modbus installation. For hardware installation information, please
refer to the separate instruction manuals available for each model.
What’s in this Modbus Interface Guide
- An overview of each instrument
- A description of the parameters that are applicable to each instrument
- Instructions on how to use the instrument in its standard mode
What’s in the Instruction Manuals
- An overview of the instrument
- System Design and Installation
- Configuration
- Maintenance
Other sources of information
Our website at www.beka.co.uk is kept up to date with the latest literature and information After reading through this guide, if you still have a problem getting the results you need then email us at support@beka.co.uk and we will do our best to help
Product Overview
A detailed overview of the instrument is given in the instruction manual for each product. This should be read before implementing any system using these instruments, however a summary of the main features is listed below:
Function
The Advisor A90 Universal Panel Meter is a multicolour five digit display
instrument, primarily intended for displaying a current, voltage or resistance
analogue process signal in engineering units. The instrument can also display
temperature directly from a resistance thermometer. The A90 is configurable
on-site using the four front panel push buttons and an intuitive menu that can
be protected by a security code to prevent accidental adjustment.
Display
The Advisor A90 Process Panel Meter employs a novel technique that enables the
display to be in any colour on a black background, readable in all conditions
from total darkness to bright sunlight. The display intensity is fully
adjustable to match other instruments and preserve operator’s night time
vision.
When fitted with optional alarms the display colour can be linked to the alarm status. For example, a green display could indicate normal operation, the display colour changing to red when a high alarm occurs and to blue when a low alarm occurs.
Analogue Input
The instrument input type and range are selectable on-site and the meter
display can be calibrated to show the engineering variable represented by the
analogue input. The engineering units of measurement such as kg, gallons/hour
or ºC, can be printed on the slide-in scalecard.
One of the following input ranges may be selected:
Voltage input
0 to 100mV
0 to 1V
0 to 10V
Current input
4 to 20mA
0 to 50mA
Resistance thermometer input
2 or 3 wire connected PT100 resistance thermometer, or differential output from two PT100 resistance thermometers. -200 to 850ºC
Changing the input type will reset the Panel Meter to its default settings for that input.
Optional Alarm Outputs
There are two relay changeover outputs available. These are totally isolated
and are energised or de-energised independently according to the status of the
Alarm set-points. These can NOT be overridden by issuing any Modbus commands.
Optional Analogue Output
A totally isolated analogue output is available which is configured as a
current sink. This output can be configured to respond to the analogue input,
and can NOT be overridden by issuing any Modbus commands. This option also
comes with an isolated 24V DC power supply output which can be used to supply
a 4-20 mA current loop.
Modbus Implementation
The Modbus implementation on the Advisor has several objectives.
It offers the following services to the Modbus Master (PLC, PC or similar):
- Monitor the process variable measured by the instrument
- Identify the status of the instrument (Alarms status, Tare Activation status,…)
- Configure the instrument remotely
The Modbus interface is available as an optional module on the Advisor A90.
The supported protocol is Modbus RTU (Modbus over RS485). Note that the ASCII
version of the protocol has not been implemented.
The A90 operates only as a slave on the network, processing requests from a
remote Master. Multidrop mode is supported in that there can be more than one
device (A90 or others) on the bus.
Exclusions
It is not possible to configure the product locally and remotely at the same
time. If a user is navigating through the menus, a Modbus Busy exception will
be raised to the Master.
The Master cannot be used to override the internal logic of the instrument.
For example, it is not possible to directly control the Alarm Outputs, read
the keypad buttons or take control of the displayed value via Modbus.
The Master cannot override operations which are intended to take place
locally. For example actions such as Silencing Alarms, Input Calibration,
Temperature Trimming, Input Taring are not available via Modbus.
The Input type is not writeable by the Master as changing the input type has
the effect of resetting the product back to defaults, causing significant
problems.
Hardware
The physical hardware layer is a 2 wire RS485 interface. The A90 will see the
all requests from the master and every reply from any other devices on the
bus. These are ignored unless the request is specifically addressed to the
unit.
The RS485 communication settings can be amended locally on the instrument by
going into the “Ser” submenu or via the dedicated holding registers. The
following settings can be changed :
- Baud Rate in kbaud : can be 9.6, 19.2, 38.4, 57.6, 115.2
- Parity: Even, None or Odd
- Number of Stop Bits: 1 or 2
The default values are 19.2kbaud, Even Parity, 1 Stop bit The default values are 19.2kbaud, Even Parity, 1 Stop bit
Setting the Address
The Modbus Slave Address can only be amended locally on the instrument via the “5Er” submenu. The slave address can range from 1 to 247. The default value is
- Note: Address 0 is reserved for broadcast messages. The A90 accepts the
broadcast for writing functions, however no response is returned to the
master.
Reset to Defaults
Changing the instrument input type (locally via the keypad) or resetting the configuration to defaults will have the effect of reverting the Modbus communication settings and slave address to their default values.
Supported Modbus Functions
The Modbus functions that are supported by the A90 are as follows:
Decimal Hex Description
01| 0x01| Read Coils
02| 0x02| Read Discrete Inputs
03| 0x03| Read Holding Registers
04| 0x04| Read Input Registers
05| 0x05| Write Single Coil
06| 0x06| Write Single Register
08| 0x08| Diagnostics (Partly Supported)
15| 0x0F| Write Multiple Coils
16| 0x10| Write Multiple Registers
43| 0x2B| Read Device Identification (Partly Supported)
All of the following diagnostic sub-functions are supported except sub- function 0x03 (This is only required for ASCII protocol. A request on this subfunction generates an ILLEGAL DATA VALUE exception.)
Sub-Function Code | Description |
---|---|
Decimal | Hex |
00 | 0x00 |
01 | 0x01 |
02 | 0x02 |
03 | 0x03 |
04 | 0x04 |
05…09 | 0x05…0x09 |
10 | 0x0A |
11 | 0x0B |
12 | 0x0C |
13 | 0x0D |
14 | 0x0E |
15 | 0x0F |
16 | 0x10 |
17 | 0x11 |
18 | 0x12 |
19 | 0x13 |
20 | 0x14 |
21…65535 | 0xnn |
Read Device Identification (Function Code 0x2B)
Only the MEI type 14 is supported in this function, and all other types are
rejected. This function code allows reading the identification and additional
information from a remote device.
There are 3 categories of objects defined in the following table. The table
also specifies the value and message length from the instrument for each
object ID.
MEI
Type
| Object ID| Object Name / Description| Type| Category|
Returned Value| Value Length
---|---|---|---|---|---|---
14| 0x00| Vend or Name| ASCII String| Basic| “BEKA Associates Ltd.”| 20
0x01| Product Code| ASCII String| “A90”| 3
0x02| Major Minor Revision| ASCII String| “A90.1.FX.XX” where X.XX
is the firmware version
| 11
0x03| Vendor URL| ASCII String| Regular|
“www.beka.co.uk”| 14
0x04| Product Name| ASCII String| “Advisor”| 7
0x05| Model Name| ASCII String| “A90”| 3
0x06| User Application Name| ASCII String| Unused
0x07…0x7F| Reserved| | Unused
0x80…0xFF| | | Extended| Not Supported
The request from the Master for this function must include a Read Device ID
Code which defines whether the request is only for a single object or stream
of objects:
ID 01 : request to get the basic device identification (stream access)
ID 02: request to get the regular device identification (stream access)
ID 03: request to get the extended device identification (stream access) – Not
Supported
ID 04: request to get one specific identification object (individual access)
- For Extended access (ID 03) an Exception Code 03 (ILLEGAL DATA VALUE) is returned
- For a single object request (ID 04), if the object ID requested corresponds to an unused or unsupported object ID (address >= 0x07), an Exception Code 02 (ILLEGAL DATA ADDRESS) is returned
- For a stream access (ID 02), the response will only include the used objects (address < 0x07) and the next object ID will be set to 0x00 (restart at the beginning
Modbus Register Address Map
Notes :
In the tables below (IEEE) indicates that data is represented by a 4 byte IEEE
floating point format For 32 bits registers (integers or floats), the Most
Significant 16 bits word is the one with the highest Modbus address
Coils| Read / Write|
---|---|---
Address| Bits| Description| Functions Supported
1| 1| Alarm1 Enable| 1, 5, 15
2| 1| Alarm2 Enable| 1, 5, 15
3| 1| 4/20 O/P Enable| 1, 5, 15
4| 1| Save Configuration| 1, 5, 15
Notes:
Enable: 0 = Disable 1 = Enable
Save: 0 = No Effect 1 = Save Configuration Data in Flash (Coil will
revert to zero once saved)
Input Status| Read
Only
|
---|---|---
Address| Bits| Description| Functions Supported
1| 1| Alarm1 Energised| 2
2| 1| Alarm2 Energised| 2
3| 1| Input Fault Status| 2
4| 1| Configuration Not Saved| 2
5| 1| Alarm Option Fitted| 2
6| 1| 4/20 O/P Option Fitted| 2
7| 1| Tare Display Status| 2
8| 1| Write Error| 2
Alarms:| 0 = De-Energised| 1= Energised
---|---|---
Fault Status:| 0 = Normal| 1 = Fault
Configuration:| n: 0 = Saved| 1 = Changed, but not saved
Options:| 0 = Not Fitted| 1 = Fitted
Tare Display:| 0 = Gross| 1 = Tare
Write| 0 = No Error| 1 = Error *
- A value of 1 indicates that the last attempt to write to the unit generated an error due to the fact that one or more of the data registers were outside the allowable range. It should be noted that any valid value within this same request would have still been processed, i.e. the entire write packet is not rejected.
Input Registers| Read
Only
|
---|---|---
Address| Registers| Description| Functions Supported
1| 1| Input Type| 4
2| 2| Display Value (IEEE)| 4
4| 2| Max Hold Value (IEEE)| 4
6| 2| Min Hold Value (IEEE)| 4
8| 2| Display Value (32 bits Integer)| 4
10| 1| Display Value divisor (n/10)| 4
11| 2| Max Hold (32 bits Integer)| 4
13| 1| Max Hold divisor (n/10)| 4
14| 2| Min Hold (32 bits Integer)| 4
16| 1| Min Hold divisor (n/10)| 4
Notes:
Input Type Enumeration:
0 = 0.1V
1 = 1V
2 = 10V
3 = 4/20 mA
4 = 0-50 mA
5 = Differential RTD
6 = 2-Wire RTD
7 = 3-Wire RTD
Address| Registers| Description| Default| Range
Exceptions Functions Supported
---|---|---|---|---
1| 2| Set Zero (IEEE)| 0.0| float| Only applicable to Voltage & Current
Inputs| 3, 16
3| 2| Set Span (IEEE)| 100.0| float| Only applicable to Voltage & Current
Inputs| 3, 16
5| 2| Bar Low (IEEE)| | float| | 3, 16
7| 2| Bar High (IEEE)| | float| | 3, 16
9| 2| Alarm1 Setpoint (IEEE)| 0.0| float| Only applicable if Option fitted| 3,
16
11| 2| Alarm1 Hysteresis (IEEE)| 0.0| float| 3, 16
13| 2| Alarm2 Setpoint (IEEE)| 0.0| float| 3, 16
15| 2| Alarm2 Hysteresis (IEEE)| 0.0| float| 3, 16
17| 2| 4/20 O/P Zero (IEEE)| | float| 3, 16
19| 2| 4/20 O/P Span (IEEE)| | float| 3, 16
21| 1| Input Units| 0| 0…4| Only applicable to RTD Inputs| 3, 6,16
22| 1| Function (Root Extraction)| 0| 0…1| Only applicable to Current Inputs|
3, 6,16
23| 1| Resolution (of least significant digit)| 0| 0…3| | 3, 6,16
24| 1| D.P. (Decimal Point position on the display)| | 0…5| | 3, 6,16
25| 1| Bar Type| 1| 0…4| | 3, 6,16
26| 1| Alarm1 Hi/Lo| 0| 0…1| Only applicable if Option fitted Not all
characters are available. See Note.| 3, 6,16
27| 1| Alarm1 ND/NE| 0| 0…1| 3, 6,16
28| 1| Alarm1 Delay (in seconds)| 0| 0…3600| 3, 6,16
29| 1| Alarm1 Silence| 0| 0…3600| 3, 6,16
30| 1| Alarm1 Colour (Colour Preset Number)| 1| 1…7| 3, 6,16
31| 1| Alamr1 Flash Enable| 1| 0…1| 3, 6,16
32| 1| Alarm1 Latch Enable| 0| 0…1| 3, 6,16
33| 1| Alarm2 Hi/Lo| 0| 0…1| 3, 6,16
34| 1| Alarm2 ND/NE| 0| 0…1| 3, 6,16
35| 1| Alarm2 Delay (in seconds)| 0| 0…3600| 3, 6,16
36| 1| Alarm2 Silence| 0| 0…3600| 3, 6,16
37| 1| Alarm2 Colour (Colour Preset Number)| 1| 1…7| 3, 6,16
38| 1| Alarm2 Flash Enable| 1| 0…1| 3, 6,16
39| 1| Alarm2 Latch Enable| 0| 0…1| 3, 6,16
40| 2| Alarms Access Code| “0000”| ASCII| 3,16
42| 1| ACSP Enable| 0| 0…1| 3, 6,16
43| 1| Tare Enable| 0| 0…1| | 3, 6,16
44| 1| Hold Enable| 0| 0…1| | 3, 6,16
45| 1| Hold clear| 0| 0…1| | 3, 6,16
46| 1| U – P (Function of P Button)| 0| 0…1| | 3, 6,16
47| 1| Serial Baud| 1| 0…4| | 3, 6,16
48| 1| Serial Par| 2| 0…2| | 3, 6,16
49| 1| Serial Stop| 1| 1…2| | 3, 6,16
50| 1| Serial Addr| 1| 1…247| | 3, 6,16
51| 1| 4/20 O/P RTD Fault Current| 0| 0…3| Only applicable if Option fitted|
3, 6,16
52| 2| Security Code| “0000”| ASCII| Not all characters are available. See
Note.| 3,16
54| 1| Menu Colour Preset| 4| 1…7| | 3, 6,16
55| 1| Calibration source| 0| 0…1| | 3, 6,16
201| 2| Set Zero| 0| sigint| Only applicable to Voltage & Current Inputs| 3,16
203| 1| Set Zero Divisor| 2| 0…4| Only applicable to Voltage & Current Inputs|
3, 6,16
204| 2| Set Span| 10000| sigint| Only applicable to Voltage & Current Inputs|
3,16
206| 1| Set Span Divisor| 2| 0…4| Only applicable to Voltage & Current Inputs|
3, 6,16
207| 2| Bar Low| | sigint| | 3,16
209| 1| Bar Low Divisor| | 0…4| | 3, 6,16
210| 2| Bar High| | sigint| | 3,16
212| 1| Bar High Divisor| | 0…4| | 3, 6,16
213| 2| Alarm1 Setpoint| | sigint| Only applicable if Option fitted| 3,16
215| 1| Alarm1 Setpoint Divisor| | 0…4| 3, 6,16
216| 2| Alarm1 Hysteresis| | sigint| 3,16
218| 1| Alarm1 Hysteresis Divisor| | 0…4| 3, 6,16
219| 2| Alarm2 Setpoint| | sigint| 3,16
221| 1| Alarm2 Setpoint Divisor| | 0…4| 3, 6,16
222| 2| Alarm2 Hysteresis| | sigint| 3,16
224| 1| Alarm2 Hysteresis Divisor| | 0…4| 3, 6,16
225| 2| 4/20 O/P Zero| | sigint| 3,16
227| 1| 4/20 O/P Zero Divisor| | 0…4| 3, 6,16
228| 8| 4/20 O/P Span| | sigint| 3,16
230| 1| 4/20 O/P Span Divisor| *| 0…4| 3, 6,16
- = Default values are input type dependent 10
Notes
Input Unit Enumeration:
(Only for Temperature Inputs)| 0 = Degrees Celsius
2 = Degrees Fahrenheit
4 = Resistance| 1 = Degrees Kelvin
3 = Degrees Rankine
---|---|---
Function (Root extraction) (Only for Current Inputs)| 0 = No Root extraction|
1 = Root extraction
Resolution (of least significant digit)| 0 = 1
2 = 5| 1 = 2
3 = 10
D.P. (Decimal Point position on the Display:)| 0 = 00000 (No Decimal Point)
2 = 000.00
4 = 0.0000| 1 = 0000.0
3 = 00.000
5 = Auto (gives best resolution)
Bar Type| 0 = OFF
4 = Asps (if alarms are fitted)| 1 = Left
3 = Right
Alarm Hi/Lo| 0 = Alarm is a Low Alarm| 1 = Alarm is a High Alarm
Alarm ND/NE| 0 = Alarm Normally De-Energized| 1 = Alarm Normally Energized
Alarm Flash Enable| 0 = Disables Alarm Flashing| 1 = Enables Alarm Flashing
Alarm Latch Enable| 0 = Disables Alarm Latching| 1 = Enables Alarm Latching
ACSP Enable| 0 = Disables Alarm Menu shortcut| 1 = Enables Alarm Menu shortcut
Tare Enable| 0 = Disables Tare function| 1 = Enables Tare Function
Hold Enable| 0 = Disables Hold function| 1 = Enables Hold Function
Hold Clear| 0 = No effect| 1 = Clears max/min held values.
U – P (Function of P Button)
Serial Baud (Modbus baud rate)| 0 = % of Span
0 = 9600
2 = 38400
4 = 115200| 1 = Analogue Input
1 = 19200
3 = 57600
Serial Par (Modbus Parity)| 0 = None
2 = Even| 1 = Odd
Factory Default Colours Codes
(each color assigned to a code can be adjusted manually through the menu)| 1 =
Red
2 = Orange
3 = Light Green
4 = Green| 5 = Blue
6 = Purple
7 = White
4/20 O/P RTD Fault Current| 0 = No Fault Current
1 = 3.6 mA| 2 = 3.8 mA
3 = 21 mA
Calibration source| 0 = Factory (SET| 1 = User (CAL)
float = IEEE Floating Point| The entire 32 bits value has to be written and
read as one command rather than separately otherwise an ILLEGAL ADDRESS
exception will be raised
sigint = 32 bits Signed Integer with Divisor| The divisor register defines the
number of times the integer value is divided by ten. The divisor and 32 bits
value have to be written and read together otherwise an ILLEGAL ADDRESS
exception will be raised
For 32 bits registers (either integers or floats), the Most Significant 16 bits word is the one with the highest Modbus address.
If the register written to does not apply to the option fitted or the input
type, the write will be allowed but the underlying value will not be changed
and the write rejected flag will not be set. Read requests will return a value
of 0. This behavior avoids generating exceptions which would prevent a full
group write. The ASCII Character set for access codes is limited by the
characters that can be displayed on a 7 segment digit. The following
characters may be used:
0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F,G,H,I,J,L,N,O,P,R,T,U,V,Y
BEKA Associates
Old Charlton Road
Hitchin
Hertfordshire
SG5 2DA
Tel: +44 (0)1462 438301
Fax: +44 (0)1462 453971
Web: www.beka.co.uk
Email: support@beka.co.uk
or sales@beka.co.uk