Modbus Motion Interface Overview

Purpose

The purpose of the Modbus Motion Interface (MMI) is to direct motion behavior from a Modbus Master such as a PC or PLC. Modbus Master libraries are available across a broad number of devices and operating systems making the MMI the most versatile way to direct the motion controller from an external master. Support is provided to manage controller-resident procedures that can be added to the stock MMI application using Snap2Motion software.

Modbus Overview

The modbus protocol was originally published by Modicon in 1979 and has become a popular industrial communication standard for many automation component vendors. Additional information can be found at Modbus.org. Modbus provides a number of shared arrays between a master and slave device. To simplify the MMI the only shared array used is the "holding register" array, an array of shared 16 bit registers. Array elements represent various data types in the following ways:

Booleans are represented by a single 16 bit register, 0 means false and nonzero is true.

16 bit values are represented by a single register

32 bit longints and 32 bit single precision numbers are held in two adjacent registers

64 bit double precision floating point values are held in 4 adjacent registers

It is assumed that the master API library being used has the ability to read and write to a 16 bit modbus holding register (commonly called the 4XXXX area). It is common for these libraries to also support directly reading and writing singles and doubles. In this document the following library functions are presumed available:

procedure Modbus.Write_Word(Address:longint,Value:integer);
procedure Modbus.Write_Single(Address:longint,Value:single);
procedure Modbus.Write_Double(Address:longint,Value:double);
function Modbus.Read_Word(Address:longint):integer;
function Modbus.Read_Single(Address:longint):single;
function Modbus.Read_Double(Address:longint):double;