|
Frequently Asked Questions - MODBUS Source Code Libraries
- Who
should consider using our Source Code Libraries?
-
Should I develop my own MODBUS Driver or use the Source Code
Libraries?
- Who
uses our MODBUS Libraries and how?
- What kind of
support can one expect after purchasing the Source Code Library?
- What do I get
when I purchase the MODBUS Source Code Library?
- What are
the pre-requisites of the end-user to use the SCL?
- Is an
Operating System required to port and use the Source Code Library?
- Are the
Source Code Libraries hardware specific/ dependent? If no, how is
the portability achieved?
- Should I
purchase different Source Code Libraries for MODBUS RTU Serial and
MODBUS RTU TCP/IP implementations?
1) Who
should consider using our Source Code Libraries?
The MODBUS Source Code Libraries have been designed with an intention of
helping Intelligent Embedded/Electronic Device manufacturers to quickly
integrate support for an open communication protocol into their device. With
proprietary protocols losing their acceptability, MODBUS being a truly open
protocol becomes the next best choice. So, any embedded device manufacturer
having a microcontroller/microprocessor inside the device should look at our
Source Code Libraries for his communication needs. Specifically, the
following are some of the devices which are candidates for using our Source
Code Libraries:
- Remote Terminal Units
- Data Concentrators
- Data Acquisition Systems
- Energy Meters
- Tri Vectro Meters
- Electrical Protection Devices like Relays, Circuit Breakers, Intelligent
Switch Gear
- Uninterrupted Power Supplies
- Hand Held Pendants/Configuration Devices
- Access Control and Security Systems
- Single Board Computers
- Motion Control Systems
- Special Purpose Machines
- Programmable Logic Controllers
- Remote I/O Units
- Point of Sale (POS) units
- Any other Microcontroller/Microprocessor based device
Top
2) Should I develop my own
MODBUS Driver or use the Source Code Libraries?
This is a question that is likely to cross the minds of all those in need of
a communication protocol. Typically, the development of the MODBUS stack
in-house requires that:
-
The engineer completely understand the MODBUS protocol
-
The engineer has sufficient experience in development of protocol stacks
- A
cycle time of around 2 months be allocated for
development/testing/validation of the developed stack amounting to an
overall expenditure of anywhere between US$ 15,000 and US$ 20,000
- A
support engineer be nominated to maintain the developed stack
Compare this with the advantages of using our MODBUS Source Code Libraries:
-
You need an engineer who simply can program in 'C' - only a basic knowledge
of MODBUS is sufficient to port our libraries
-
No experience required in writing any communication protocol stack
-
Porting time of less than a week to port the SCL on your platform against
the development time of 3 months!
-
Costs incurred will be less than US$ 3,500 which includes the cost of
licensing the Source Code Library and the efforts spent in porting the
library to your platform!
-
You have at your ready disposal an experienced team of support engineers who
will help you out in case of any MODBUS related problems
-
At the end you have a tested and validated MODBUS solution on your platform
in less than a week!
Top
3) Who
is using our MODBUS Libraries and how?
Our MODBUS Libraries are in use around the world in diverse applications
which include mission critical applications also. A listing of some of them.
-
The Indian Space Research Organisation (ISRO), which is responsible for
building Satellites and launching them into outer space uses our MODBUS
Libraries on several VMEbus based embedded controllers running the OS9
operating system. These embedded controllers are used as a part of a Control
System to generate artificial space conditions on earth to enable testing
their satellites in a space simulated environment. The MODBUS stack is used
for communication between these controllers as well as communication between
the controllers and a Wonderware Intouch based HMI Server.
-
The Tata Iron and Steel Company Ltd. (TISCO) uses our MODBUS Libraries on
several Motorola 68060 based Single Board Computers (SBC) used for
automation of the steel plant. The MODBUS driver is used here for inter SBC
communication and transfer of control/data information from SBC to the
Control Room Server. The HMI Server used is Intellution Fix32.
-
The General Electric Company uses our MODBUS Library with their
Microprocessor based Intelligent Electronic Circuit Breakers to view the
status of and remotely control the circuit breakers from a Windows based PC.
-
The Bhabha Atomic Research Centre uses our MODBUS Library on their VMEbus
based Embedded Controller running OS9 to communicate to a Wonderware Intouch
based HMI Server.
-
a leading Access Control System manufacturer uses it on the 8051 based
embedded controllers to transfer user information to a Access Control Server
-
all the Motorola MC 68030 and Motorola MC 68360 based Remote Terminal Units
(RTU) and Data Concentrators (DC) at the electricity Sub-stations of the
Bhilai Steel Plant use our MODBUS library for inter RTU communication, RTU-DC
communication and DC to HMI Server Communication.
-
the Robotic Manipulators used by the Indira Gandhi Center for Atomic
Research use our MODBUS Libraries to accept commands and relay status and
acquired data to their control systems over an RS 485 media.
Top
4) What
kind of support can one expect after purchasing the Source Code Library?
The purchase of the Source Code
Library comes with a standard telephonic/email support of one year. During
this period, our support team will help you in porting the SCL to your
platform. The support provided may be in the form of platform specific
guidelines, helping you in formulating a good address mapping strategy,
helping you fine tune the port of the SCL or even doing a code walk-through
of your port. Our expert support team has a wealth of information on typical
problems that customers might encounter, common pitfalls etc. and will help
you avoid them so that you are able to quickly get the SCL working on your
platform. We provide valuable sample implementations of the Source Code
Library on some popular platforms like Windows Serial (RS232), Windows
TCP/IP etc. In many cases the porting activity may simply be a cut/paste of
the sample code provided with the package.
Top
5)
What do I get when I purchase the MODBUS Source Code Library?
The MODBUS Source
Code Library comes in with a set of 'C' source and header files which
contain implementation of the MODBUS RTU stack and the user portable code.
The portion of the SCL that requires implementation by the end user is
placed in a set of separate 'C' source and header file so that it is easier
for the end users to selectively modify the SCL. This also avoids accidental
modification of the MODBUS implementation by the end user. Typically the
following files are available with the Slave Source Code Library:
- MODBUS_Slave.c : Contains the
implementation of the MODBUS RTU stack.
- MODBUS_Slave.h : Associated header
file defines some of the structures used by the SCL
- MODBUS_User.c : Contains a skeleton of
the user portable code for physical layer and user database integration.
This is the file which must be modified by the end-user.
- MODBUS_User.h : Associated header file
defines several MACROs and function prototypes related to the user portable
code.
- MBDefs.h : Contains type definitions
for MODBUS specific data types.
The
Master Stack would have similar files.
Top
6) What are the pre-requisites of the end-user to use the SCL?
To use our SCLs you
must have the following:
- A 'C' language supporting platform
- A native ANSI 'C' compiler for the
platform you are using
- An engineer capable of 'C' programming
Top
7) Is an Operating System required to port and use the Source Code Library?
No. The MODBUS Source
Code Libraries have been ported and used on many bare platforms without an
Operating System. The design of the SCL is such that it does not use 'C'
functions that require the support of Operating Systems or Monitor programs
(e.g. the 'malloc' function requires a OS or similar agent to do memory
management).
Top
8)
Are the Source Code Libraries hardware specific/dependent? If no, how
is the portability achieved?
No, the Source
Code Libraries are hardware/Operating System independent. Portability
of the Stack across platforms is the primary goal of our Source Code
Libraries. The primary difference between various platforms appears in two
forms:
a) Physical Layer interface code
- the API's/Services given by the device drivers/firmware of physical
interfaces (like Ethernet, RS232) differs from platform to platform. On one
platform an API 'write' may be used to transmit data over a serial port
while on another a 'transmit' API may be used. On yet another platform,
there may be no API available to use the serial port requiring the direct
configuration and accessing of the hardware to actually transmit data.
b) Interface to the User Database
- the formats of User Databases varies from one user to another. User A may
store all the acquired real-time data in a 'C' structure, User B in a 'C'
array and User C on a 'shared memory'.
To handle these two non-standard interfaces, the Source Code Libraries
simply provide a skeleton implementation of the physical layer functions
leaving the actual implementation of the code to the end-user. For e.g. in
the above case, when the SCL desires to transmit data on the serial port, it
calls a function 'TransmitData' passing the data buffer, its size and a port
identifier to it as parameters. This function is left unimplemented when the
SCL is purchased. During the porting of the SCL, the end user must call the
actual transmitting function (say 'write') within the 'TransmitData'
function.
Similar is the
case with the interface to the User Database. When the SCL desires to insert
some data (say the value of a Holding Register), it calls a function 'PutData'
passing to it the data buffer containing the value, and the associated
MODBUS address, leaving the implementation of actual insertion of data into
the User Database to the end-user.
9)
Should I purchase different Source Code Libraries for MODBUS RTU Serial and
MODBUS RTU TCP/IP implementations?
No, our MODBUS Source
Code Libraries implement both MODBUS RTU Serial and MODBUS RTU TCP/IP
stacks. The 'MODBUS_TCP' MACRO controls weather the stack executes in MODBUS
Serial mode or MODBUS TCP/IP mode.
Top |