Sunlux Technologies

           an Industrial Embedded IT Company                                                          Microsoft Windows Embedded Partner
Home| Contact Us
About Us
Products
Services
Partners
Clients
News
Downloads
Contact Us

 

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

 

   

  Home ] Up ]  

 Copyright © Sunlux Technologies Ltd.

 Last Modified December 2006