SPiiPlus Modbus Setup Guide
SPiiPlus Modbus Setup Guide
Setup Guide
April 2021
Document Revision: 3.10
SPiiPlus Modbus Setup Guide
SPiiPlus Modbus
COPYRIGHT
Changes are periodically made to the information in this document. Changes are published as release notes and later
incorporated into revisions of this document.
No part of this document may be reproduced in any form without prior written permission from ACS Motion Control.
TRADEMARKS
ACS Motion Control, SPiiPlus, PEG, MARK, ServoBoost, NetworkBoost and NanoPWN are trademarks of ACS Motion Control Ltd.
EtherCAT is registered trademark and patented technology, licensed by Beckhoff Automation GmbH, Germany.
Any other companies and product names mentioned herein may be the trademarks of their respective owners.
www.acsmotioncontrol.com
support@acsmotioncontrol.com
sales@acsmotioncontrol.com
NOTICE
The information in this document is deemed to be correct at the time of publishing. ACS Motion Control reserves the right to
change specifications without notice. ACS Motion Control is not responsible for incidental, consequential, or special damages of
any kind in connection with using this document.
Version 3.10 2
SPiiPlus Modbus Setup Guide
Revision History
Date Revisions Description
September
3.02 New Release
2020
September
01 First Release
2014
Version 3.10 3
SPiiPlus Modbus Setup Guide
Format Description
Blue Hyperlink
Flagged Text
Version 3.10 4
SPiiPlus Modbus Setup Guide
Related Documents
Documents listed in the following table provide additional information related to this document.
The most updated version of the documents can be downloaded by authorized users from
www.acsmotioncontrol.com/downloads.
Document Description
HSSI Expansion Modules High-Speed Synchronous Serial Interface (HSSI) for expanded
Guide I/O, distributed axes, and nonstandard devices.
MC4U Control Module Detailed hardware information concerning the MC4U Control
Hardware Guide Module and its associated components.
SPiiPlus C Library C++ and Visual Basic® libraries for host PC applications. This
Reference guide is applicable for all the SPiiPlus motion control products.
SPiiPlus CM Hardware Installation and hardware connection with the SPiiPlus Control
Guide Module
SPiiPlus COM Library COM Methods, Properties, and Events for Communication with
Reference Guide the Controller.
SPiiPlus LF-CM Motion Detailed hardware information concerning the SPiiPlus LF-CM
Controller motion controller.
Version 3.10 5
SPiiPlus Modbus Setup Guide
Document Description
SPiiPlus PCI-4-8 Hardware Installation and hardware connection with the SPiiPlus PCI 4 or
Guide 8 axes
SPiiPlus Programmer's
An overview for programming SPiiPlus controllers.
Guide
SPiiPlus SAR and SAR-LT Installation and hardware connection with the SPiiPlus SAR and
Hardware Guide SAR-LT Controllers
Version 3.10 6
SPiiPlus Modbus Setup Guide
Table of Contents
1. Introduction 10
1.1 Document Scope 10
1.2 Related SPiiPlus Tools 10
2. Overview 11
2.1 References 11
2.2 SPiiPlus Modbus Functionality 11
3. SPiiPlus Modbus Slave Functionality 12
3.1 Transmission Modes 12
3.2 Data Format 12
3.3 Data Encoding 12
3.4 Data Addressing 12
4. SPiiPlus Modbus Supported Function Codes 13
4.1 SPiiPlus Modbus Addressing 13
4.2 ACSPL+ Standard Variables as Holding Registers 14
4.3 ACSPL+ Standard Variables as Coils 37
4.4 User-defined Variables as Holding Registers 38
5. ACSPL+ Commands 39
6. Word Order Configuration 43
7. SPiiPlus Modbus Communication Configuration 44
7.1 Serial RS232/RS422 44
7.2 SPiiPlus Modbus Slave Address 44
7.3 COM Port 44
7.4 Baud Rate 45
7.5 Parity, Stop Bit 46
7.6 SPiiPlus Modbus TCP/IP 46
7.7 SPiiPlus Modbus Unit Identifier 47
7.8 IP Address 47
8. SPiiPlus Modbus Master Functionality Support 48
8.1 Sending SPiiPlus Modbus Request 48
8.2 SPiiPlus Modbus Protocol Mode 48
8.3 32-bit Integer Registers 49
8.4 32-bit Floating Point Registers 50
Version 3.10 7
SPiiPlus Modbus Setup Guide
Version 3.10 8
SPiiPlus Modbus Setup Guide
List of Tables
Table 4-1. SPiiPlus Modbus Addressing 13
Table 4-2. SPiiPlus MODbus Addresses of all ACSPL+ Standard Variables 14
Table 4-3. SPiiPlus MODbus Representation of Variables as Coils 37
Table 5-1. SPiiPlus MODbus Representation of ACSPL+ Command as Coils 39
Table 5-2. SPiiPlus Modbus Representation of Some Auxiliary Holding Register 42
Version 3.10 9
SPiiPlus Modbus Setup Guide
1. Introduction
1. Introduction
1.1 Document Scope
This document describes how to setup the for SPiiPlus motion controllers.
This document is intended for the use of software engineers.
SPiiPlus Modbus is supported by ACS Motion Control's firmware SPiiPlusNT-SC Ver. 2.27 and higher.
Version 3.10 10
SPiiPlus Modbus Setup Guide
2. Overview
2. Overview
The SPiiPlus Modbus protocol has became the primary protocol for connection with OIT (Operator
Interface Terminal) devices, and in turn, the OIT is now very popular in the motion control industry.
SPiiPlus Modbus and OIT are used in machines for operator display or console applications. SPiiPlus
motion controllers support the SPiiPlus Modbus protocol and allow connecting different OIT devices
to SPiiPlus controllers.
Currently, the SPiiPlus Modbus protocol is supported over serial RS232 connection or over an
Ethernet TCP/IP link.
HMI terminals from the following suppliers were used with SPiiPlus during SPiiPlus Modbus testing:
> Maple Systems
> Parker Motion
> Eason Technologies
2.1 References
The SPiiPlus Modbus protocol implements a Master-Slave (Client-Server) model. The SPiiPlus
controller provides Slave (Server) functionality according to SPiiPlus Modbus community standards
as described in the following publications:
SPiiPlus Modbus Application Protocol Specification v1.1, December 2002. [1]
SPiiPlus Modbus over Serial Line Specification and Implementation v1.0, December 2002. [2]
SPiiPlus Modbus Messaging Implementation Guide v1.0, May 2002. [3]
In addition, the following documents provide relevant information concerning SPiiPlus Modbus
implementation:
SPiiPlus ACSPL+ Programmers Guide
SPiiPlus Setup Guide
Version 3.10 11
SPiiPlus Modbus Setup Guide
3. SPiiPlus Modbus Slave Functionality
The ACSII mode is optional in the SPiiPlus Modbus protocol and is not supported by the
SPiiPlus controller
Version 3.10 12
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
Standard (bit-wise)
Coils 1 - 9600 01, 05, 15
variables
Standard (numeric)
Holding Registers 40001 - 48000 03, 16
variables
User-defined
Holding Registers 48001 - 49800 03, 16
variables
Standard (numeric)
Holding Registers 50001 - 60000 03, 16
variables
Version 3.10 13
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
For example, to read the ACC variable of axis Z (index 2), you need to specify address 40005 in function 03 (read holding register).
The following table specifies SPiiPlus Modbus addresses of all ACSPL+ standard variables.
Table 4-2. SPiiPlus MODbus Addresses of all ACSPL+ Standard Variables
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Controller
AIN 40097 0096 Int RO 03 4
dependent
Controller
AOUT 40129 0128 Int RW 03,16 5
dependent
Version 3.10 14
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 15
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 16
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Controller
EXTIN 41313 1312 Int RO 03 42
dependent
Controller
EXTOUT 41345 1344 Int RW 03,16 43
dependent
Version 3.10 17
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 18
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Controller
IN 42241 2240 Int RO 03 71
dependent
Controller
ISENA 42465 2464 Int RW 03,16 78
dependent
Version 3.10 19
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Controller
OUT 42977 2976 Int RW 03,16 94
dependent
Version 3.10 20
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 21
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 22
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 23
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 24
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 25
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 26
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 27
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Controller
SYNC 47073 7072 Int RO 03 222
dependent
Controller
NST 47297 7296 Int RO 03 229
dependent
Version 3.10 28
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 29
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Controller
SOFTIME 50161 10160 Real RO 03 255
dependent
Version 3.10 30
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 31
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 32
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 33
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 34
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 35
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
SPiiPlus SPiiPlus
ACSPL+
Modbus SPiiPlus Modbus Variable Access Modbus Variable Tag
Standard Array Length
Register Address Field Type Rights Function Number
Variable
Number Code
Version 3.10 36
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
For example, to read AST bit 5 of axis Z (index 2), you need to specify address 0069 in function 01
(read coil).
The following table shows the SPiiPlus Modbus representation of such variables as coils:
Table 4-3. SPiiPlus MODbus Representation of Variables as Coils
Controller
EXTIN 5121 5120 Bit RO 01
Dependent
Controller
EXTOUT 5633 5632 Bit RW 01,05,15
Dependent
Controller
IN 6145 6144 Bit RO 01
Dependent
Version 3.10 37
SPiiPlus Modbus Setup Guide
4. SPiiPlus Modbus Supported Function Codes
Controller
OUT 6657 6656 Bit RW 01,05,15
Dependent
S_
9281 9280 Bit 032 RW 01,05,15
FMASK
globaltypetagnumber variable_name
where:
type - real or int keyword
number - A value greater then 1000 and less than 1900
variable_name - Unique name identifying a variable
The SPiiPlus Modbus address of a user variable is calculated as:
Version 3.10 38
SPiiPlus Modbus Setup Guide
5. ACSPL+ Commands
5. ACSPL+ Commands
In order to execute some of the ACSPL+ commands specified below, simply write 1 to the address that corresponds to the specified axis or buffer.
The ACSPL+ command is applied to any axis/buffer using the following formula:
For example, to enable motor Z (index 2), write 1 to the address 9603 in functions 05 or 15.
Reading these coils is allowed, but makes no sense. The controller always returns a zero value.
The following table shows the SPiiPlus Modbus representation of ACSPL+ command as coils
Table 5-1. SPiiPlus MODbus Representation of ACSPL+ Command as Coils
SPiiPlus
SPiiPlus SPiiPlus
ACSPL+ Modbus
Modbus Coil Modbus Field Type Array Length Access Rights Description
Command Function
Number Address
Code
Commutate
COMMUT 9633 9632 Bit 8 RW 01, 05, 15
motor
Stop motion
HALT 9681 9680 Bit 8 RW 01, 05, 15
smoothly
Version 3.10 39
SPiiPlus Modbus Setup Guide
5. ACSPL+ Commands
SPiiPlus
SPiiPlus SPiiPlus
ACSPL+ Modbus
Modbus Coil Modbus Field Type Array Length Access Rights Description
Command Function
Number Address
Code
Kill motion
KILL 9697 9696 Bit 8 RW 01, 05, 15
abruptly
Set current
ZERO 9713 9712 Bit 8 RW 01, 05, 15
position to zero
Program
RESUME 9777 9776 Bit 10 RW 01, 05, 15 resume (after
pause)
Jog motion in
JOG positive 9809 9808 Bit 8 RW 01, 05, 15 positive
direction
Jog motion in
JOG negative 9825 9824 Bit 8 RW 01, 05, 15 negative
direction
Version 3.10 40
SPiiPlus Modbus Setup Guide
5. ACSPL+ Commands
SPiiPlus
SPiiPlus SPiiPlus
ACSPL+ Modbus
Modbus Coil Modbus Field Type Array Length Access Rights Description
Command Function
Number Address
Code
Move to
PTP 9841 9840 Bit 8 RW 01, 05, 15 absolute
position
Multi-axes
PTP multi- move to
9857 9856 Bit 8 RW 01, 15
axes absolute
position
The table below shows the SPiiPlus Modbus representation of some auxiliary holding registers, which are used to specify target positions for PTP motion.
The address that is calculated as:
For example, to set Absolute position for Z axis (index 2), you need to specify address 49805 in function 16 (write holding register).
Version 3.10 41
SPiiPlus Modbus Setup Guide
5. ACSPL+ Commands
SPiiPlus SPiiPlus
SPiiPlus
Variable Modbus Modbus
Modbus Field Type Array Length Access Rights Description
Name Register Function
Address
number Code
Absolute
target position.
Absolute Used in PTP
49801 9800 Real 8 RW 03, 16
position and PTP multi-
axes
commands
Relative target
position. Used
Relative in PTP/r and
49833 9832 Real 8 RW 03, 16
position PTP/r multi-
axes
commands
Version 3.10 42
SPiiPlus Modbus Setup Guide
6. Word Order Configuration
Parameters
Parameters Description
Version 3.10 43
SPiiPlus Modbus Setup Guide
7. SPiiPlus Modbus Communication Configuration
CONID Controller ID
Type Integer
Size Scalar
Accessibility Read-write
Paramters
Version 3.10 44
SPiiPlus Modbus Setup Guide
7. SPiiPlus Modbus Communication Configuration
Paramters
getconf(302, channel)
Parameters Description
Parameters Definition
Version 3.10 45
SPiiPlus Modbus Setup Guide
7. SPiiPlus Modbus Communication Configuration
Function GETCONF with key 303 retrieves communication rates of the specified channel:
Parameters Description
Option is bit mask of the communication options. The bits are interpreted
as follows:
options > Bit 2: 0 - normal stop bit, 1 - extended stop bit
> Bit 3: 0 - no parity, 1 - check parity
> Bit 4: 0 - odd parity, 1 - even parity
Example
In order to save the specified setting in the controller, the following ACSPL+ program should be
prepared and saved in one of the available buffers.
The program has an AUTOEXEC label that means that it will automatically start after the
controller power-up.
AUTOEXEC:
CONID = 32 ! Set Slave address 32
setconf(302, 2, 2) ! Set COM2 for MODbus
communication
setconf(303, 2, 19200) ! Set baud rate 19200
setconf(304, 2, 0x18) ! Set even parity
STOP
Version 3.10 46
SPiiPlus Modbus Setup Guide
7. SPiiPlus Modbus Communication Configuration
The SPiiPlus Modbus interface provides only one TCP/IP connection socket. However, several
SPiiPlus Modbus transactions can be activated simultaneously on the same TCP connection. In this
case, the SPiiPlus Modbus transaction identifier specifies the corresponding transaction.
7.8 IP Address
The IP address of the controller is configured in the SPiiPlus MMI communication parameters
configuration window.
Two controllers which communicate using the modbus protocol must have the same
subnet. FOr information on the communication variable SUBNET, see SPiiPlus Command
& Variable Reference Guide.
Version 3.10 47
SPiiPlus Modbus Setup Guide
8. SPiiPlus Modbus Master Functionality Support
Parameters Description
variable Name of user-defined integer array (the array must be declared as local)
Return Value - The function returns the number of actually transmitted characters, if succeeds. If
the function fails, a run-time error is generated.
Remarks - The function transmits to the specified channel a number element of the specified
variable, starting from the start-index element.
If start-index and number are omitted, the function transmits all elements of the specified variable.
If number is omitted, the function transmits elements of the specified variable, starting from the
start-index element up to the last element.
The variable can be either integer or real array, depending on what type of Slave's register to be
written to.
Version 3.10 48
SPiiPlus Modbus Setup Guide
8. SPiiPlus Modbus Master Functionality Support
Version 3.10 49
SPiiPlus Modbus Setup Guide
8. SPiiPlus Modbus Master Functionality Support
10.0.0.102
slave_id = 10 !1 to 247 for Modbus Slave IDs
!open the Modbus TCP connection with slave device
setconf(308, slave_channel, 0) !close
setconf(308, slave_channel, slave_IP) !open
setconf(309,slave_channel,0) ! hi-word first order (default
configuration)
inp(slave_channel) ! purges off all characters received before in the
channel
reg = 0x10000 !Value to be written
i_rqst(0)=10 !Slave ID
i_rqst(1)=16 !Write Holding Register
i_rqst(2)=64 !Starting Address
i_rqst(3)=2 !Quantity of Registers
i_rqst(4)=4 !Byte Count
if (reg < 0)
i_rqst(5 )= (0xFFFF - floor((reg&0x7FFFFFFF)/256/256)) | 0x8000
else i_rqst(5)=floor(reg/256/256)
end
i_rqst(6)=reg&0x0000FFFF
result = outp(17, i_rqst, 0, 7) !send request through channel 17
result = inp(slave_channel, i_rspn, 0, 4, Timeout) !receive Slave
response
i_rqst(0)=10 ; i_rqst(1) = 3 ; i_rqst(2) = 64 ; i_rqst(3) = 2
result = outp(slave_channel, i_rqst, 0, 4) !send request to Slave
result = inp(slave_channel, i_rspn, 0, 5, Timeout) !receive Slave
response
stop
Version 3.10 50
SPiiPlus Modbus Setup Guide
8. SPiiPlus Modbus Master Functionality Support
Parameters Description
Return Value - The function returns the number of actually filled array elements, if succeeds.
If timeout occurs, the function returns zero.
If the function fails, a run-time error is generated.
Remarks - If the variable argument is omitted, the function purges off all characters received
before in the channel.
If the variable argument is specified, the function accepts one or more characters from the
specified channel and assigns them to the sequential elements of the variable array.
Version 3.10 51
SPiiPlus Modbus Setup Guide
8. SPiiPlus Modbus Master Functionality Support
Each ASCII character is represented by its numerical value and is stored in a separate element of the
array.
If start-index is specified, the first received character is assigned to the array element with the
specified index. If start-index is omitted, the assignment starts from the first element of the array.
If number is specified, the function does not return until the exact number of characters is
received. Any received character, including carriage return and other non-printable characters, is
stored in the array. In this case the function return value is strictly equal to number.
If number is omitted, the function continues receiving characters until the last element of array is
assigned or the carriage return character is received. The received carriage return is not stored in
the array. The function return indicates the number of assigned array elements.
If timeout is specified, the function waits for data not more then timeout milliseconds. If no data
within timeout, the function returns zero.
If timeout is omitted, the function checks for data for infinity, meaning that an infinite timeout is
specified.
SPiiPlus Modbus Protocol Mode
If the specified channel is defined for SPiiPlus Modbus protocol, the function retrieves data in the
variable array as follows:
> Element 0: Slave Address
> Element 1: Function Code
> Elements 2..N: Data according to SPiiPlus Modbus RTU response:
> Function Code = 01 (Read Coils), 02 (Read Inputs) - Response:
> ELEMENT 2: Byte Count = N
> Element 3..N+2: Coils Status as Bytes
> Function Code = 03 (Read Registers), 04 (Read Input Registers) - Response:
> Element 2: Byte Count = N*2
> Element 3..N+2: Registers Value
The function is for each SPiiPlus Modbus register in separate array element as 16-bit integer value.
Version 3.10 52
SPiiPlus Modbus Setup Guide
8. SPiiPlus Modbus Master Functionality Support
Parameters Description
Specifies the SPiiPlus Modbus TCP channel. Available channels are 17, 18
channel and 19. So, the controller can communicate with up to three SPiiPlus
Modbus Slave devices at the same time.
slaveIP specifies the SPiiPlus Modbus Slave device IP address. The slaveIP
slaveIP address is an unsigned 32-bit integer, where each byte represents the
corresponding part of dotted IP address.
Remarks - If Slave has the following address: 192.168.1.10, the slaveIP parameter should be 10*2^24
+ 1*2^16 + 168*2^8 + 192 = 167880896 (0x0A01A8C0).
If the specified channel is already open, the function closes the opened channel and then opens a
new one.
If slaveIP is zero, the function closes the TCP connection.
Version 3.10 53
SPiiPlus Modbus Setup Guide
9. SPiiPlus Modbus Setup Example
CONID=1
setconf(309,1,1) !Low word first, then Hi word
STOP
axisdef X=0,Y=1,Z=2,T=3,A=4,B=5,C=6,D=7
axisdef x=0,y=1,z=2,t=3,a=4,b=5,c=6,d=7
Version 3.10 54
SPiiPlus Modbus Setup Guide
9. SPiiPlus Modbus Setup Example
response
STOP
Version 3.10 55
5 HaTnufa St.
Yokne'am Illit 2066717
Israel
Tel: (+972) (4) 654 6440 Fax: (+972) (4) 654 6443