User Manual Csmioipa En-V3

Download as pdf or txt
Download as pdf or txt
You are on page 1of 111

CSMIO/IP-A

6-axis CNC controller


(+/-10V)

HARDWARE VERSION (software supported): FIRMWARE VERSION (software supported):


v2 (Mach3) v2.030 - v2.910 (Mach3)
v2 FP4 (simCNC, Mach3, Mach4) v3 (simCNC, Mach4)

© copyright CS-Lab s.c. 2018: Rev 3.0


www.cs-lab.eu

INDEX
1. General .................................................................................................................................................... 6
1.1 Signs used in this guide.................................................................................................................. 7
1.2 Content.......................................................................................................................................... 7
1.3 Standards compliance ................................................................................................................... 7
1.4 Specification .................................................................................................................................. 8
2. Safety ....................................................................................................................................................... 9
2.1 Example of direct E-Stop signal connection ................................................................................ 10
2.2 Example of E-Stop Signal connection using PILZ module............................................................. 11
3. Recommendations for mechanical installation...................................................................................... 12
3.1 Examples of components arrangement in a control cabinet. ...................................................... 12
3.1.1 Block scheme pictorial view ............................................................................................ 12
3.1.2 Control cabinet made by CS-Lab Company ..................................................................... 13
4. Connectors, controls and electrical installation of the device ............................................................... 14
4.1 Connectors arrangement on the device ...................................................................................... 14
4.2 Analog inputs/outputs connector................................................................................................ 15
4.2.1 Signals on a Terminal Block connector............................................................................ 16
4.2.2 Example – connection and configuration of FRO and SRO potentiometers .................... 17
4.3 Encoder inputs connector (0 / 1 / 2) ........................................................................................... 18
4.3.1 Signals on a Terminal Block connector............................................................................ 19
4.3.2 Example - connection of an encoder to Ch0 channel ...................................................... 19
4.4 Encoder inputs connector (3 / 4 / 5) ........................................................................................... 21
4.4.1 Signals on a terminal block connector ............................................................................ 21
4.5 Digital inputs connector (0-11) .................................................................................................... 22
4.5.1 Input circuits construction .............................................................................................. 23
4.5.2 Signals on a terminal block connector ............................................................................ 23
4.5.3 Examples - input signals connection ............................................................................... 24
4.6 Digital inputs connector (12-23) .................................................................................................. 26
4.6.1 Signals on a terminal block connector ............................................................................ 26
4.7 Digital outputs connector (0-15) ................................................................................................. 27
4.7.1 Output circuits construction............................................................................................ 28
4.7.2 Signals on a terminal block connector ............................................................................ 28
4.7.3 Example – spindle activation signal ................................................................................ 29
4.8 Expansion modules connector .................................................................................................... 30
4.9 Power connector ......................................................................................................................... 31
4.10 Communication connector – Ethernet ........................................................................................ 31
4.11 Recommended cables ................................................................................................................. 32
4.12 LED lights meaning ...................................................................................................................... 33

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 2


www.cs-lab.eu

4.12.1 Types and location of the LEDs ....................................................................................... 33


4.12.2 LEDs state description - STATx ........................................................................................ 34
4.13 Example - a scheme view of a 3-axis plotter (XYZ)....................................................................... 35
4.13.1 Power supply................................................................................................................... 35
4.13.2 Servo drives connection .................................................................................................. 36
4.13.3 Limit switches and E-STOP signal. ................................................................................... 37
4.13.4 Inverter connection using analog output. ....................................................................... 38
4.13.5 Automatic control of drives power supply (HV)............................................................... 39
5. Recommendations and drives selection (motors drives) ....................................................................... 40
6. Precise homing with encoder INDEX signal ........................................................................................... 41
6.1 Homing on "index" enable........................................................................................................... 41
7. LAN connection and configuration ........................................................................................................ 42
7.1 Direct connection to the PC ........................................................................................................ 42
7.1.1 Windows®XP configuration ............................................................................................. 42
7.1.2 Windows® 7 configuration .............................................................................................. 43
7.2 Local network with router and DHCP. ......................................................................................... 46
8. Mach3 program – general information ................................................................................................. 47
8.1 Recommended PC configuration ................................................................................................. 49
9. Software installation .............................................................................................................................. 50
9.1 Mach3 installation ....................................................................................................................... 50
9.2 Microsoft® .Net installation (older operating systems) ................................................................ 51
9.3 Installation of CSMIO/IP firmware ............................................................................................... 51
9.4 Administrator rights in Windows® Vista and Windows® 7 .......................................................... 53
10.Mach3 program configuration ............................................................................................................... 54
10.1 Configuration profile creation ..................................................................................................... 54
10.2 The first run ................................................................................................................................. 56
10.3 Configuration of axes used in a machine ..................................................................................... 58
10.4 Configuration of digital input signals ........................................................................................... 59
10.5 Configuration of digital output signals ........................................................................................ 61
10.6 Configuration of spindle and cooling ........................................................................................... 63
10.6.1 Analog output configuration........................................................................................... 63
10.6.2 Problematic PWM Control function ................................................................................ 64
10.7 Configuration of resolution, speed and acceleration .................................................................. 65
10.8 Configuration of directions, homing and software limits. ........................................................... 66
10.9 Configuration functions in a plug-in window ............................................................................... 68
10.9.1 Axes special functions ..................................................................................................... 68
10.9.2 Spindle configuration ...................................................................................................... 71
10.9.3 Override sources – feed speed and spindle revs corrections source selection ................. 72

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 3


www.cs-lab.eu

10.9.4 Plasma – additional functions for plasma cutters ........................................................... 73


10.9.5 Misc IO – Special functions related to I/O ....................................................................... 73
10.9.6 Other – other plugin functions ........................................................................................ 74
10.10Selection of inch/mm units.......................................................................................................... 76
10.11Some parameters in the General Config window ........................................................................ 76
11.PID controller (regulator) ....................................................................................................................... 78
11.1 What is PID controller.................................................................................................................. 78
11.2 PID controller terms (parameters) operation .............................................................................. 79
11.2.1 The proportional term – P ............................................................................................... 79
11.2.2 The integral term – I ....................................................................................................... 79
11.2.3 The Derivative term – D .................................................................................................. 80
11.2.4 The „sixth” sense – the mysterious K VFF parameter ........................................................ 80
11.3 The actual controller in CSMIO/IP-A ............................................................................................ 81
11.4 The order of controllers tuning ................................................................................................... 81
11.5 „PID Regulator Tuning” window .................................................................................................. 82
11.6 Manual PID regulator tuning procedure in CSMIO/IP-A .............................................................. 84
11.7 PID tuning – practical tips ............................................................................................................ 86
11.7.1 Slave axis ........................................................................................................................ 86
11.7.2 An axis with toothed racks (straight toothed)................................................................. 86
11.7.3 Laud noises at standstill .................................................................................................. 87
11.7.4 Cannot start tuning because an axis does not move....................................................... 87
11.7.5 An axis after activation jerks or starts to move with max. speed. ................................... 87
11.7.6 Cannot tune an axis ........................................................................................................ 87
11.8 Autotuning – Automatic PID tuning ............................................................................................. 88
12.First tests ............................................................................................................................................... 90
12.1 Checking the input signals ........................................................................................................... 90
12.2 Verification of axes scaling and motion directions ...................................................................... 91
12.3 HOMING and software limit switches test .................................................................................. 92
12.3.1 First homing .................................................................................................................... 92
12.3.2 SoftLimit switches ........................................................................................................... 92
12.4 Test of spindle and cooling. ......................................................................................................... 93
13.Sample treatment step by step.............................................................................................................. 94
13.1 Project and G-Code files preparing.............................................................................................. 94
13.2 Preparing machine and Mach3 program ..................................................................................... 98
13.3 We begin the treatment ............................................................................................................ 100
14.A few practical notes about Mach3 program and CSMIO/IP-A ............................................................ 102
15.VisualBasic® macros .............................................................................................................................. 104
15.1 Automatic tool-length measurement ........................................................................................ 104

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 4


www.cs-lab.eu

15.1.1 Configuration ................................................................................................................ 105


15.2 Automatic tool change macro ................................................................................................... 106
Addition A – Slave axis configuration example ......................................................................................... 107
Defining axes used in Mach3 program .............................................................................................. 107
Axis scaling and configuration ............................................................................................................ 107
Activation and choice of slave axis ..................................................................................................... 107
LIMIT and HOMING switches .............................................................................................................. 108
Axis direction settings ......................................................................................................................... 108
Manual feed test ................................................................................................................................ 108
Automatic reading of HOME switches position difference ................................................................. 108
Geometry correction mode activation ............................................................................................... 109
Addition B – –CSMIO/IP-A firmware update ............................................................................................. 110
How to check your current firmware version ..................................................................................... 110
Update application (uploader)............................................................................................................ 110
Plugin file update ................................................................................................................................ 111
Update verification ............................................................................................................................. 111

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 5


www.cs-lab.eu

1. General

The CSMIO/IP-A product was designed for professional customers, who want to equip their machine
tool with an efficient, stable and flexible CNC control system for a reasonable price.
The main designing assumption was working stability – hence the PC connection via Ethernet (its
physical layer is galvanically isolated and protocols we use ensure reliable and fast transmission even
in tough industrial environment). Practically any others interfaces do not provide the continuity and
reliability of transmission on such a high level as the ETHERNET. That is why it is currently the
worldwide standard for high-speed digital communication.
Another important assumption was simplicity of installation. CSMIO/IP-A does not require any external
electronics for proper operation. Inputs/outputs signals are inside optically isolated, filtered, protect-
ed against short circuit, overheating etc. Of course, all I/O signals are adjusted to industry standard
24V. The device is enclosed in a compact cover, mounted on a DIN-rail, what makes that mechanical
and electronic installation in a control cabinet takes less time and is even simpler.
CSMIO/IP-A p product can work with three different control software: simCNC (by CS-Lab), Mach3 and
Mach4 (by ArtSoft Newfangled Solutions). The oldest and the best known is Mach3 software. As it
showed up it provided great ability to adapt to specific requirements at low price. This way it became
very popular. Mach4 software provides even better flexibility, better stability of work and more fea-
tures.
Basing on many years of experience with many different types of CNC machines CS-Lab created the
simCNC software as an alternative to Mach3 and Mach4. It provides features that many users could
not get using other CNC control software. In between the S-curve profile which allows for keeping very
high axis accelerations without any noticeable knocking in a drive train system. Advanced optimization
and precision algorithms help you to achieve unusual dynamics and accuracy of machining. simCNC is
professional and on the other hand, simple to use. It provides reliability and maximum efficiency
(treatment is fast, dynamic and precise). SimCNC software is still actively developed to be the best
solution to replace the very expensive top control systems for CNC machines.
To meet customers' needs, who prefer +/- 10V servo drive control standard, the CSMIO/IP-A was
equipped in such an interface, and very fast encoder inputs allow for taking full advantage of encoders
with large number of pulses per rotation, and the same let you to achieve such a precision and speed,
which previously were unavailable in this price sector.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 6


www.cs-lab.eu

1.1 Signs used in this guide

Potential danger, possible injury risk

Useful information, tips

Warning, failure to comply with these warnings may lead to inappropriate functioning or dam-
age of the device

1.2 Content

The CSMIO/IP-A set includes terminal block adapters for easier wires connection in a control cabinet.
More content details below:
1. CSMIO/IP-A - CNC controller
2. 3x DB25 Terminal block (2 pcs.)
3. Ethernet connection wire
4. DB25 connection tape (6 pcs.)
5. „Phoenix” 3pin power plug
6. CD with electronic version of the user guide and software (always check if there is a
newer version on http://www.cs-lab.eu )

If you can't find any of these parts in your package please contact your supplier.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 7


www.cs-lab.eu

1.3 Standards compliance

The CSMIO/IP-A controllers were designed and made in accordance with the national and internation-
al standards for industrial control systems based on electronic components:
• Detailed requirements for programmable controllers: working characteristics, shock re-
sistance, safety etc. EN61131-2 (IEC1131-2), CSA 22.2, UL508
• Compliance with European Guidelines (low voltage, level of electromagnetic interference
Electromagnetic Compatibility), the CE marking.
• Electrical and non-combustible properties of insulation materials: UL 746C, UL 94, etc.
• The Product made in lead-free technology, RoHS compliant.

1.4 Specification

PARAMETER VALUE
Digital inputs number 24
Digital outputs number 16
Analog inputs number 4
Analog 0-10V outputs number 2
Analog +/-10V outputs number 6
Encoder inputs number 6
Supply voltage 24VDC +/-10%
Power consumption 5W
Maximum voltage on the in/out lines 30VDC
Maximum load of an output line 250mA
A voltage range of analog inputs 0-10VDC
Maximal load of analog outputs 50mA
Axis drives control type Analog +/-10V
Maximum frequency of an encoder signal 6MHz
Encoder type Incremental TTL (RS422)
Encoder signal kind Differential
PC connection Ethernet 10/100Mb
Ambient temperature range 0oC do +60oC
Relative humidity 10% to 95% (without condensation)

„KernelSpeed” a configuration parameter in Mach3 has no influence on CSMIO/IP working speed.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 8


www.cs-lab.eu

2. Safety

CSMIO / IP-A device is powered by 24V safe voltage. I/O control lines are optically isolated also PC
connection is galvanically isolated. The device does not constitute direct threat to health and life of a
user.
Designing a complete control system (control cabinet), you should draw attention to several issues, so
that the entire system does not pose any hazard during use.

Always use NC contacts (Normal Closed) for limit switches and safety switch. Thanks to it - a wiring
mistake or i.e. plug-ins disconnection will stop the machine.

Pay special attention to an emergency stop circuit. Control system must be designed in such a way
that when you press an emergency stop mushroom, controlled machine stops immediately in all axes.
You should also take into account the possibility of failure of particular system components such as
main controller, or axis drives.
For that purpose you can use (not required) a standard safety relay (i.e. from PILZ Company). The
safety switch mushroom, FAULT signals of drives and inverter and eventually other alarm signals – you
should connect to input circuits. Output or outputs - depending on a used module - should be con-
nected to CSMIO/IP-A controller, and defined as emergency stop. Outputs of security module should
be also connected to axis drives, inverters, etc. This way we get double protection – if, by
inappropriate configuration or CSMIO/IP-A controller failure - the emergency would not work, then
information goes to axis drives, which can properly respond to it. It works both sides: if drives would
not react, you always have the controller.

The CSMIO/IP-A controller in active state on the input line - defined as an E-Stop stops the motion on
all output channels within 1ms.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 9


www.cs-lab.eu

2.1 Example of direct E-Stop signal connection

In example above we used direct emergency signals connection. Such a connection is very easy and at
the same time it ensures satisfying safety level. Of course the easiest way is to connect the E-Stop only
to CSMIO/IP-A but then we lose double protection and it’s no longer so safe solution.

As a switch (mushroom) of emergency stop always use special switchers, specially designed for that.
They have different construction and you can be actually 100% sure that the circuit will be discon-
nected after pressing the mushroom. Using common NC contacts is dangerous. It’s worth to use con-
tacts from reputable companies. They are a little bit more expensive but their quality is much, much
better.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 10


www.cs-lab.eu

2.2 Example of E-Stop Signal connection using PILZ module

PILZ
PNOZ X7 24 V

Above you can see an example of E-Stop signal connection to the CSMIO/IP-A controller and to the
axis drives, using Pilz company safety relay (PNOZ X7 24V symbol). S1 is a reset button (switching on
the safety relay), S2 is the emergency stop. The safety relay is an option, it's not required.
This module has one input, and due to it, all the alarm sources are connected to this input (A1). In
addition to the mentioned emergency stop (S2) there are NC contacts - NC1 and NC2, which may be,
e.g. opening sensors for a cover and a control cabinet. Moreover, there are drives FAULT signals con-
nected in series. Two outputs of the safety relay were used as the E-Stop signal for the CSMIO/IP-A
controller and axis drives.
This combination assures that machine stops in case of failure on any axis (FAULT signals of the
drives), by pressing the emergency stop mushroom and opening the cabinet or the cover. Separation
of the safety relay output channels gives double protection to a system and significantly increases
reliability of the entire system.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 11


www.cs-lab.eu

3. Recommendations for mechanical installation

CSMIO/IP-A controller and DB->Terminal block connection modules were designed to be installed on a
standard DIN-rail. It’s the quickest and the best way of installation.

The controller uses a small amount of electricity and creates a negligible amount of heat. Aluminum
housing provides adequate cooling for electronics inside, even if an ambient temperature reaches
40OC.
As for the controller, there are no special precautions for ventilation and minimum distances. Howev-
er, usually, next to the controller in a control cabinet, there are also inverters, power supplies, motor
drives - these components emit a lot of heat, so you should always remember about their proper
location and proper ventilation of the cabinet.

3.1 Examples of components arrangement in a control cabinet.

3.1.1 Block scheme pictorial view

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 12


www.cs-lab.eu

3.1.2 Control cabinet made by CS-Lab Company

Caution is advised during mechanical and electrical installation. Poorly tightened cable may cause
many problems it’s also very difficult to find such a defect while launching/using the system.

In the picture above there is also CSMIO/IP-S controller placed (right side). It is a picture of the control
cabinet we use for testing new firmware versions. The wiring is doubled so we can easily switch be-
tween CSMIO/IP-A and IP-S models.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 13


www.cs-lab.eu

4. Connectors, controls and electrical installation of the device

4.1 Connectors arrangement on the device

Encoders signals Encoders inputs


Analog I/Os
(axes 3 / 4 / 5) (axes 0 / 1 / 2)

Power connector

Expansion modules
connector

Communication con-
nector (ETHERNET)
Digital inputs 0-11 Digital inputs 12-23 Digital outputs 0-15

Detail description of signals on each connector is placed in the next sections.

DBTerminal block connectors have the same pin numbers as DB connectors in CSMIO/IP-A device.
In example: 15 pin of DB25 connector match with the 15 pin on the terminal block.

Since 2015 there is FP4 version for Mach4 and simCNC software support (FP4 sign placed on CSMIO/IP
front panel)

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 14


www.cs-lab.eu

4.2 Analog inputs/outputs connector

PIN number Description


1 Analog output Ch0 (+/-10V)
2 Analog output Ch1 (+/-10V)
3 Analog output Ch2 (+/-10V)
4 Analog output Ch3 (+/-10V)
5 Analog output Ch4 (+/-10V) Analog outputs for servo drives (Ch0,
6 Analog output Ch5 (+/-10V) Ch1, Ch2, Ch3, Ch4, Ch5) always connect
with dedicated GND (GND Ch0, GND
7 Analog output 0 (0-10V)
Ch1…). Otherwise a servo drive will not
8 Analog output 1 (0-10V) work properly.
9 Analog input 0
10 Analog input 1
11 Analog input 2
12 Analog input 3 There is 50mA max. allowable load on
analog outputs. Exceeding this value may
13 10V (max. 50mA)
damage the output circuits.
14 GNDCh0
15 GNDCh1
16 GNDCh2
17 GNDCh3 Pay attention to not exceed the allowa-
ble 10V voltage on the analog inputs. It
18 GNDCh4
may cause damage of the device.
19 GNDCh5
20 GND
21 GND
22 GND
23 GND
Pay attention to not overload 10V volt-
24 GND age output. Its allowable load is 50mA.
25 GND

Connecting the analog signal to a plasma generator you should remember that it should be
galvanically isolated signal.
The connection with use of a simply voltage divider does not protect against surges and may
cause damage of the controller.

Axes by default are assigned to following channels: XCh0 / YCh1 / ZCh2 … CCh5. It can be
changed in plugin's configuration.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 15


www.cs-lab.eu

4.2.1 Signals on a Terminal Block connector

Axes by default are assigned to following chan-


nels: XCh0 / YCh1 / etc.
Pin numbers Entered in Mach3 program in
Port&Pins” on „Motor Outputs” tab do not matter.
If you want to assign other STEP/DIR channels
numbers to an axis you should do it in the
plugin's configuration: menu „ConfigConfig
PlugInsCONFIG”.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 16


www.cs-lab.eu

4.2.2 Example – connection and configuration of FRO and SRO potentiometers

Below you can see example of connection and configuration of potentiometers for feed rate correc-
tion and spindle revs regulation.

As you can see in the scheme, 10V placed on the analog


connector is very convenient and useful - thanks to it we do
not need any external power supply for the potentiometers.
The Potentiometer 1was connected to the analog input no.
0, and potentiometer 2 to analog input no 1. After the con-
nection you can check it by viewing analog inputs in the di-
agnostic window – menu „PlugIn ControlCSMIO_IP
plugin”, „Analog IO” tab.

If values on the analog inputs change with the position of the potentiometers' knobs, then only what
left is to configure the plugin. Open configuration win-
dow– menu „ConfigConfigPlugInsCONFIG”.
Choose „OverrideSrc.”.
Select „CSMIO-IP AIN 0” for „Feedrateoverride” – so
for feed rate regulation we use POT.1 potentiometer.
For „Spindlespeedoverride” select „CSMIO-IP AIN 1”,
so for spindle revs regulation we use POT.2 potenti-
ometer.
At the end click „Save” to keep this settings.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 17


www.cs-lab.eu

4.3 Encoder inputs connector (0 / 1 / 2)

PIN number Description


1 Enc. Ch0 A+
2 Enc. Ch0 B+
3 Enc. Ch0 I+
4 +5V
5 Enc. Ch1 A+
6 Enc. Ch1 B+
Pay attention to not exceed the per-
7 Enc. Ch1 I+
missible voltage (5VDC) on the input
8 +5V lines.
9 Enc. Ch2 A+
10 Enc. Ch2 B+
11 Enc. Ch2 I+
12 +5V
13 GND
14 Enc. Ch0 A- Max. PINs load is +5Vto 200mA / pin.
15 Enc. Ch0 B-
16 Enc. Ch0 I-
17 GND
18 Enc. Ch1 A-
19 Enc. Ch1 B- The encoder inputs of CSMIO/IP-A
20 Enc. Ch1 I- require differential signal. If connect-
21 GND ed encoder has a common output
22 Enc. Ch2 A- then you should use special convert-
23 Enc. Ch2 B- er. Connection of A-, B-, I- to GND
Oz
24 Enc. Ch2 I- causes axis position will be distorted.
25 GND

Axes by default are assigned to the following channels: XCh0 / YCh1 / ZCh2 … CCh5. It can be
changed in plugin configuration.

While "A, B" signals signage is quite standard, the "I" index signal is signed by encoder manufacturers
in different ways: "Z, C, … etc."

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 18


www.cs-lab.eu

4.3.1 Signals on a Terminal Block connector

4.3.2 Example - connection of an encoder to Ch0 channel

As you can see below, although an encoder requires many wires, the rule is easy and the connection is
not that hard. However the connection should be done carefully to avoid any unpleasant surprises
later.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 19


www.cs-lab.eu

In the example above there is a situation where to encoder input there is a motor encoder connected
directly. In case we use AC servo drives - to encoder input of CSMIO/IP-A you should connect encoder
output of a servo amplifier. So connection for AC servo looks as following:
[Motor encoder][servo amplifier (input)]
[servo amplifier(output)][CSMIO/IP-A controller]
Encoder cable shielding should be connected as close to CSMIO/IP controller and should be connected
only in one point.

Cables colors on the scheme above are random so please do not be influenced by that.
Please note so the signals connection is made using twisted-type cable and also to not mix the signals
in cable pairs, so to not connect e.g. A+, B- signals etc. in one pair. It cause irregularities in a machine
work - also later it may be difficult to find a reason of the problems.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 20


www.cs-lab.eu

4.4 Encoder inputs connector (3 / 4 / 5)

PIN number Description


1 Enc. Ch3 A+
2 Enc. Ch3 B+
3 Enc. Ch3 I+
4 +5V
5 Enc. Ch4 A+
6 Enc. Ch4 B+
7 Enc. Ch4 I+
Pay attention to not exceed the per-
8 +5V
missible voltage (5VDC) on input
9 Enc. Ch5 A+
lines.
10 Enc. Ch5 B+
11 Enc. Ch5 I+
12 +5V
13 GND
14 Enc. Ch3 A- Max PIN load is +5Vto 200mA per pin.
15 Enc. Ch3 B-
16 Enc. Ch3 I-
17 GND
18 Enc. Ch4 A-
19 Enc. Ch4 B- CSMIO/IP-A encoder inputs require
20 Enc. Ch4 I- differential signal. If encoder has
21 GND
common output then you must use a
22 Enc. Ch5 A-
special converter. Connection of A-,
23 Enc. Ch5 B- Oz
B-, I- signals to GND causes that axis
24 Enc. Ch5 I-
position will be distorted.
25 GND

Axes by default are assigned to the following channels: XCh0 / YCh1 / ZCh2 … CCh5. It can be
changed in plugin configuration.
While "A, B" signals signage is quite a standard, the "I" index signal is signed by encoder manufacturers
in different ways: "Z, C, … etc."

4.4.1 Signals on a terminal block connector

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 21


www.cs-lab.eu

4.5 Digital inputs connector (0-11)

PIN number Description


1 Input 0 (+)
2 Input 1 (+)
3 Input 2 (+)
4 Input 3 (+)
5 Input 4 (+)
6 Input 5 (+)
7 Input 6 (+)
8 Input 7 (+) Pay special attention to not exceed
9 Input 8 (+) the permissible voltage (30VDC) on
10 Input 9 (+) input lines. It may cause damage of
11 Input 10 (+)
the device.
12 Input 11 (+)
13 Not used (GND)
14 Input 0 (-)
15 Input 1 (-)
16 Input 2 (-)
17 Input 3 (-) In „Port&Pins” configuration of
18 Input 4 (-) Mach3 program the value in „Pin”
19 Input 5 (-) column does not mean a pin number
20 Input 6 (-) on CSMIO/IP connector but input
21 Input 7 (-) number.
22 Input 8 (-) So typing „10” mean Input 10, and so
23 Input 9 (-) PinOz11(+) and pin 24(-) on CSMIO/IP
24 Input 10 (-) connector.
25 Input 11 (-)

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 22


www.cs-lab.eu

4.5.1 Input circuits construction

Below - simplified scheme of CSMIO/IP-A input circuits. On the scheme 0 – 11 Inputs are marked as IN
0 – 11.

4.5.2 Signals on a terminal block connector

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 23


www.cs-lab.eu

4.5.3 Examples - input signals connection

4.5.3.1 PNP type inductive sensor


In this example the sensor with PNP type output was connected to input no. 1. So in this case in
Mach3 program we give port=10 / pin=1.

4.5.3.2 NPN type inductive sensor


In this example the sensor with NPN type output was connected to input no. 3. So in this case in
Mach3 program we give port=10 / pin=3.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 24


www.cs-lab.eu

4.5.3.3 Common NC type switch


In this example the NC type limit switch was connected to CSMIO/IP input no. 8. So in this case in
Mach3 program we give port=10 / pin=8.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 25


www.cs-lab.eu

4.6 Digital inputs connector (12-23)

PIN number Description


1 Input 12 (+)
2 Input 13 (+)
3 Input 14 (+)
4 Input 15 (+)
5 Input 16 (+)
6 Input 17 (+)
7 Input 18 (+)
8 Input 19 (+)
9 Input 20 (+)
10 Input 21 (+)
11 Input 22 (+)
12 Input 23 (+)
Pay special attention to not exceed
13 Not used (GND)
the permissible voltage (30VDC) on
14 Input 12 (-)
input lines. It may cause damage of
15 Input 13 (-)
the device.
16 Input 14 (-)
17 Input 15 (-)
18 Input 16 (-)
19 Input 17 (-)
20 Input 18 (-)
21 Input 19 (-) Inputs: 12 – 23 have identical con-
22 Input 20 (-) struction like inputs: 0 -11. Look at
23 Input 21 (-) Oz 0 – 1 description in the previ-
inputs:
24 Input 22 (-) ous section.
25 Input 23 (-)

4.6.1 Signals on a terminal block connector

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 26


www.cs-lab.eu

4.7 Digital outputs connector (0-15)

PIN number Description


1 24V power supply for outputs: 0-3
2 Output 0
3 Output 2
4 24V power supply for outputs:4-7
5 Output 4
6 Output 6
7 24V power supply for outputs: 8-11
8 Output 8 The outputs have 250mA load. You
9 Output 10 must also pay attention to large in-
10 24V power supply for outputs: 12-15 ductances if connected it is recom-
11 Output 12
mended to use additional surge led,
12 Output 14
preferablu as close to a coil.
13 GND (not used)
14 0V GND for outputs: 0-3
15 Output 1
16 Output 3
17 0V GND for outputs: 4-7
18 Output 5
In „Port&Pins” configuration of
19 Output 7
Mach3 program the value in „Pin”
20 0V GND for outputs: 8-11
column does not mean a pin number
21 Output 9
on CSMIO/IP connector but output
22 Output 11
number.
23 0V GND for outputs: 12-15 Oz
So typing „9” mean output 9, and so
24 Output 13
Pin 21 on CSMIO/IP connector.
25 Output 15

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 27


www.cs-lab.eu

4.7.1 Output circuits construction


As you can see in the scheme, every out-
put is optically isolated. The outputs are
divided, four in each group.
Each group is controlled by specialized
integrated circuit VNQ860. These circuits
work in PNP logic so the high state (+24V)
is the active state.
VNQ860 circuits are not supplied by the
same source as CSMIO/IP. If they were
then the opto-isolation wouldn't have
much sense. Therefore we must remem-
ber to supply the power to every group of
outputs that we use.

If we do not care about separation of the CSMIO/IP Controller power supply and digital outputs poten-
tials and we want to use one power supply source then we can connect together power supply of all
the groups (pins 1, 4, 7, 10) and connect to +24V of controller's power supply. Then of course we have
to also connect power return lines, 0V (pins 14, 17, 20, 23) to GND of CSMIO/IP power supply.

4.7.2 Signals on a terminal block connector

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 28


www.cs-lab.eu

4.7.3 Example – spindle activation signal


In the example below, basing on configuration of outputs that activates the spindle (M3), we can see
exactly the following dependence:
[Mach3 program signal]  [CSMIO/IP signal]  [Pin on CSMIO/IP connector]

PIN number Description


1 24V Power for 0-3 outputs
2 Output 0
3 Output 2
4 Power 24V for 4-7 outputs
5 Output 4
6 Output 6
7 Power 24V for 8-11 outputs
8 Output 8
9 Output 10
10 Power 24V for 12-15 outputs
11 Output 12
12 Output 14
13 GND (not used)
14 GND 0V for 0-3 outputs
15 Output 1
16 Output 3
17 GND 0V for 4-7 outputs
18 Output 5
19 Output 7
20 GND 0V for 8-11 outputs
21 Output 9
22 Output 11
23 GND 0V for 12-15 outputs
24 Output 13
25 Output 15

Power of outputs group Output no. 5 CSMIO/IP


(4 – 7) Controll signal (e.g. to an inverter)

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 29


www.cs-lab.eu

4.8 Expansion modules connector

PIN numbers Description


1 CAN H
2 RS232 RxD
3 RS232 TxD
4 -
5 GND
6 CAN L
7 RS485 B-
8 RS485 A+
9 -

The connector is only designed for expansion modules by CS-Lab s.c. company. You shouldn't
copnnect here any other devices, PC etc.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 30


www.cs-lab.eu

4.9 Power connector

PIN number Description


1 Power – 24V DC
2 GND
3 ground

View of the plug from the


side of connecting wires

Pay special attention to not exceed the permissible power voltage (30VDC). It may
cause damage of the device
If you use in the system such inductive loads as electromagnets, solenoids, electromag-
netic clutches – it is recommended to use separate 24V power supply for the mentioned
receivers and separate for CSMIO / IP-S.

4.10 Communication connector – Ethernet

PIN number Description


1 TX+
2 TX-
3 Rx+
4 -
5 -
6 RX-
7 -
8 -

It is recommended to use shielded cable FTP or STP cat.6.


A network interface has no Auto MDI-MDIX function. So when we connect CSMIO/IP-S
directly to a computer we should use so-called crossover cable. If you connect it to the
network switch or router - use a non-crossover cable.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 31


www.cs-lab.eu

4.11 Recommended cables

CONNECTIONS TYPE RECOMMENDED CABLE

Digital In/out Minimum cross-section 0,25mm2 (AWG-23)

Cross-section 0,25mm2 (AWG-23)- shielded or pair of signal-


Analog In/out
to-mass wires twisted together along the entire length

Encoder signals Cross-section 0,25mm2 (AWG-23) - shielded - twisted. Even-


tually PC FTP cable. You should remember that for pair of
signals (e.g. A+/A-) always use twisted pair of cables.

Drives control Cross-section 0,25mm2 (AWG-23) - shielded - twisted. Even-


tually PC FTP cable. You should remember that for pair of
– analog signals +/-10V
signals (e.g. Out Analog Ch0 /GND Ch0) always use twisted
pair of cables.

Ethernet communication wire Standard network cable, shielded - FTP, cat. 6.

Power supply Min. cross-over 0,5mm2(AWG-20)

CAN expansion modules If modules are installed on the same DIN rail, right next to
the controller, you can use DB9 plugs clamped on a 9 wire
tape. If module is installed farther then you should use so-
called shielded twisted pair. (FTP or STP).

During mechanical and electrical montage – particular caution is advised. Poorly tightened cable
may cause many troubles, it is also very difficult to find such a defect during launching/using the
system.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 32


www.cs-lab.eu

4.12 LED lights meaning


On the front panel of CSMIO/IP device, there are groups of LEDs that simplify verifying the correctness
of electric installation and diagnostic of such components as HOME switches, LIMIT switches and safe-
ty switches (E-Stop) etc.

4.12.1 Types and location of the LEDs

Digital inputs 0-23 LEDs, Error LEDs and


communication ports activity LEDs

Digital outputs 0-15 LEDs and device


state information (STATx) LEDs

• Digital inputs and outputs LEDs do not require more explanations. For example, if you give the
signal to the input no. 5, the IN5 LED lights up. Similarly, if you switch on the output no. 2 –
OUT2 LED lights up.
• CAN LED diode lights up when at least one expansion module is connected and when the
communication on the CAN bus is correct.
• RS485 diode lights up if there is a communication on RS485 bus.
• RS232 diode lights up if there is a communication on RS232 port.
• ETHERNET diode lights up if the controller communicates with a PC computer.
• ERR0-ERR2 diodes indicate controller errors. During normal operation, any of these diodes
shouldn’t light up. If any of them light up you should contact service – “contact” tab on
http://www.cs-lab.eu website.
• STAT0-STAT3 diodes indicate controller status, information about the status is very helpful in-
formation that CS-Lab service should get if there are any problems during the device work. Be-
low you find detailed description of the lights meaning.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 33


www.cs-lab.eu

4.12.2 LEDs state description - STATx


Diodes state
Description
STATx
Standby, waiting for transmission of configuration parameters from a com-
puter. It is a default state after switching power on, before communication
with Mach3 program.

Readiness state. It means that the device works correctly there are no alarm
signals, such as E-Stop or LIMIT. CSMIO/IP-A waits for the commands from
the PC.

It means that one or more axes are currently on a manual motion mode
(JOG).

It means that one or more axes are homing at the moment (HOMING).

Buffering motion trajectory data.

The controller is in a G31 command mode (tool measurement sensor


touched, scanning etc).

Mode of an interpolated motion on a trajectory– CNC program or MDI


command performing. Also movement commands from the script level
(macro) of Mach3 program cause this state.

Emergency stop. It means active state appears on an input line defined as


the E-Stop or E-Stop call from the Mach3 level.

Alarm state. It appears when controller work was stopped as a result of


problems detection. This state can be caused by such situations like: FAULT
signal of servo drive, hardware limit switch signal, working area exceeded at
SOFT-LIMIT function switched on, etc.
Others. This state shows appears on case of other additional functions such
as: rigid tapping, etc.

Explanations:

 LED light is off

 LED lights continuously

 LED light flashes

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 34


www.cs-lab.eu

4.13 Example - a scheme view of a 3-axis plotter (XYZ)


4.13.1 Power supply

In the example single DC 24V power sup-


ply was used. Usually there is no sense to
use separate power supply for CSMIO/IP
and for other components, unless there
were expensive/sensitive components
used in the system or components that
generate much interference (large sole-
noid valves, contactors, electromagnetic
brakes etc.).

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 35


www.cs-lab.eu

4.13.2 Servo drives connection


Below you can see sample servo drive connection. We can differentiate three basic signals functions:
encoder, analog signal +/-10V and digital control signals.
Encoder signals inform the controller about current motor (axis) position. Analog +/-10V signal con-
trols motor rpm via servo amplifier and control signals are: drive activation, fault reset and a signal
that informs about alarm (e.g. overload, overheat etc.) of the drive.

Servo amplifiers form different manufacturers may differ a bit but the main rule is practically the
same. Signals names are changed, sometimes I/Os work as PNP and sometimes as NPN, but almost
always servo amplifier connection looks like shown above.

Encoder signals and analog +/- 10V signal always connect using Twisted-Pair cable.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 36


www.cs-lab.eu

4.13.3 Limit switches and E-STOP signal.


The easiest option ensuring a necessary safety is to use two (2) switches, both sides of an axis. In this
case one switch works only as safety LIMIT signal and the other has double function: LIMIT and HOM-
ING.
In our example of three axis plotter, we are homing the X and Y axes on the negative side (towards
decreasing coordinates), so the double function will be performed by LIMIT-- switches. And we are
homing Z axis upward and up move usually, on CNC machines is a movement in the positive direction.
So for Z axis the double function will be performed by LIMIT++ switch.

CSMIO/IP-A signal PIN number on Function Mach3 Mach3 Pin


CSMIO/IP-A con- Port (Port&Pins)
nector (Port&Pins)
Input 3(+) 4 X LIMIT-- 10 3
(X HOME)

Input 4(+) 5 X LIMIT++ 10 4

Input 5(+) 6 Y LIMIT-- 10 5


(Y HOME)

Input 6(+) 7 Y LIMIT ++ 10 6

Input 7(+) 8 Z LIMIT-- 10 7

Input 8(+) 9 Z LIMIT++ 10 8


(Z HOME)
Input 9(+) 10 E-STOP 10 9

Input 3-9(-) 17-23 ‘-‘ potential for inputs: 3-9

Optical inputs in CSMIO/IP-A require both ‘+’ and ‘-‘ potentials connection. The ‘-‘ Pins of digital inputs
used are connected to 0V potential - see "Power supply" section.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 37


www.cs-lab.eu

4.13.4 Inverter connection using analog output.

In the example above you can see connection of Commander SK for spindle support.

CSMIO/IP-A outputs in use:


CSMIO/IP-A signal CSMIO/IP-A connector PIN number on Inverter function
u CSMIO/IP-A
connector
Analog GND connection DB25 – Analog I/O 20 AGND – reference potential for
analog input of speed command

Analog output 0 DB25 – Analog I/O 7 Voltage input 0-10V of speed com-
mand
CSMIO/IP digital outputs Power DB25 – Digital outputs (0-15) 17
GND

Outputs 4 and 5 power DB25 – Digital outputs (0-15) 4 24V output for controlling signals

Digital output 4 DB25 – Digital outputs (0-15) 5 Right revs switching

Digital output 5 DB25 – Digital outputs (0-15) 18 Left revs switching

Note that every group of CSMIO/IP-A digital outputs can work on a different potential. In this case we
used 24V output of the inverter.

Do no forget to set the configuration parameters of the inverter properly. Incorrect settings may cause
- in the best case - the inverter error, in the worst - the spindle motor becomes permanently damaged
(such damage is not covered by warranty).

Mach3 program configuration, concerning use of a spindle with revs control was described in chapter
10 - "Mach3 Configuration".

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 38


www.cs-lab.eu

4.13.5 Automatic control of drives power supply (HV)

The CSMIO/IP-A controller allows for automatic


control of drives power supply and eventually
also some other devices. This function is set in
the menu „Config  ConfigPlugIns  CSMIO/IP-A
CONFIG”. The logic of the output operation, de-
fined as so called „HV Enable” is very easy. Volt-
age is switched on at the moment of Mach pro-
gram “Reset” request and stays “on” till one of
the following conditions exist:
• FAULT signal from any axis drive
• E-Stop signal (the emergency stop mushroom pressed)
• Limit switch activation
• Loss of communication with the Mach3 program
• Error of position/speed regulators inside the CSMIO/IP-A

Below - an example of output connection, used as „HV Enable”.

When you use large contactors for switching off the power, check if the coil doesn’t take more than
250mA. If so, use smaller transmitter and turn on the bigger one with it. With a large contactor it’s
good to have a diode and noise-suppression condenser to eliminate the overvoltages generated
during switching off the coil.

The „HV Enable” voltage control function is performed automatically by the CSMIO/IP-A controller.
Response time for events that cause the disconnection is less than 1ms.

In this example we used digital output no. 2. Power connection of 0-3 inputs group was shown in
"Power supply" section.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 39


www.cs-lab.eu

5. Recommendations and drives selection (motors drives)


Choosing drives to work under CSMIO/IP-A control - first of all - you should make sure that they can be
controlled by analog signal +/- 10V and that the drive has encoder input in differential 5V standard. It
is also possible use double feedback - then we connect linear encoders mounted on machine's axes
and encoder outputs from drives we leave free.
When you already have a manufacturer in mind and drive model you must choose its power. It is not
that easy. To weak drive will reduce your machine operation capacity and to strong will increase your
costs unnecessarily. Some manufacturers of drives/motors provide special applications that help to
choose the drive power. Users that do not have too much experience can use the examples below to
get familiar with this subject.

• Easy XYZ plotter (e.g. plasma cutter), low acceleration (400mm/s2), linear bearings, drive
on toothed bars, gear: 5mm feed/motor rev. Max velocity: 15m/min.
o X axis drive (gate) 2 x 0,2kW (slave axis)
o Y axis drive 0,2kW
o Z axis drive 0,2kW

• XYZ Milling plotter with movable table (e.g. plexi-type materials cutting etc.), acceleration
(700mm/s2), linear bearings, drive on ball screws, gear: 10mm feed/motor rev for X and Y
axes, 5mm feed/motor rev for Z axis. Max. velocity: (XY) 30m/min.
o X axis drive (table) 1,2 kW
o Y axis drive 0,7kW
o Z axis drive 0,7kW

• Lathe for steel treatment, acceleration (500mm/s2), prism bearings, drive on screws,
gear: 5mm feed/motor rev. Max. velocity 15m/min.
o Z axis drive 2,2 kW
o X axis drive 1,2kW

In the examples above there are rather minimal power values. You need to remember that pulleys
should be selected this way that maximal working feed rate corresponds to nominal motor revs. If the
motor has nominal 3000 RPM, and in practice it will revolve maximally 1000 RPM - because of for ex-
ample drive screw vibrations - then 66% of potential drive power will be wasted... Moreover - incor-
rectly selected gear will cause bigger problems with PID tuning. So it's really worth to spend some time
on the mechanical parts to get good parameters of our machine working at the end.
Temporarily the motor can have higher RPM than nominal but I suggest keeping the "surplus" for shift
motions.

In case of old machine retrofit it is worth to consider drives replacement, even if they seem to work
fine at first sight. Demagnetized motors and dried up capacitors may decrease working quality and
after short period of time may cause machine failure.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 40


www.cs-lab.eu

6. Precise homing with encoder INDEX signal


Encoder INDEX signal highly improves accuracy and repeatability of homing. As in CSMIO/IP-A it works
with incremental encoders, after switching on the power the control system does not know the axes
position. That is why we need to perform homing (or reference travel as other may call it). Homing
precision is especially important in situation when careful workpiece machining will be stopped be-
cause of some reason (like power failure). After system restart we must perform homing and it de-
pends on homing precision how will the machine fit into the dimension.
Homing "on index" sets motor rotor almost always in the same position. If there are any deviations -
they may result from poor mechanics condition, in example machine large backlash.
It is always worth to connect index signal for encoder output of servo drive to get more precise hom-
ing.

6.1 Homing on "index" enable


In plugin configuration window there is pos-
sibility to select homing mode for each axis:
common or on index.
The configuration was described in detail in
Chapter 10.

Remember to enter pulses per rev value in „Encoder Pulses/Rev” area. It is necessary so the function
that checks if there is a safe distance between HOME switch activation and INDEX position works cor-
rect. Too small distance may cause homing deviations of even whole motor shaft rev.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 41


www.cs-lab.eu

7. LAN connection and configuration

Do not use wireless WiFi connection. In a wireless network the time of data transmission is longer and
requires many re-transmissions. It may be a problem during our work.

7.1 Direct connection to the PC


CSMIO/IP-A controller can be connected directly to the PC, without any switches or routers. With this
connection, you should remember to use the crossover cable. CSMIO/IP set includes the cable. Below
– how to perform the wiring.

Plug-in 1 Cable color Plug-in 2


1 white-orange 3
2 orange 6
3 white-green 1
4 blue 7
5 white-blue 8
6 green 2
7 white-brown 4
8 brown 5

For direct connection, you should set static IP address on your computer: 10.1.1.1 and mask:
255.255.255.0.

7.1.1 Windows®XP configuration

• Click right mouse button on „My Network Places” icon and select „Properties” position
from the menu. You will see window with the icons/icon of network connections.

• Click right mouse button on the icon of a connection we want to use to communicate
with CSMIO/IP (usually it is “local connection”) – then choose „Properties”.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 42


www.cs-lab.eu

• In this window – select the „Internet protocol (TCP/IP)” position and click left mouse but-
ton on the „Properties”.

• In this window enter the IP address: 10.1.1.1 and mask: 255.255.255.0. Click “OK”.
• Close the window.
• The network is now set to work with CSMIO/IP.

7.1.2 Windows® 7 configuration

In control panel we choose „View network status and tasks”

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 43


www.cs-lab.eu

Next - select „Change adapter settings”.

Click with right mouse button and select “Properties” of network connection.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 44


www.cs-lab.eu

Double click on TCP/IPv4 protocol, and next enter the address IP: 10.1.1.1 and network mask:
255.255.255.0. Confirm with OK.

After CSMIO/IP-A controller initialize it tries to set its IP automatically at first and for that it sends re-
quest to the DHCP sever. After three failed attempts, with no response from the server- the default IP
address is set to: 10.1.1.2. It does not last longer than 10 sec. but you should remember to wait 10
sec. after switching the power on, to let the controller communicate.

Even though the ethernet connection is highly resistant to interference - remember to use shielded
cables, especialy if you use serves or spindles with high power.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 45


www.cs-lab.eu

7.2 Local network with router and DHCP.


If we plug the CSMIO/IP-A controller in to the computer network where is a router that allocates IP
addresses, the device automatically downloads the address and network mask settings.
Usually there is no need to know what IP address was assigned to the device because the plug-in and
the application that updates the controller software automatically searches the CSMIO/IP-A in the
network. However if you want to know what IP address the controller has, you can find it out from the
router’s configuration page (the controller is called CSMIO-IP-xxxx, where xxxx are the last four figures
of MAC’s hardware address). Here is an example screenshot of the DHCP server where you can see
the CSMIO/IP device in the network.

When you connect the CSMIO/IP-A controller to a network with router, you should use a non-
crossover cable (so called Straight Thru, or 1:1). The wiring way is shown below:

Plug 1 Cable color Plug 2


1 white-orange 1
2 orange 2
3 white-green 3
4 blue 4
5 white-blue 5
6 green 6
7 White-brown 7
8 brown 8

In most cases, the crossover cable attached to the device will also work, because most routers have
function of cable type auto-detect, so called AutoMDX. Do not worry. In no case, there will be no
damage, even if the router does not have the function mentioned above.

Even though the ethernet connection is highly resistant to interference - remember to use shielded
cables, especialy if you use serves or spindles with high power.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 46


www.cs-lab.eu

8. Mach3 program – general information


Mach3 software of the ArtSoft® Company has developed over many years and during these years, it
gathered many users. For relatively low price (~170USD) we get complete solution for multi-axis CNC
machining. Key benefits of the program are:
• Flexibility
o Ability to create own user interfaces, transparent and suited to specific machine
applications. There is a special visual editor where you can create the Mach3 in-
terface design from the beginning or use already existing project. On the inter-
net, there are many ready solutions. Below – one of the most visually attractive
interfaces available on www.machmotion.com.

o Ability to self-extend the functionality of the program through macros, written in


simple and known by many people - VisualBasic®. It allows you to implement a
variety of measurement probes, automatic tool length measurement, automatic
storage of tools in many variants etc.
o Plug-ins support, which further extend functions of the program and allows for
cooperation with outside motion controllers. Connection with CSMIO/IP-A con-
troller is made by that plug-in, made by our company.
• Easy to use
o Those, who are already little familiar with CNC machines are able to learn all the
general functions and rules of using the Mach3 program – within one day.
o Configuration of the key parameters is transparent and intuitive, so they can be
quickly adjusted to the requirements of a specific machine.
• Dynamic analysis of the trajectory
o CNC program is analyzed in advance, so it allows for optimal adjustment of mo-
tion speed at every point of trajectory. Thus, the program is done quickly, but
with full smoothness of the motion.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 47


www.cs-lab.eu

CS-Lab Company is an authorized distributor of Mach3 and Mach4 software in Poland. If you would
like to buy the license, please contact us: [email protected].

Please note that Mach3 program serves only to operate a machine - it is not possible to design, draw,
etc. Indeed, there are functions that allow for CNC code generation for simple operations, but it is
better to have a CAM type program, like ArtCam, MasterCam, etc.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 48


www.cs-lab.eu

8.1 Recommended PC configuration


The Mach3 program does not have any unreasonable requirements about a PC computer, unless tool
paths you use take even up to tens of megabytes – then we would recommend a bit faster computer.
Even simulation of a runtime with so large paths will follow more efficiently on faster PC computer.

Recommended PC configuration:
• Processor Intel CoreDuo 2GHz
• 2GB RAM
• Graphics card 512MB

On a computer used to control a machine there should not be any other software except Windows®
and Mach3 program installed. Designing and all other tasks should be performed on other computer.
A computer used to control the machine can be connected to a computer network, but remember
about good anti-virus protection.

It is recommended to disable all visual effects in Windows® system, also a screensaver. Set power
scheme – “always on”.
If the computer is placed with the rest of control system in a control cabinet – then remember to close
the Windows® system before turning off the power. Otherwise, it may be very soon necessary to rein-
stall the operating system.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 49


www.cs-lab.eu

9. Software installation
Before we begin our work, we should install the Mach3 software and plugin that ensures proper co-
operation of the program and the CSMIO/IP controller on a PC computer.

9.1 Mach3 installation


The latest version of Mach3 software you can download from ArtSoft® website:
http://www.machsupport.com/downloads.php
After the file is downloaded, you should launch it and follow the screen instructions. Generally, you
should just press the „Next” button. In the window with components to install selection – uncheck the
„Parallel Port Driver” position. It is a parallel port driver that is unused with CSMIO/IP controller.

Next, we can create a configuration profile, which we are going use. You can also create the configura-
tion profile later. If we want to do it during the installation, then – click selecting your machine type:

• Mill profile - milling machine


• Turn profile - lathe
• Plasma - plasma or gas cutter

After we click one of the buttons we will see the window where
we can enter our configuration profile name. Enter e.g.
„MyMillingmachine_400x250_CSMIO_IP”. Avoid spaces and spe-
cial characters (underscore is allowed).

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 50


www.cs-lab.eu

9.2 Microsoft® .Net installation (older operating systems)


If you use OS older than Windows® 7, it may be necessary to install Microsoft® .Net. This program
is available on Microsoft® website and on CS-Lab Company website: http://www.cs-
lab.eu/en/upload/pub/dotNetFx35setup.exe
For proper installation, you have to be connected to the Internet. The installation is automatic you
should only approve next steps and restart your computer when it is finished.

9.3 Installation of CSMIO/IP firmware

CSMIO/IP firmware is provided as a convenient-to-use installer. Setup proces is very fast and does not
take even a minute.

Run setup file.

Click „Next” and … again „Next” – there are no reasons to modify installed components.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 51


www.cs-lab.eu

Next we can choose a path for Mach3 program and decide if software should be installed for all users.
Mostly we just leave the default settings and then double-click „Next”.

Name selection in start menu - mostly there is no need to change anything here also - click „Next” and
again „Next” when you see a summary review.

After this lasting few seconds setup another window will show up - with question if you want to launch
CSMIO/IP controller firmware that serves to controller updates. If you are not sure if you have the
latest version, you can update it now. Update process was described in B Addition.

If you do not want to update now deselect the „Launch CSMIO/IP-A Controller Firmware” option and
click „Finish”.

Mach 3 plugin and CSMIO/IP-A firmware must be the same version. Update the controller firmware if
needed. The update process is described in the addition section - „CSMIO/IP software updating”.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 52


www.cs-lab.eu

9.4 Administrator rights in Windows® Vista and Windows® 7

It is recommended to launch Mach3 program in Win-


dows® Vista, Windows® 7 and Windows® 8 operation
systems with administrator rights.

Open „C:\Mach3” directory, find Mach3.exe file and


click right mouse button. Select “Properties” position
from the menu, and next select the „Compatibility”
tab.

Next, select the „Launch this program as administra-


tor” and click „OK”.

From now, the Mach3 program will always run with


administrator rights.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 53


www.cs-lab.eu

10.Mach3 program configuration


After software installation, you should configure it all to match the settings and the controlled ma-
chine with whole its electrical system.
Elements that should be configured:
• Scale-up of each axis (namely how many pulses per millimeter/inch).
• Speed and acceleration settings for each axis.
• Assignment of in/out signals:
o Signals of homing sensors – HOME
o Signals of axis limits – LIMIT
o Signal of an emergency stop – ESTOP
o Signal of tool measurement probe/ homing etc.
o Additional inputs signals e.g. desktop buttons etc.
o Alarm signals of servo drives – FAULT
o Drives reset – DRV_RESET
o Drives voltage enabling– HV_ENABLE
o Outputs that activate spindle, cooling etc.
• Slave axis configuration (if used).
• VisualBasic® scripts configuration.
• Axis range settings for the SoftLimit function (software limits).
• Homing speed settings
• Program design customization (eventually).
Configuration is an individual matter for each machine, anyway in the next sections you will find some
general rules.

10.1 Configuration profile creation

If during the installation you did not create a configuration profile (Chapter 9), it is worth to create it
now. In this profile will all the settings of configured machine tool be saved.

After Mach3 software installation, you should see new icons on your desktop, „Mach3 Loader” icon
among them - launch the program clicking on it. A „Session Profile” window will appear. To create a
profile click on the „Create Profile” button.

In next window, enter a profile name: e.g.


„MyMillingMachine_400x250_CSMIO_IP"
Avoid spaces and special signs (an underscore
is allowed). From the „Clone from” list select:
• Mach3Mill, if you are creating milling machine profile.
• Mach3Turn, if you are creating lathe profile.
• Plasma, if you are creating plasma or gas cutter profile.

Next click „OK” – profile was created. In the „Session Profile” window click now „Cancel” – we are
going to create a shortcut on the desktop, it will launch the Mach3 program with our configuration.
Copy the „Mach3 Loader” icon (CTRL+C, and next CTRL+V on the keyboard). Click this icon with right

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 54


www.cs-lab.eu

mouse button and select “Properties”. On “General” tab enter any name e.g. “MyMillingMachine”, go
to the „Shortcut” tab and in the „Target element” enter:
C:\Mach3\Mach3.exe /p MyMillingMachine_400x250_CSMIO_IP

Type the special signs „/”and „\” carefully, in correct places. You can type any other name of course
instead of "MyMillingMachine..." but it must be identical as your profile name.
After all click „OK” and now, you can launch the program using the shortcut you have just created.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 55


www.cs-lab.eu

10.2 The first run

Before that you should connect Ethernet cable of the controller to a computer or plug it into a com-
puter network. You must switch the controller power ON at least 10 seconds earlier.
After you launch the program for the first time,
you will see the window of license approval.
You should fill in the check box and agree by
clicking the button as shown in the picture.

If plugin for CSMIO/IP-A was installed properly, as described in the chapter 9 - then there should this
window appear:

Select motion controller type –


„CSMIO_IP/P” and fill in the check
box: „Don’t ask me again”, so Mach3
in this configuration profile will al-
ways use CSMIO/IP-A controller. Con-
firm your selection with “OK".

Before you start other parameters configuration, you can verify if communication with the controller
is correct. Click on the „Plugin Control” top menu and select the „ CSMIO_IPplugin” position.
You will see CSMIO/IP diagnostic window. If the "Con-
nection status” light is green it means that the soft-
ware is installed correctly and communication between
Mach3 program CSMIO/IP controller is also correct.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 56


www.cs-lab.eu

If during Mach3 program launching the „CSMIO/IP connection” window will


appear and the „Connection status” light in the diagnostic window will flash
red, it means that the CSMIO/IP-A was not found in the network. In that
case, check some possible reasons:
:
• The Ethernet cable must be connected to the device before turning the power on. If it
was not:
o Close Mach3
o Turn CSMIO/IP-A off
o Connect Ethernet cable to the Internet
o Turn on CSMIO/IP-A power
o Wait 10 seconds
o Start the Mach3 program again
• If CSMIO/IP-A connected directly to PC, verify if network settings are correct – described
in chapter 7. Quit Mach3 program, verify the settings and change if necessary, start the
program again.
• If at least 10 seconds have not passed from turning on the device power to Mach3
launching –quit the program and launch it again.
• You can try to use a different network cable.

If these tips did not help and there is still no connection, you should contact your distributor or the CS-
Lab company.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 57


www.cs-lab.eu

10.3 Configuration of axes used in a machine

At the beginning, you should activate support of the


axes you are going to use. Select the
menu position „ConfigPorts and Pins” and next „Mo-
tor Outputs” tab.
Select axes we are using by clicking „Enabled” - the
green ticks will appear next to them. We do not acti-
vate slave axes in that window.

• Example 1: 3 axis plotter X, Y, Z.


o Activate the X, Y, Z-axes.
• Example 2: 3 axis plotter + rotary A axis, Y-axis on two drives (slave axis).
o Activate the X, Y, Z, A axes (the slave axis shouldn’t be activated here).

Using CSMIO/IP-A controller the settings in „Motor Outputs” related to STEP/DIR signals do not mat-
ter. The only active parameter is axes enabling and disabling („Enabled” column).

By default axes are assigned to the following


+/-10V and encoder channels: X[0] / Y[1] /
etc.
Pin numbers entered in Mach3, in „Port&Pins”
window, „Motor Outputs” tab do not matter.
To assign other channel numbers to the axes
you should do it in plugin configuration: menu
„ConfigConfigPlugIns  CONFIG”.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 58


www.cs-lab.eu

10.4 Configuration of digital input signals

Configuration of the input signals we call from menu


„ConfigPorts and Pins”, by selecting „Input Signals”
tab. A list of standard input signals will appear and you
can assign these signals to hardware inputs of
CSMIO/IP-A controller.

Columns explanation:
Column name Description
Enabled • Green tick means we are using the signal.
• Red X cross means that we are not interested in that signal and it
should not be used
Port # Input port number – for CSMIO/IP it is always port no. 10.
Pin Number Pin number, means the CSMIO/IP input number, e.g. input no. 14 of the
controller we put here as a pin no. 14.
It doesn’t mean a pin number on CSMIO/IP connector.
Active Low Signal polarization change, it is a selection whether the signal should be
active at 0V or at 24V.
Emulated Signal emulation with keyboard shortcut. In CSMIO/IP-A controller, only
some signals may be emulated: „THC On”, „THC Up”, „THC Dn” and
„Probe”.
HotKey Keyboard shortcut for signal emulation.

Detailed description of the signals is available in ArtSoft® documentation: www.machsupport.com,


below we present short description of the most important.

Signal signature Description


X++, Y++, Z++, A++, B++, C++ Hardware signals of positive limits. A machine stops immediately
when one of the signals becomes active.
X--, Y--, Z--, A--, B--, C-- Hardware signals of negative limits. A machine stops immediately
when one of the signals becomes active.
X Home, Y Home, Z Home, Signals of axis HOMING
A Home, B Home, C Home
INPUT1 – INPUT4 Input signals for general use. They can be used e.g. in VisualBasic®
scripts.
Probe Signals of a measurement probe, e.g. sensor of tool length meas-
urement sensor.
Index Index from a spindle for rotational/threading speed measurement.
Limit Ovrd Motion forcing, if one of LIMIT signals is active. It is useful to allow
for move back off the limit switch. If we are using Auto Limit Over-
ride function – this signal is useless.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 59


www.cs-lab.eu

EStop Emergency stop. You should pay special attention to set this signal
correctly and test how it is functioning.
THC On For plasma cutters. During plasma cutting a machine stops automat-
ically, when this signal becomes inactive.
THC Up For plasma cutters. Signal of automatic torch high control, an active
state causes Z-axis rising.
THC Down For plasma cutters. Signal of automatic torch high control, an active
state causes Z-axis lowering.
OEM Trig 1-15 External function releasing. Using these signals, you can e.g. start a
program with a button on a machine desktop.
JOG X++, JOG Y++, JOG Z++, Signals that allow for motion of each axis in manual mode (move-
JOG A++ ment in a positive direction).
JOG X--, JOG Y--, JOG Z--, JOG Signals that allow for motion of each axis in manual mode (move-
A-- ment in a negative direction).

If you are not sure on which input in the CSMIO/IP-A is one of


the signals connected, then you can open diagnostic window
from the „Plugin Control/CSMIO_IP_P_plugin” menu, go to the
„Digital IO” tab and in the „Digital inputs” area there is a pre-
view of all inputs state of our controller. Then you can just e.g.
pressing a limit switch manually to look at a screen, and see,
which input changed its state. You can also watch the LEDs
located on the controller.

After all input signals configuration it's worth to


check, whether it has been done correctly. To do so,
close the configuration window, approving with „OK”
and then go to the „Diagnostics” screen (top button
bar in Mach3 program window).
Under the „Input Signals current State”, there are
controls, which show current state of input signals of
the Mach3 program. Now you can press the emer-
gency stop button, the „Emergency” LED should start
flashing. The same way you can check other signals,
e.g. by pressing manually the limit, homing switches
and so on.

Check carefully the E-STOP signal functioning before you continue your configuration. It is very im-
portant to have possibility to stop the machine immediately, especially during the first run and config-
uration!

In the CSMIO/IP controller, there was additionally implemented fault signals support from servo
drives. Details in the „Additional configuration functions” chapter.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 60


www.cs-lab.eu

Since the CSMIO/IP v1.07 software version


there is a possibility to give the same input
PIN as LIMIT and HOME. You should disa-
ble the „Home Sw. Safety” option in „Gen-
eral Config” window of Mach3 program.
With „Home Sw. Safety” option disabled,
the LIMIT signals are not monitored during
homing.

10.5 Configuration of digital output signals


Digital outputs are used for such tasks as e.g. spin-
dle/torch activation, activation/releasing brakes of elec-
tromagnetic motors, cooling, solenoids valves activation,
etc.
The outputs configuration is almost the same as the
inputs configuration.

Columns explanation:
Name of the column Description
Enabled • Green tick means we are using the signal.
• Red X cross means that we are not interested in that signal and it
should not be used
Port # Input port number – for CSMIO/IP-A it is always port no. 10.
Pin Number Pin number, means CSMIO/IP-A output number, e.g. output no. 5 of the
controller we put here as pin no. 5.
It doesn’t mean a pin number on CSMIO/IP connector.
Active Low Signal polarization change, it is a selection whether the signal should be
active at 0V or at 24V.

Detailed description of the signals is available in ArtSoft® documentation: www.machsupport.com,


below we present short description of the most important.

Signal signature Description


ENABLE1-6 Signals of axis enabling. Can be used e.g. as an enabling signals (Ser-
vo ON) in servo drives. For axes in use (section 10.3), the signals
pass into active state after pressing RESET on Mach3 screen. If Mach
goes into stop state, the signals are disabled.
OUTPUT1-20 Universal outputs. Can be used to control a spindle, cooling as well
as from VisualBasic scripts level.
Current Hi/Low Current limit output for stepper motors. In CSMIO/IP-A this signal is
not used.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 61


www.cs-lab.eu

Again, during system startup the diagnostic window from the


“PlugIn Control” menu may be helpful. In „Digital IO” tab, you
can view current output signals state and assess if any prob-
lems result from some wrong configuration or from some
incorrect electrical connection.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 62


www.cs-lab.eu

10.6 Configuration of spindle and cooling


First of all, you must configure output signals. For
that you should select „Config/Ports and Pins” from
menu and go to „Spindle setup” tab. In „Relay con-
trol” group set Mach3 output signals numbers (these
are not the numbers of CSMIO/IP outputs, see previ-
ous section about output signals configuration). Here
you can select the OUTPUT1-6 signals.

There are two options: for right revs (M3) and left revs (M4). We must uncheck „Disable Spindle Re-
lays” box of course - that means no support for spindle activation.

In „Flood Mist Control” group placed below, we set control of cooling activation just the same way.
Here you can also take the OUTPUT1-6 signals. If we want to use the control function of cooling activa-
tion, we must deselect the „Disable Flood/Mist Relays” box. There are two possible modes of cooling:
water mist (M7) and water stream (M8). For each mode, we give the right output signal. You can also
give the same signal for both modes, so then it will be activated with both the M7 and M8 command
from the G-Code. Additionally in the „Delay” area, you can also set the delay you want after cooling
activation before machining begins.

Time delay for spindle switching on and off is also an important parameter. In particular, the high-revs
spindles need a little time after activation to speed up to the required speed. In the „General Parame-
ters” group, we can define independently an acceleration and deceleration time for right and left revs.

CW Delay Spin UP Acceleration time for right revs


CCW Delay Spin UP Acceleration time for left revs
CW Delay Spin DOWN Deceleration time for right revs
CCW Delay Spin DOWN Deceleration time for left revs

10.6.1 Analog output configuration


The last things we configure in the „Ports and Pins” window are parameters related to the control of a
rotational speed through the digital input of CSMIO/IP-A. In the „ModBus Spindle – use step/dir as
well” group select the „Enabled” area, in the „Reg” box enter value of 64, and in the „Max ADC count”
– 4095. Now you can close the „Port and Pins” configuration window, click „Apply” and „OK.”
For correct control of the revs you have to specify what range of the
revs our spindle has (including the inverter settings and eventual pul-
leys). Select the „Config/Spindle Pulleys...” menu position. If we use
one ratio then enter „Min” and „Max” revs. Approve with „OK.”

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 63


www.cs-lab.eu

Last thing related to the revs control is a choice of analog output, which
will be used.
• select from the menu „Config/Config PlugIns”
• click „CONFIG” next to the „CSMIO/IP”
• go to „Spindle” tab, in the „Spindle DAC” group
• select „Enable”
• on the „Select Analog Output” list select analog output.

Again, during the startup the diagnostic window may be helpful.


In the „Analog IO” tab, you can preview current voltages on
analog inputs and outputs. When we configure the spindle,
then in a MDI tab you can enter e.g. M3 (enter), S2000 (enter).
It should cause spindle activation (right revs) and setting the
revs on: 2000 rpm. In the diagnostic window, you can see digital
outputs and voltage on analog output activated.

Additionally the icon informs us which analog input is config-


ured to control a spindle.

Check carefully inverter settings before spindle activation, incorrect configuration may cause perma-
nent damage of the spindle, which is not covered by warranty.
Pay attention if the left/right revs are activated correctly – machining with incorrect revs direction may
cause damage of a tool or a work piece.

10.6.2 Problematic PWM Control function


A frequent reason of problems with analog inputs is „PWM Control” option set in Mach3. On first
sight, sometimes we do not see this position is marked, especially when „Use Spindle Motor Output”
position is not active. Below you can see correct and incorrect settings.

If „PWM Control” is check-marked but inactive you must first mark “Use Spindle Motor Output” and
then click „Step/Dir Motor” and again uncheck the „Use Spindle Motor Output”. Selecting „Step/Dir
Motor” in this place doesn’t mean that spindle will be controlled by STEP/DIR signals. Configuration of
a spindle as an axis you will perform in plugin. It is described later in this guide, chapter: “Additional
configuration functions in plugin’s window”.
The „PWM Control” option should be unchecked because it’s incompatible with CSMIO/IP and leads to
errors during spindle revs control.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 64


www.cs-lab.eu

10.7 Configuration of resolution, speed and acceleration


Before we start working, it is absolutely necessary to
correctly set resolution (so called scaling) of axes and to
set their max. speed and acceleration -in the Mach3
program - „Config/Motor Tuning” menu. In the window,
first select an axis you want to configure, next enter
parameters and click „SAVE AXIS SETTINGS”. Now you
can select and set the next axis.

If we forget to click on „SAVE AXIS SETTINGS” all the


changes will not be saved.
For correct axis scaling you must know how many steps falls on a unit (millimeter, inch or degree, and
if the axis is set as linear or angular). In case of CSMIO/IP-A steps number is pulses number of encoder
per motor rev (with all edges). You should also include eventual electronic pulley in servo amplifier.
To explain how to calculate we present an example below:
• A linear axis is driven by servo motor with 10000 p/rev encoder
(with all edges).
• Servo drive is configured without electronic pulley.
• To transfer the drive there was a ball screw used - pitch 10mm.
• No ratio between motor and a screw.

𝑠𝑡𝑒𝑝𝑠 𝑛𝑢𝑚𝑏𝑒𝑟 𝑝𝑒𝑟 𝑚𝑜𝑡𝑜𝑟 𝑟𝑒𝑣


𝑆𝑡𝑒𝑝𝑠𝑃𝑒𝑟 =
𝑓𝑒𝑒𝑑 𝑝𝑒𝑟 𝑚𝑜𝑡𝑜𝑟 𝑟𝑒𝑣

So there are 10000 pulses per motor rev and 10mm feed rate. Dividing these values 10000p/10mm
we get 1000p/mm value, which we enter into „Steps Per” box in configuration window.
In „Velocity” area, we set an axis speed. If we are using millimeters as an unit then speed is shown in
mm/min, if we use degrees - degree/min, if inch - inch/min. Max. speed value is very individual and
depends on what motors, drives etc. were used. For the first tests, we recommend to enter relatively
small value e.g. 2000mm/min, in case something went wrong, we will always have enough time to
press an emergency button E-STOP.
In „Acceleration” area, we define acceleration for an axis. At the beginning, we recommend to enter
something about 400mm/s2. Later you can set this parameter experimentally by assessing the ma-
chine working.

Remember to click „SAVE AXIS SETTINGS” for each axis after finished edition. Perform the configura-
tion as follows:
Open „Motor Tuning” window Select axis („Axis Selection”) Enter the parameters”SAVE AXIS
SETTINGS”Select the next axisetc. Click „OK” and close the window.

„Step pulse” and „dir pulse” areas do not matter for CSMIO/IP. They are used to control via LPT port
and they define width and STEP/DIR pulse time.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 65


www.cs-lab.eu

10.8 Configuration of directions, homing and software limits.


When axes are scaled and their speed is config-
ured, it is important to set directions correctly.
Useful function is possibility to indicate software
limits - the machine working range.
Select in the menu „ConfigHoming/Limits” posi-
tion. In the window, we have configuration param-
eters for each axis:

Column name Description


Reversed Switching this field, you change direction of an axis motion.
Soft Max Maximum range of motion in positive direction
Soft Min Maximum range of motion in negative direction
Slow Zone In CSMIO/IP-A, this field is not used. In LPT, it is used to define a section
for braking near to the end of working range. CSMIO/IP-A controller auto-
matically calculates the braking distance including acceleration defined for
the axis. The best way is to enter 0 in this box.
Home Off. Starting v1.07 version software - in this field we can define a distance of
going off from HOME sensor after homing. If we enter e.g. 5mm then the
controller will home the axis on a HOME sensor and after that it will go off
with 5mm and reset axis position. You can also enter a negative value - in
some cases it us very useful.
Home Neg As a standard an axis homing goes into negative direction. However we
usually home the Z axis upwards and the down motion is a negative direc-
tion. So we have to do Z axis homing in a positive direction. Home Neg is
to select homing direction.
Auto Zero This area is not used on the CSMIO/IP-A controller. After homing – the axis
is always zeroed.
Speed % Homing speed. It is shown as a percent of maximum speed defined in
„Motor Tuning”. For the first tests we recommend 10%.

Attention! – you can enable and disable software limits. If they are enabled, the program cannot con-
trol an overrun of working area. The only protections are hardware LIMIT switches.

In firmware versions v2.051 and higher you can choose a mode of work of the "Home off.". By default
it works like described above in the table but after changing the working mode in a configuration win-
dow of plugin the „Home Off.” parameter won't cause home off but only set a machine coordinate on
demanded value after homing.
This function mode selection can be done in a „Special Functions/Other” tab, „LegacyHomeOffset”
option.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 66


www.cs-lab.eu

When software limits option is active („Soft


Limit” on a Mach3 main screen), the
CSMIO/IP-A controller does not let for any
move if axes of a machine are not homed.
Current status of the function is shown by a
green light around „Soft Limit” button.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 67


www.cs-lab.eu

10.9 Configuration functions in a plug-in window


The configuration window of plugin is activated by „ConfigConfig Plugins” menu position, click
„CONFIG” next to the CSMIO/IP name.
If there were different types of CSMIO/IP controllers installed then click “Config” next to the controller
that will be used.

10.9.1 Axes special functions

Axis configuration is divided into the following groups:

• Servo Alarm Input


• Channels Selection
• Index Homing
• PID Regulator
• Slave Axis Configuration

10.9.1.1 Servo Alarm Input - an alarm input in servo drives

The CSMIO/IP- controller has a possibility of autonomous reaction to fault signals from servo drives. A
drive may generate a fault e.g. in case of overload. If the fault signal appears the CSMIO/IP stops all
axis within 0,1ms. It is worth to configure in servo drives dynamic brake function, which will reduce
distance that an axis move with the power of inertia.

Enabled Function enable/disable


Low Active Active signal in a Low state
Pin Input number on CSMIO/IP-A controller

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 68


www.cs-lab.eu

10.9.1.2 +/-10V and encoder channels selection


CSMIO/IP-A controllers have six (6) +/-10V output channels and 6 encoder inputs. By default for X axis
channel 0 is assigned, for Y - channel 1, for Z - channel 2 and so on.
For each axis we can assign any channel +/10V and any encoder input.
We select +/-10V output from "DAC Output Channel" list, and the encoder input is selected from „En-
coder Input Channel” list. In this place we can also change direction of encoder counting by clicking
„Enc. ReverseDirection” option.

10.9.1.3 Index Homing


If we connected INDEX signal from servo drive to the controller, then we can enable precise homing
function with INDEX signal use. It greatly improves homing repeatability, even when homing switches
have quite large spread.

Enabled Function enable/disable


Encoder Pulses/Rev Pulses number per encoder rev (with all edges)

10.9.1.4 A PID controller


„PID Tuning” button opens a PID control-
ler tuning window. Tuning is described in
chapter 11.

10.9.1.5 Slave Axis Configuration


In large machines there are often two motors used to support single axis – one on each side. Even
though in Mach3 program - „Config” menu there is a position to configure slave axes, we provide here
autonomous support for the function, to increase reliability level.
Some users implement a slave axis by linking two drives. Slave axis implementation in CSMIO/IP-A has
one significant advantage - available function of machine geometry correction (e.g. gantry perpendicu-
larity). It is more specifically described in the addition „Slave axis configuration example”. In brief – for
each X, Y, Z-axis you can define one slave axis. The slave axes can be A, B and C.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 69


www.cs-lab.eu

Configuration parameters:

Slave Axis selection, which one will be slave for the currently se-
lected one
Mode Slave axis working mode
Geometry Correction Geometry correction value of a machine tool

Slave axis working mode:

No Correction Mode without correction – Master and Slave axes work just
like “glued” together.
Read Difference Homing position difference readout between Master and
Slave axes. After homing the value will be entered in „Ge-
ometry Correction” area.
Sl. Correction After homing, Slave axis is “freed” for a while and geometry
correction motion is done. It allows for e.g. perpendicularity
settings in gentry machines.

In „A” addition you can find slave axis configuration example described.
If you want to use slave axis function – read the addition „Slave axis configuration example”.

CS-Lab Company has made every effort to ensure reliability of the CSMIO/IP-A controller. However,
the company does not take any responsibility for any mechanics damage as a result of wrong configu-
ration and any eventual failure or software errors of CSMIO/IP-A controller.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 70


www.cs-lab.eu

10.9.2 Spindle configuration


CSMIO/IP controller has got many additional functions according to a spindle. The options were divid-
ed into following groups:

Spindle DAC Selection of analog output for spindle revs control


Spindle Encoder CSMIO-ENC module configuration
(CSMIO_ENC)
Spindle Alarm Input Spindle drive alarm signal input configuration
Spindle Axis Spindle operation through axis channel (STEP/DIR) options

10.9.2.1 SpindleDAC – revs control output


Enabled Enabling revs control on analog 0-10V output
Select Analog Output Analog output selection

10.9.2.2 Spindle Encoder – spindle encoder module


P/Rev Pulses number per spindle rev (with all edges)
Inv. Direction Analog output number selection

10.9.2.3 SpindleAxis – spindle control through a servodrive


EnableSpindleAxis Function enable
ReversedDirection Revs direction change
Encoder Input Channel STEP/DIR output channel selection for spindle operation (it's
important to remember that for “common” axis operation
there are only 5 channels left so it's impossible to use 6 axes)
Enc. ReverseDirection Encoder counting direction change
DAC Output Channel Output channel number +/-10V
PID Regulator PID regulator tuning
Align at stop Automatic spindle setting in demanded angle always after
turning off. This function is especially useful when spindle axis,
for tool change, must be set in a defined position. „Enabled”
activates the function and below you can enter the angle for
spindle setting.
Speed/AccelConfig Configuration of pulses per spindle drive motor rev and ac-
celeration. The acceleration value entered here is a time in
which the spindle gets max. revs (defined in Spindle Pulleys).

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 71


www.cs-lab.eu

10.9.3 Override sources – feed speed and spindle revs corrections source selection
Mach3 software allows for feed speed and spindle
speed change during work. As a standard it’s ad-
justed using two sliders and a main screen. If ma-
chine tool is equipped with additional panel with
buttons it would be easier to adjust the speed
using knobs placed on it. With CSMIO/IP-A we can
also control feed speed and spindle revs using
potentiometers connected to analog inputs.

.
In „Override sources” tab you can set whether the speed
adjustment should be done through Mach3 screen, analog
inputs or additional MPG encoder axes, etc.
„Feed rate override” applies to feed speed and „Spindle
speed override” to spindle revs.

The following options are available:


Mach Regulation via PC (slider on a Mach’s screen)
CSMIO/IP AIN 0/1/2/3 Analog inputs of CSMIO/IP controller
MPG AIN 0/1 Analog inputs of CSMIO-MPG module
MPG AXIS 4/5/6 4, 5 or 6 axis of MPG encoder jog (pendant)

For both feed speed and spindle revs speed control we can define digital input of CSMIO/IP, which will
force control from Mach3 screen – „Forced Mach override”. Thanks to this you can easily and quickly
switch the source of speed defining– e.g. using a switcher placed on a machine’s panel.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 72


www.cs-lab.eu

10.9.4 Plasma – additional functions for plasma cutters


In current software version we have one option
available – torch high control via analog input.
Configuration is only about to enable the func-
tion, select polarization, and to select analog
input.
The function, with normal polarization, works
the way that for 0V on analog input there is
correction entered in THC min, and for 10V -
THC max configured in Mach3 screen. With
reversed polarization – for 0V there is THC max,
and for 10V - THC min.

Enabled Function enable/disable


Inversed Polarity Polarization reverse
Select input Selection of analog input for torch high control

Attention! – Plasma generators are dangerous because of high voltage on electrodes. To analog inputs
of CSMIO/IP you should connect only galvanically isolated signal and also well filtered (it’s good to
place RC filter in the connector). Incompetent connection of signals of a plasma generator to
CSMIO/IP controller may cause its damage.

10.9.5 Misc IO – Special functions related to I/O

10.9.5.1 Servo drive RESET


Any CSMIO/IP controller output can be as-
signed as a RESET signal for servo drives. On
the output there will be a short pulse every
time when in Mach3 the RESET function will be
called.

10.9.5.2 HV Enable
In this place you can – for any CSMIO/IP con-
troller output – assign a function of main voltage activation (e.g. for servo drives). In many alarm situa-
tions like e.g. E-STOP signal activation, additionally main supply disconnection it may increase security
level.
Output defined as „HV Enable” will be active during normal work of CSMIO/IP controller, in case of any
alarm situations, such as limit switch or E-Stop touch, the signal will become inactive.

10.9.5.3 Input signals filter


Sometimes happens that on a large machine tool, electromagnetic noises level is so high that standard
hardware limits, mounted in CSMIO/IP are not enough and so there appear false signals e.g. LIMIT, E-
STOP etc., causing machine work brake.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 73


www.cs-lab.eu

In such situations the input signals filtering function may be very helpful. We define here filtering time.
I do not recommend using high values because of the fact that later there may some delays occur in
reaction to digital inputs.
If values of 1-15 (4ms – 60ms) don’t solve the problem, then a hardware and machine tool wiring qual-
ity may be the cause.

Long filtration time may delay reaction on alarm signals even up to 0,4s. The delay will also be visible
during HOMING or tool measurement (PROBING), causing that machine’s axis will go through a longer
distance after sensor activation.
As mentioned above, there is rather no sense to give filtration time higher than 60ms, and so small
delays are practically unnoticeable.

10.9.6 Other – other plugin functions

10.9.6.1 MPG multipliers


If you use CSMIO-MPG module and an external
jog encoder (pendant) you can switch the multi-
plier between three values. In this place we can
select what values it will be. Lower range gives
better precision and safeness – because in this
case turning the encoder we won’t speed up the
machine to high speeds.
Higher range will be better for large-size
plotters to move the axes quickly over long dis-
tances.

10.9.6.2 AxesDeRef& Zero – axis reset after emergency stop


Parameter used only with CSMIO/IP-S and CSMIO/IP-M. It does not matter with CSMIO/IP-A.

10.9.6.3 E-STOP requests – alarm events


In this place we can disable machine stopping in following situations:
• Digital outputs overload
• CANOpen Timeout
Deselecting this option causes that such situation won’t cause stop of a machine.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 74


www.cs-lab.eu

10.9.6.4 Extras

In CSMIO/IP software few additional functions were implemented, which increase safety and comfort
of work.
Auto Z-InhEnable Automatic Z axis move limitation. Enables protection against
worktable of a machine damage. More details in chapter
14.1 – Automatic Tool Length Measurement.
Smart Limits Movement blocking when hardware limit signal is active. It
works the way that e.g. when X++ signal is active, then we
can move X axis only in „-„ direction.
Probe protection Tool length sensor protection. When Probe signal is active
then Z axis manual jog in „-„ (down) direction is blocked.
If Probe signal goes active during treatment, a machine will
be stopped just like in situation when E-Stop is pressed on.
LegacyHomeOffset Selecting this function cause Home Offset action change. A
machine after homing instead of travel back off with de-
manded distance it will only enter the demanded distance
into machine's coordinate.

10.9.6.5 CSMIO Connection Properties – additional connection options

Default MAC Default MAC address for a connection. It’s useful if in our
local network there are few CSMIO/IP controllers and we do
not want to select a controller we want to connect with at
every Mach3 start. It is set by „Set as Default” button and
reset using „Clear Default”.
Connected MAC Information about MAC address of currently connected
CSMIO/IP controller.
Name Currently connected controller name. You can name it by
yourself. The name will also be displayed in controller's se-
lection window if in local network there is more than one
CSMIO/IP controller. To give your name you must enter it
and click „Change Name”.
ClearDefault Default MAC address deletion.
Set as Default Default MAC address setting.
ChangeName Private name setting for connected CSMIO/IP controller. It
can be any name. However it can’t contain spaces or special
characters - e.g. „Lathe01”.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 75


www.cs-lab.eu

10.10 Selection of inch/mm units


Selection of units by which the axes in „Motor Tuning” are scaled is set in
„ConfigSelect Native Units” menu position. Select unit in the window and close
„OK”. Selection of units for a treatment is done by G20 (inch) and G21 (mm) com-
mands.

10.11 Some parameters in the General Config window


In the „ConfigGeneral Config” menu, you find basic configuration parameters of Mach3. Many of
them don’t need any modifications, but it is worth to change some of them. In the picture below, you
can see a table with the most important parameters and a short description of each one.

Parameter/group Description
name
ToolChange Configuration of an automatic tool changer. An important issue: even if we do not
have an automatic tool changer but we use a tool measurement sensor - the Auto
Tool Changer should be selected. Otherwise, Mach3 will not take tool length into
account.
AngularProperties Checking the box, we select, if A, B, or C axis works as angular. Unchecked box means
that the axis works as linear.
Pgm end or M30 or It is about behavior at the end of a program, M30 or REWIND command.
Rewind
Motion Mode Motion mode selection: Constant Velocity or stop at every trajectory section (Exact
Stop). The Exact Stop mode may be more precise in some cases but much more slow-
ly. Constant Velocity mode is used in 99% of cases.
IJ Mode Data format for circular interpolation. Usually "Inc" should be selected. After loading
the trajectory, generated with CAM program, if there are problems with circular
interpolation (like large circles in a 3D preview), you can try to switch to „Absolute”
and then load G-Code again.
Active Plane of Default plane for circular interpolation G2/G3. Usually X-Y for milling machines, X-Z
Movement for lathes.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 76


www.cs-lab.eu

Jog increments In Default feed values for stepper work.


cycle mode
Home Sw. Safety Homing mode. When this mode is disabled the homing process is less restrictive. It
allows for e.g. homing start when an axis is already on the HOME switch. When hom-
ing also LIMIT signals aren’t taken into account.
With this option selected so called safe homing is performed, LIMITs are all the time
taken into account, also you can't start homing when an axis is on a HOME sensor.
Ignore M calls while Macros ignoring („M” commands) from g-code file when loading. This option should
loading be activated. Without it when file is loading a machine may start performing macros
by itself.
Look Ahead Mach3 performs dynamic trajectory analysis in advance, to adjust motion speed in
every trajectory place. In the „Look Ahead” area, you can enter number of G-Code
lines, which should be analyzed in advance. Usually 1000 value is enough to get mo-
tion smoothness even when dynamic and fast programs are made.
Run Macro Pump When this option is selected in a catalogue with VisualBasic scripts you can create a
macropump.m1s file, it contains macro, which will be called cyclically several times
per second.
Home slave with The intention of Mach3 authors is an option, which enable/disable slave axis and
master axis master axis homing together. In CSMIO/IP-A controller, a slave axis is always homed
with master axis.
G04 Dwell in ms With this option selected a delay parameter for G04 is counted in milliseconds. It is
useful when you need precise, short time delay e.g. in plasma cutters.
Use watchdogs Do not use – this function should theoretically „watch” various modules of the pro-
gram and in case it should switch an emergency STOP. In practice, it doesn’t work
properly and may cause problems. In CSMIO/IP-A software, there are special algo-
rithms, which autonomously monitor communication and whole control system
work.
CV Control Parameters for a Constant Velocity work mode. By default all fields should be unse-
lected. However sometimes CV settings modification is necessary. E.g. if machine
acceleration is low and treatment goes with high speeds then CV mode may cause
that path corners will be rounded. We can set CV mode toleration by selecting „CV
Dist Tolerance” option and entering max. deviation from demanded shape.
Rotational Parameters in this group relate to angular axes (rotary).
„Rot 360 rollover” determines if there should be rollover after crossing 360 degrees.
„Ang short rot. On G0” causes that at inverted G0 move, a rev may be shortened. So
O O
when an axis has at the moment e.g. 320 and should go to 0 , it will not go back
O O
with 320 but it go right with 40 .
„Rotational soft limit” parameter determines if for rotary axes - soft limit switches
should be taken into account.
Enchancedpulsing This parameter does not matter with CSMIO/IP-A.
Screencontrol In this group, selection of „Hi-Res screens” and „Auto screen enlarge” parameters
causes Mach3 screen enlarges to fit its size to screen resolution. However very often
an interface is in effect disproportionately stretched and it is better to disable the
functions mentioned above.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 77


www.cs-lab.eu

11. PID controller (regulator)

11.1 What is PID controller


As opposed to stepper motors which are,
we can say, controlled "blindly", servo
drives work in so called closed loop, so
when they control a motor they check if
its position is compliant with the set posi-
tion. If actual rotor position differs from
the expected one, there is a current cor-
rection entered to overcome the existing
error. If the motor overtook the position
that was set, it just slows down or speeds
up to catch up if the set position overtook
the actual position. It is just like driving a car we would like to catch up another car next to us. If it is
running away we step on the gas and speed up and if we are too far we let up on the gas to slow
down. What happens if the car we want to align with doesn't make it any easier and every moment
speeds up or slows down, moreover we are already nervous and we overreact stepping on the gas or
brake to the limit time and time again? As a result, we will still pass the chased car, being most of the
time far away from it. As a result, we will still pass the chased car, being most of the time far away
from it. Translating this analogy to a CNC machine, it would appear that axes do not follow the set
motion path and a lot of machining inaccuracies would arise.

Servo drives require fast and precise correction to the position error. Going back to the cars compari-
son, the point is that the driver from the chasing car should be as experienced as possible, so he could
predict behavior of the second running away car and to react precisely as the situation evolves. In
servo drives PID controller is the driver. The controller is a mathematical algorithm that is responsible
for motor reaction on deviations from set position. The PID name derives from the following terms of
the controller.

• Proportional
• Integral
• Derivative

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 78


www.cs-lab.eu

11.2 PID controller terms (parameters) operation


There are like tens of thousands descriptions of PID controller work in the Internet, but for most of
people - putting it mildly - they are rather vague and actually do not say anything. In this section we
present the PID controller blocks described in a few words so you could get the logic of their opera-
tion.

11.2.1 The proportional term – P


It is the easiest part of the controller. It makes that correction is greater the larger position error is.
The error is calculated in the following way:
���� = � − ����
Where:
P err : position error
P : current, set position
P enc : actual position of an encoder

An output of the proportional term is calculated by the formula:


���� = �� ∗ ����
Where:
OUT P : output of proportional term
Kp : Proportional gain
P err : Position error

Lets assume that the set position= 0, Kp = 10 and analyze the situation for a few different actual posi-
tions of a motor:
• Motor position = 0: Error is zero, so the ‘P’ term has also zero output so there is no cor-
rection (because it is not necessary).
• Motor position = 1: Error = (0 – 1) = -1. The output = 10 * -1 = -10.
• Motor position = 5: Error = (0 – 5) = -5. The output = 10 * -5 = -50.
• Motor position = -5: Error = (0 – (-5)) = 5. The output = 10 * 5 = 50.

As you can see above correction is greater the larger the error value is and direction of the correction
is opposite to the error direction. This part of the PID controller is effective at larger error values, for
smaller error values it is not doing very well.

11.2.2 The integral term – I


For some users unfamiliar with mathematics the integral may sounds scary, in fact the term operation
is very easy. An output of the integral term of PID controller depends on the position error and the
duration of the error. Lets assume that the Integral eliminated most of the position error, but there a
small error left due to friction e.g. 10 p. of an encoder. With so small error the Proportional control
does not correct too much and its output is not able to overcome the friction. SO the motor stands
and the error remains. Here we have the Integral term ‘I’. To simplify lets assume that the controller
works once per second and Ki (gain) = 1. In this situation ‘I’ output will look like this:
• Time t=0s : output = 0
• Time t=1s : output = 10

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 79


www.cs-lab.eu

• Time t=2s : output = 20


• …
• Time t=10s: output = 100

The example above shows that even a small error may cause large offset (correction) value if it lasts
for longer time. In practice we deal not with seconds but with fraction of seconds because the PID
controllers work from a few hundreds to several thousand times per second.
Matching the ’P’ and ‘I’ terms we get a controller which immediately reacts on large error values (P),
and some other deviations it corrects with small delay (I). So it all starts to work pretty well.

11.2.3 The Derivative term – D


After reading descriptions of ‘P’ and ‘I’ terms we can come to conclusion, that we do not need nothing
more. In many situations that is true and very often in practice the derivative gain ‘D’ is set to 0, what
cause it is skipped.
However sometimes there is necessity to add some stabilization element as "sharply" tuned ‘P’ and ‘I’
may cause unwanted vibrations near the set point. Here the derivative term ‘D’ will be helpful which
works as a dumper - prevents sudden, rapid movements. The ‘D’ reacts the stronger the faster a posi-
tion error changes. If the error increases fast, the ‘D’ control will strongly react towards ‘-‘. If the error
decreases fast then the ‘D’ control will strongly react towards „+”.

11.2.4 The „sixth” sense – the mysterious KVFF parameter


Where this parameter comes from if we described all the terms of PID controller? Actually it is not
another PID controller term it is rather an element which makes PID controller work easier.
Looking carefully at all the three PID terms descriptions we can see that outputs of each term depend
on a position error. So the controller does not work if the position error is zero. The problem is that
we want the error to be as small as possible, the best if it would be zero because it means the best
accuracy of work we do.
Here we have the K VFF parameter which reacts in advance, before the error occurs. Of course working
in advance base on prediction and prediction is never 100% sure, so some error occur for sure and PID
has got then work to do but in practice well-matched K VFF gain is able to decrease temporary position
errors even up to ten times.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 80


www.cs-lab.eu

11.3 The actual controller in CSMIO/IP-A


In practice we often use so called: cascade controllers, which correct errors much better on during
dynamic work. The cascade controller is usually just three PID controllers connected in series.
In fact a complete control loop for CSMIO/IP-A and servo amplifier looks as follows:

• TRAJECTORY : set motion trajectory


• POSITION : position PID controller
• VELOCITY : velocity PID controller
• CURRENT : current PID controller

All the parameters that usually do not need to be tuned are marked in grey. There is also division mar-
ket, where the controllers are placed. As you can see in CSMIO/IP-A there is only a position controller
and "predicting" element – „V FF ”. The velocity and current controllers are in servo amplifier.

11.4 The order of controllers tuning


We always start the cascade controller tuning from a motor side. We usually get a set: a servo motor +
a servo amplifier and there is no need to tune a current controller so we tune as follows:
• Velocity PID controller (in a servo amplifier)
• Position PID controller (in CSMIO/IP-A)
• „V FF ” predicting element (in CSMIO/IP-A)

Very common mistake is tuning the PID controller in CSMIO/IP-A when PID controller in servo amplifi-
er is not tuned. In this situation it is impossible to tune the entire system properly.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 81


www.cs-lab.eu

11.5 „PID Regulator Tuning” window


We tune the controller in a special window. Click on menu „ConfigConfig Plugins” and „CONFIG” at
CSMIO/IP-A. Next select an axis and click “PID Tuning”.

At the beginning short description of parameters and functions available in "PID Regulator tuning".

Manual Tuning Group – manual tuning:


kP Proportional gain
kI Integral gain
kD Derivative gain
kVff Prediction parameter gain (velocity)
Max I accumulator Maximal integral accumulator value (by default we can en-
ter 1000000)
Max following error Maximal permissible position error. If deviation is over this
value ePID fault will be called.
DeadBand Dead band of regulation. Usually „0”. If there are problems
with axis humming at standstill, try to enter some small
value e.g. 3
DAC Offset Setting neutral level on +/-10V output, it is voltage at which
a motor stands still. If the parameter is set incorrectly it will
cause knocking during axis activation and may worsen regu-
lation quality. By clicking the icon next to this value we can
set this parameter automatically.
Setting the actual output voltage as DAC Offset.
Apply Sending the parameters values to motion controller/servo
drives activation and PIDs activation.
E-STOP Emergency stop/ drives activation and PIDs deactivation

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 82


www.cs-lab.eu

MoveAxis Group – automatic travel to position:


Pos (mm or inch) Set motion position
Speed [%] Motion speed as % of maximal axis speed
Acc [%] Motion acceleration as % of maximal axis acceleration
Move to set position mode
Move to set position and back to initial position mode
Constant motion mode: to set position, to initial position, to
set position … etc
Start Start to move

Autotuning –automatic:
Rigidity Setting target rigidity. By default 50%.
Start Autotuning mode start

Jog – manual operation:


Feedrate [%] Motion speed setting
Move towards -
Move towards +

Monitor – axis state preview:


On position A diode informs that axis does not make any move and is in
set position.
Actual error Actual deviation value from a set position
(encoder pulses number)
Max error Maximal temporary error that occurred
(encoder pulses number)
Axis position Actual axis position (mm or inch)

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 83


www.cs-lab.eu

11.6 Manual PID regulator tuning procedure in CSMIO/IP-A


Reading the description of PID controller in previous section, it is easy to imagine how the particular
elements handle with a position error. But there is a catch. Each of the mentioned elements has a
parameter that regulates its gain. If the gain for the particular element is set incorrectly it may not
work properly, it will cause vibrations, noise and in extreme cases even machine mechanic breakdown.
Although proper tuning of a machine is not hard at all, in practice to do it right experience is very use-
ful. Not experienced installers who only worked with e.g. stepper motor, the tuning procedure may
cause many problems. If you do not feel like doing it by yourself it is better to look for help from
someone more experienced.

To start PID regulator tuning in CSMIO/IP-A, a machine tool should be initially configured, especially
I/O signals, E-Stop should be checked as well as speed and axis scaling and acceleration.

Remember to tune a servo amplifier first in other way you will not be able to tune the regulator in
CSMIO/IP-A properly.

When tuning the safest way is to have a motor of only one (tuned) axis connected. Other motors
should be disconnected or power supply of servo amplifier should be disconnected.

• First - enter some small gain values at the beginning. It may be like in the picture above:
kP=1000, kI=15, kD=0, kVff=0. Max I Accumulator to 1000000. Set large maximal error (a
value corresponding to 1-2 motor revs).

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 84


www.cs-lab.eu

• Enable an axis by clicking „Apply / (RESET)”. If there


are axis oscillations - click E-STOP, and next enter
kP=500, kI = 1. If there is a jerk and a drive turns off
it may mean that encoder counting direction is set
incorrectly, try to go to axis configuration and
change counting direction. If servo drive turned on
and axis stands still then you can go to the next
step.

• Set Jog Feedrate on a small value e.g. 5% and try to move the axis by clicking or
At low PID gain the axis may not move at once, keep the motion button pressed for a
moment and watch the position („AxisPosition” in Monitor group). If the motor does not
move check if servo drive is enabled (e.g. if it gets ENABLE signal). Check also if the motor
is equipped with a brake. If the motor works you can go to the next step.

• Click on automatic setting button „DAC Offset” .

• Increase the kP gain gradually moving an axis simultaneously (set motion speed to about
50%). To move the axis you can use constant motion function . You do not have to
then watch to not cross working area. If you hear the first signs of overcontrol (vibration,
humming) decrease kP value by 15% and leave this way.

As in servo drives we usually use „P” and „I” controllers for velocity, in CSMIO/IP-A theoretically for
position regulation the „P” parameter should be enough, but as experience say - tuning of the „I” pa-
rameter in CSMIO/IP-A increases positioning quality, regardless of the regulator used in a servo ampli-
fier. Therefore go to the next step - I parameter tuning.

• The procedure is just the same like for kP. Increase kI gain gradually moving an axis sim-
ultaneously. If you hear the first signs of overcontrol (vibration, humming) decrease kI
value by 15% and leave this way.

• kD usually can be set to „0”. You can use this parameter when an axis, occasionally goes
into oscillations. This parameter has rather large values so if we want to use it I would
start with 50000 value and larger. In this case we do not tune up till oscillation occur. We
set the value instead and wait if an axis has no longer tendency to go into oscillations. If it
still has then we increase the kD by another 50000 etc.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 85


www.cs-lab.eu

• Next we tune the kVff. Again


chose constant motion mode
Short moves are the best because
a position error is the largest on
u-turns. On the graph watch a
position error (red line) and in-
crease (by +1) the kVff parame-
ter. The error amplitude will de-
crees significantly till some mo-
ment ant then and then increase
again. Find the kVff value with
which the error amplitude is the
lowest.

During tuning remember to click „Apply” after any value change only when these values are approved
and send to CSMIO/IP-A.

AT this stage the PID controller (regulator) is already tuned. Now you can decrease maximal permissi-
ble position error („Max following error”). You can set 4 x value of „Max Error” from the Monitor
group.

Close the configuration windows, all the settings will be saved on a disk. Close Mach3 and a system.
Connect a motor of another axis and start tuning like you did before.

11.7 PID tuning – practical tips


With a little practice the manual PID tuning takes 3 minutes and gives better results than 95% of cases
with autotuning use. However sometimes there are some not typical problems which can make your
work harder. Below some examples from "our experience".

11.7.1 Slave axis


In case of a slave axis we should tune both sides „Master” and „Slave” alternately going with the gain
Usually, the best is to have equal gain on „Master” and „Slave” side unless we have different motors
or if there are significant differences in the inertia or friction. If we tune an axis which is a gantry e.g.
of a plotter or gantry mill we should set a spindle in the middle of the gantry to align the inertia during
tuning.

11.7.2 An axis with toothed racks (straight toothed).


Toothed racks are not very "liked" by servo drives. Torque fluctuations that come from the toothed
racks cause resonance at some speeds and it is very hard to handle with it. The sharper the PID is the
larger is the resonance, the gentler PID (smaller gain), the smallest resonance but positioning is worse.
We can only help ourselves with kD parameter, which has some damping properties. Depending on a
servo drive we use we can try to use digital filters built in, although very often the filters can also make
the positioning worse. If we are going to use the filters then we strongly recommend very small damp-
ing values. It is very important with this drive train system to use proper pulley. We tuned machines

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 86


www.cs-lab.eu

where a constructor used a motor without pulley and it shows up that firstly: power of the motor was
used only in 15%, lack of torque (such situation takes place when nominal axis speed is get at 15%
servo motor nominal revs value reached). Lack of or too small pulley ratio makes correct tuning of axis
and a toothed difficult or sometimes even impossible. The pulley ratio should be well-matched, so
designed nominal axis speed results at nominal servo motor revs.

11.7.3 Laud noises at standstill


Quite common feature of servo drives are a bit annoying noises at the moment when motors stands.
There is no a "golden mean" for that but in most of case we can handle with this the following way:
• Slightly gain decrees and kD value increase.
• Digital filter in a servo amplifier (only small damping values)
• DeadBand value set on some small value e.g. 3

11.7.4 Cannot start tuning because an axis does not move.


If a motor does not want to work at all then we have to check a servo amplifier. Disconnect velocity
signal from CSMIO/IP-A and activate an axis. Connect AA (1.5V) battery to wires and the motor should
start to rotate. Change battery polarization and connect again, the motor should rotate in the other
side. If it is not then check control signal from servo amplifier, usually „Enable” is needed for power
amplifier activation, however the signal name may be different, you need to check documentation.
Sometimes servo amplifiers have a separate E-Stop and LIMIT inputs which can block the operation.

11.7.5 An axis after activation jerks or starts to move with max. speed.
In situations like this, first we must check an encoder. The counting direction (look at tuning descrip-
tion), electrical connections between a motor and a servo amplifier, encoder signal connections be-
tween servo amplifier and CSMIO/IP-A. Sometimes some strange effects result from confusion be-
tween motor phases, or HALL signals (if used).

11.7.6 Cannot tune an axis


Sometimes happens that although we spend a lot of time on tuning an axis does not work proper-
ly hums, vibrates when it moves etc. Very often the reason is connection of +/- 10V analog signal to a
servo amplifier. When we have 3 axes and we reverse polarization of analog signal in one of them
there may be a problem with GND (depends on servo amplifier input type) and so strange effects may
occur. Poor quality not-shielded cable may be the reason or wrong electrical installation (GND loop
etc). Of course it may show up that the servo amplifier or motion controller is broken (it is rare). To
know for sure it is worth to plug an axis to other encoder and analog +/- 10V channel. You can also try
to replace servo amplifiers between axes to find where the problem is.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 87


www.cs-lab.eu

11.8 Autotuning – Automatic PID tuning


The CSMIO/IP-A is equipped with PID controller automatic tuning function, it can be called from PID
tuning window – „ConfigConfigPlugInsCONFIG”  „PID Tuning”.

Before we activate the automatic tuning function axes should be scaled and also acceleration and
max. speed of axes should be set in „ConfigMotor Tuning”.

For autotuning we need to set only one parameter – Rigidity. The highest is the value of the parame-
ter the "sharper" gain parameters will be matched, but also oscillation risk will be higher. In general it
is recommended to leave the slider in the middle position.
Before we start autotuning we should enter large value e.g. „1000000” in „Max I accumulator” area
and we should quite high max. Permissible error in „Max following error” – e.g. 10000 imp.

Very common mistake is autotuning performing when speed PID controller of servo amplifier is tuned
incorrectly. Badly tuned servo amplifier causes that correct tuning of the controller CSMIO/IP-A is IM-
POSSIBLE. A servo amplifier should be tuned first and then we can tune the CSMIO/IP-A. You should
remember that autotuning in servo amplifiers very often does not work very well and is not even close
to set correct parameters.

Autotuning function requires axis moving at the time. We should ensure place for that by setting an
axis manually in the middle of workspace.

A servo drive during tuning can do some rapid moves or go into oscillations. Before we start
autotuning verify if E-STOP button works correctly and be ready to press it immediately.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 88


www.cs-lab.eu

After we start the function an axis will start to move both sides alternately, analyzing in the meantime
the position error and adjusting parameters. Small oscillations and vibrations are normal thing and we
should just wait till the function ends its work.

When the motion stops it means that tuning was finished. Now you can try axis work by moving it with
keys in the JOG group. AT the beginning we should set some small speed e.g. 5% and increase it grad-
ually to 100% watching at the same time if there are no vibrations and what is max. temporary posi-
tion error („Max Error” in „Monitor" group).

In most of cases - if servo amplifier is tuned correctly - the autotuning function in CSMIO/IP-A motion
controller adjusts very good parameters and practically there is no need to tune it also manually.
However there are some specific machines where the autotuning function does not want to work
correctly. It may be e.g. when axes have very large inertia or if there is very large load asymmetry de-
pending on motion direction. In this case we should adjust PID controller parameters manually.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 89


www.cs-lab.eu

12.First tests

12.1 Checking the input signals

Before starting the tests in motion, you should


first verify the main input signals, such as:
• Homing sensors – HOME
• Limit switches – LIMIT
• Emergency stop – ESTOP

After running Mach3, go to „Diagnostics” tab.


In „Input signals current state” area there are
shown light indicators of the input signals. Dur-
ing the test, any of axes should not be on a
limit switch or homing sensor. You should
manually, sequentially activate the HOME sensors and verify if correct indicators light up. There are
axes at the input signals indicators marked as M1, M2, M3, M4, M5, M6 what corresponds in order to
X, Y, Z, A, B, C. After HOME switches verifying you should check LIMIT switches. Again - manually acti-
vate the LIMITs on each axis and check on a screen, if correct indicators light up. If the light indicators
or indicator light up constantly and they turn off after manual LIMIT switch deactivation - it means
wrong polarization – you must change configuration in „Ports and pins” window (see previous sec-
tions).
If on all axes the HOME and LIMIT sensors work fine, it is time to verify an emergency stop signal (here
Emergency) again. After the E-Stop pressing – the indicator should flash red light. When you release it
- it should turn off.
If everything works correctly, press RESET on the screen and go to the next section.

If there is no response for any signals, you should check if program


communicates with the CSMIO/IP-A controller correctly. In the diag-
nostics window (in „PlugIn ControlCSMIO_IP_Plugin” menu) you
can check the connection status. If the control light is red you can try
to quit and run Mach3 again. If it does not help please look again at
the sections about configuration and installation.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 90


www.cs-lab.eu

12.2 Verification of axes scaling and motion directions


First motion control should be made at low speed. After pressing Tab key on a
keyboard – manual feed rate panel should open. In „Slow Jog Rate” enter e.g.
10%. It means that the motion will have 10% of maximum speed, defined in Mo-
tor Tuning.
SoftLimit switches should be disabled for these tests. Find the button on
Mach3 main screen – if there is a green light around it then click this button to
switch it off. If necessary press on the main screen, Mach3 program will
be in standby mode. There should be green light around the button.
You can control XY-axes by arrow keys on a keyboard, Z-axis by „Page Down” and
„Page Up”. You can also use the buttons from manual feed rate window.
You should check each axis if:
• Motion direction is changing. If not, it may mean incorrect connec-
tion of DIR Signal to a drive.
• Directions are not changed. If so, you should change an axis direc-
tion in „ConfigHoming/Limits” menu.

When all axes have their motion directions configured correctly – you can specify homing directions
(sides). For 3-axis machine XYZ - most common configuration is homing of XY-axes in negative direc-
tion and Z- axis in positive direction. In „Config/Home/Limits” for Z axis there should be „Home Neg”
selected.
Before further tests, you should check axes scaling. The best is to use dial gauge or other precise
measurement tool.
In manual feed rate panel set the Jog Mode and 1mm step size. „Slow Jog
Rate” does not apply to motion in positional mode (step motion) so speed
is set on the main screen in „Feedrate” area. For this test, you should
enter low value e.g. 100mm/min. Now, after pressing e.g. right arrow on
the keyboard the X-axis goes 1mm right. You should go this way at least 10mm
(each axis), verifying with dial gauge the distance actually made by the axis. The dial
gauge should be reset after 1mm. If you see clear difference between the positions
(requested and actual), it means that that the „Steps Per” parameter in the Motor
Tuning window is set incorrectly. You should go back to the sections about configu-
ration and verify your settings.

Always approve your settings on Mach screen by pressing ENTER. Otherwise the value will not be
saved.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 91


www.cs-lab.eu

12.3 HOMING and software limit switches test

12.3.1 First homing


When axes are scaled correctly and motion directions are correct – it is time for first homing. During
normal work most comfortable is to use a button for all axes homing („Ref All Home” on the main
screen). During the tests it is better to home the axes individually from the Mach Diagnostic screen.

On the Diagnostic screen of Mach3 you will see group of buttons for each axis hom-
ing. Before you press one be prepared for emergency stop by EStop pressing or
on Mach screen.
Every time you press Ref... verify homing of each axis used. After correct homing –
the light indicator next to the button should light green. If motion when homing is
wrong you can change the configuration in „ConfigHoming/Limits”.

If axes homing is correct you can experiment with increasing homing speed in
„ConfigHoming/Limits”.

12.3.2 SoftLimit switches


If axes homing is correct then you can set, switch and check software limit switches. Click on „Jog
Mode” in the manual feed rate panel and set „Cont.”. „Slow Jog Rate” set on e.g. 40%. It is worth to
turn on preview of machine directions by pressing on the Mach’s main screen. Then, in manual
mode go e.g. with X-axis- on 5mm before hardware switch limit and write down on paper - the X coor-
dinate from the screen. Repeat this action for all axes.
Open „ConfigHoming/Limits” window and enter correct values into SoftMax and SoftMin. For X and
Y axes it is usually SoftMin=0. You should remember that Z axis usually work in negative direction, so
the SoftMax for will be equal to zero, and min. limitation enter in SoftMin.
Close „Homing/Limits”, press and run homing again. Click on , to see the green light
around. You can try and go each axis to reach coordinates that are specified in the SoftMax/SoftMin.
The machine should smoothly brake and should not cross any limits of the working area.
After test is successful finished you can turn the coordinates off by pressing .

After some parameters change – the controller may automatically go into emergency stop mode, it is
absolutely normal. In that case you should press and run all axes homing by pressing „Ref All
Home” on the Mach’s main screen.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 92


www.cs-lab.eu

12.4 Test of spindle and cooling.


At this stage, almost all major elements of the system were set and a machine is almost ready to work.
One important issue left – spindle test. Treatment with non-rotating spindle is generally not a good
idea.
Mach should be in active mode. The quickest way to test the spin-
dle is MDI mode. In the top bar press MDI. This mode lets you to
enter G-Code commands manually:
• Enter S command, with requested spindle revs e.g.
„S2000” – that is 2000 rpm speed. Approve with <en-
ter>.
• Enter M3 command (right revs) and approve with <en-
ter>. The spindle should start rotate right with re-
quested speed.
• Enter M5 command (stopping) and approve with <enter>. The spindle should stop.
• Enter M4 command (left revs) and approve with <enter>. The spindle should start rotate
left with requested speed.
• Stop with M5 command.
• Turn on cooling with M7, turn off - M30.
• Turn on cooling M8, turn off - M30.

It is good to check various revs values and revs change from maximal revs to very low. If you do not
use a braking resistor at inverter it may turn out that, when braking at high revs speed – the inverter
will report an error. Then you have to get yourself a resistor or lengthen the braking time.

In case of any problems, check again configuration settings and eventually the inverter settings. Al-
most always the inverters have various control modes. Without proper configuration, the inverter will
not respond to outside signals.

Before spindle activation make sure if there is no loose collet. When braking at high revs speed the
tightening nut may unscrew and rotating collet may cause injury risk.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 93


www.cs-lab.eu

13. Sample treatment step by step


To look closer at rules of using a machine equipped with CSMIO/IP-A con-
trol system – here is an example of a simple work.
An example includes area planning and logo milling in 30.6x30.6x48mm
size cube made of hard aluminum alloy.
Project design and G-Code file generating will be done with popular soft-
ware - ArtCam®. Logo file has AI format which is very good for data
transmission between different programs.
Assumptions:
• Planned area will be on 0,2mm depth cylindrical cutter with
an 8mm diameter.
• To set a base we will use a roller made of carbide with 6mm diameter, filed on half of di-
ameter.
• The logo will be milled by engraving cutter 20 degree/0.6mm – on 0,3mm depth.

13.1 Project and G-Code files preparing


We create a new project in ArtCam program. Enter dimension
of the cube. In this example, the resolution is not very im-
portant so you can set it low.

Select Import Vector Data command in Art Cam and in the window that
pops up – option that will set our logo in the middle of defined area.

Next, we draw an object, which we use to plan the area. It would be good if the object was larger than
our cube, so that the cylindrical cutter will go during
the work with its whole diameter out of the material.
First, select an icon from the Vector tab, draw a rectangle with the same size like our
cube. In the Width and Height boxes enter 48 and 30.6 size. Next click „Create” and
„Close”.
Now you need to set the object position. Press right
mouse button on it and select „Transform Vectors”.
Select the lower left corner of the object and enter 0,0
position. Press „Apply” and „Close”.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 94


www.cs-lab.eu

The newly created object with its position and size exactly coincides with the work-
ing area. Now you should add the additional enlargement that was mentioned, so
that the milling cutter will go with its whole diameter out of the material – thus we
get a better surface.
We click on our object and select „Vectors/Offset” menu position. The milling cutter
diameter is 8mm - we should give it a small reserve by entering as an Offset Dis-
tance the 8.5mm value. We are giving the Offset Direction as Outwards – that is the
outside. Offset corners – irrelevant here. Select - Delete original vectors, because
we do not need to save the original object.

At this stage, our project looks like this:

You can now generate trajectories for tools.

First, a tool path for planning the surface.


Select the object we have created and select Area Clearance icon from
Toolpath tab.
In Finish Depth box, enter treatment depth - 0.2mm in this case. In toleration area,
enter 0,01mm. As practice shows, it is not worth to overdo with toleration value. Of
course, if you have a high-class mechanics, granite construction, all is thermally
stabilized, and you execute precise jobs – you can set the toleration more detailed.
Safe Z parameter you can set at 5mm, Home Position at [0, 0, 10]. You can also
select „Add Ramping Moves” on default parameters, the result is smoother entry
into the material.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 95


www.cs-lab.eu

You should inform the program what kind of tool you use. Below the Tool List click the Add button. In
the tool-base window, click Add Tool, to
add a new tool. Enter parameters as
the picture shows. Some parameters
like description or diameter are obvi-
ous. Step-down is a maximum depth
the tool gets. Stepover is a working
density. The bigger the density, the
generally better surface, but here it is
also not worth to overdo because you
can only unnecessarily make the treat-
ment last longer. Feed Rate is a feed on XY surface, and Plunge Rate means speed with which the tool
will get into the material. Tool Type is a tool shape type. Here the drawing, displayed after shape type
selection, is helpful.
In the end press „OK”, choose our tool from list and click Select.
In Tool List box, in the Area Clearance configuration panel there should our tool appear, now only
press Calculate: Now in the bottom of the panel, in the preview of working area there should the cal-
culated tool trajectory appear. We can switch to a 3D view to look closer. It should look something like
this:

Now we record the trajectory, go to the Toolpaths tab and click the icon.
In the record window select so-called postprocessor, to define
output data format suitable for our control system. In ArtCam we
recommend „G-Code Arcs (mm) (*.tap)”. It is basic G-Code for-
mat suitable for Mach3 program. When you select the format
pres „Save” and save our trajectory as e.g. „planning.tap”.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 96


www.cs-lab.eu

Next, generate tool trajectory for our logo.


Go back to 2D preview, and in the Toolpaths tab panel, next to the last gen-
erated path – deselect Show In 2D|3D. Previous trajectory disappears so it
will not disrupt our view.
Now select our logo and again click the Area Clearance icon. We enter
the parameters almost the same like before, only the depth is 0.3mm and
we deselect „Add Ramping Moves” – it will not be needed in this case, we
also need to define other tool. We proceed like before. Press Add - below
the tool list - and Add Tool in the tool base window. The parameters in this
case look like this:

You should note that, in ArtCam program a handle size is given as diameter,
and a dimension of tip of the tool (F) is as radius. Speed values in here are
quite low but it is only example, and not “high performance ride”, which
makes sense only for mass production for larger number of units. With so simple, single treatments it
takes more time to prepare the project, place the material and set the machine than the treatment
itself.
When our tool is entered, you can click Calculate: Now and record the path by clicking on the icon.
Postprocessor should stay the same. Name it e.g. „graw_logo.tap”. 3D preview should look like this:

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 97


www.cs-lab.eu

13.2 Preparing machine and Mach3 program


When files are ready, you only need to place and home the ma-
terial. First start Mach3 program and reference all the axes
pressing „Ref All Home” button on the main screen.
Place the material securely, to avoid a risk of its shifting or
breaking during the treatment.
As it was mentioned at the beginning –
to set the material base we are going to
use the carbide roller, filed precisely on
half of diameter. If we use tool length
measurement, then enter the tool num-
ber “1” in a „Tool” box in Mach3 program and start the measurement by
pressing „Auto Tool Zero” button.

In the manual feed rate panel set continuous ride mode and 25% speed. At the same time in a Feed
rate box, you can enter stepper work feeds, which we will use in a moment -1000 mm/min.

Now use arrow keys or keys on a machine desktop, reach left edge of the material. Z-axis is a little
below the material level.
Next, change the feed mode for stepper mode and set the step on 0.1mm. Working
with 0.1mm step we get close to the material and then switch to 0.025mm step –
enter that value in a text box and press <enter>. Make the half of
the filed roller to contact with side surface of the material. If we
will try to move the spindle with a finger to any side – we will be
able to do that only to a small extent. The roller edges will not let
us more. Go by step with another 0.025mm until you will not be
able to move the spindle at all – it means that the material surfac-
es and the filed roller adhere to each other.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 98


www.cs-lab.eu

At this point, we can set the material base in X-axis by clicking „Zero X” but-
ton on the Mach screen. Coordinate X on the screen will be reset.
Switch the feed rate mode on continuous one, „Slow Jog Rate” speed – e.g.
2% because we are very close to the material and the same way we set the Y
base on the lower edge of the cube. This way of homing seems to be a little
troublesome but with a little practice this can be done very quickly, besides it is quite precise.
When the position is set on the lower edge of the material then click „Zero Y”, to reset the Y coordi-
nate at this point.
If we do not use the automatic tool length measurement, setting a Z
base at this point makes no sense. You should set it only if we place
the right tool. However, I as-
sume that such a sensor is
installed in the machine.
For Z-axis, we set the base
much like XY, raising the axis a
little higher above the material
level, next lowering it in step-
per mode until the lower roller
surface touches the material.
Now click the „Zero Z” to reset the Z coordinate at this point.
The material base is already set so you can place the correct milling cutter – to plan the surface meas-
ure it and load the trajectory file.
After we placed the tool, we measure it clicking „Auto Tool Zero” button.

Automatic tool length measurement is not a standard Mach3 function. Description of this function
activation and configuration you can find in chapter 14.1 – „Automatic tool length measurement”.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 99


www.cs-lab.eu

13.3 We begin the treatment


In Mach program, we select „File/Load G-Code” menu position or we click „Load G-Code” button on
the main screen. Select the file we created earlier: „planing.tap”. When the file is loaded, we can ini-
tially set the machine over the material and enter on the MDI screen.
• G0G53 Z0 <enter>
• G0 X0 Y0 <enter>
The firs command causes the Z axis rises maximum high, the second one is to set the machines tool XY
axes in the defined earlier zero point of the material.
Go to the main screen again and click „Cycle Start” button – the treatment start.

Below a photo taken during the work:

You can change the tool for an engraving cutter and load the second,
previously generated trajectory. Before processing, there is one im-
portant detail. When planning the surface we lowered its level, the
engraving logo would be 0.1mm depth, and not 0.3mm like the one we
had assumed. “This can be easily remedied by reducing the zero point
level about 0.2mm (planned depth). Click on the text box that displays
current Z position and type on your keyboard "0.2 <enter>".

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 100


www.cs-lab.eu

After this operation, we can start work from the second file not forgetting about the measurement
after tool change („Auto Tool Zero” button).
When the file is loaded, and the tool is measured we can set the axes again over the material with the
MDI like before.

Press „Cycle Start” and start the treatment.

The photos below show the work piece during the process, after work and after it is finished with gen-
tle sanding with emery paper.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 101


www.cs-lab.eu

14. A few practical notes about Mach3 program and CSMIO/IP-A


Here you can find few tips that can help users unfamiliar with Mach3 program.

1. Computer keyboard.
a. Do not use a wireless keyboard, sometimes this keyboard record keystroke, but
does not notice releasing it, which can be very dangerous while controlling the
machine.
b. Also – an USB keyboard can behave in unpredictable ways. The USB port is not
resistant to interference therefore, especially on machines with servo drives and
higher power spindles. We definitely not recommend the USB keyboard.
c. The most reliable solution is PS2 keyboard or connection of industrial buttons to
CSMIO/IP-A digital inputs and defining them correctly in Mach3 program.

2. Remember that writing down the value in any text boxes on the Mach screen - must al-
ways be confirmed by pressing ENTER.

3. If you are doing CNC programs at high speeds and sometimes the movement loses its
smoothness, check the „LookAhead” parameter in "Config / General config". It is respon-
sible for sections of the trajectory analyzed in advance. Set this parameter to 999.

4. If you are doing CNC programs at high speeds and you notice some distortions related to
rounded corners then switch on and experiment with "CV Dist. Tolerance" parameter in
„ConfigGeneral Config”. At the beginning you can set the value on 0,5 - it will corre-
spond to 0,5mm corner tolerance.

5. Mach3 program as a decimal separator (to separate the fractional part) uses a dot „ . ”.
Keep it in mind entering the values.

6. 3D trajectory preview on Mach screen can significantly burden the computer when the
files are large. While the machine runs, do not do operations such as zooming, rotation,
etc. For very large files, we recommend to turn of the 3D preview - Diagnostics screen,
click "Toolpath on / off."

7. If a machine has touched a hardware LIMIT switch, you can back of the switch by
"OveRride Limits" button activation on Settings screen. It is also convenience to activate
"Auto LimitOverRide" - this will cause that when we touch the limit switch a machine will
stop, but you can click RESET and back of the limit switches without any additional opera-
tions. Additionally the "Smart Limits" function activated will protect you against motion in
wrong direction, which can be cause by e.g. accidentally wrong button pressed.

8. Manual control (JOG).


a. Do not forget that pressing TAB key causes that additional side panel appears
where you can set speed, continuous or step mode – it makes that controlling
the axes and precise setting of material base is easier.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 102


www.cs-lab.eu

b. By pressing the combination of feed rate key (e.g. right arrow) and SHIFT key, the
movement is in continuous mode with 100% speed - regardless of the current
settings.
c. By pressing the combination of the feed rate key and CTRL key – the movement
is always in step mode with speed set in FEEDRATE area.

9. Mach3 always starts with tool „0” chosen, if you use a tools changer and some tool left in
a handle when you turn off, then after Mach restart, you must enter this tool number
(Tool Information group on the main screen, the "Tool").
a. If you do not use a tool changer but you have an automatic tool-length meas-
urement sensor, then after starting Mach program always enter „1” <enter> into
the “Tool”. Similarly, when generating the g-code file in CAM program also al-
ways set the tool 1.

10. STOP button on Mach3 screen stops a machine instantly. With stepper motors it may
cause that motor will fall out from the position, with servo drives the motor controllers
may report an overload error or overstaying error and you will need to re-home the ma-
chine. Recommended way to stop the work is pressing pause first („Feed Hold”), and af-
ter it stopped – the STOP key.

11. To restart CNC program from specified location - set in G-code window desired position
(line), then press "Run From Here" and then "Cycle Start".

12. It is worth to know the basic commands of G-Code. In many situations the MDI Mach
screen, where you can manually type the commands that are executed immediately is a
very useful tool.

13. If you have a tool magazine and/or automatic tool-length measurement sensor, remem-
ber that any manipulation/repositioning or disassembly of HOME switches can cause ma-
chines absolute zero position shift and then recalibration of magazine and tool length
measurement sensor position is necessary.

14. If you set the zero point (material base) and you use an automatic tool measurement –
always make the tool measurement first, and then set the zero point. Setting the zero
point with unmeasured tool causes that the level of processing shifts when we place an-
other tool and call the measurement.

15. A PC computer you use to control the machine should be treated like an integral part of
the control system and should not be used to any other tasks. It means that, this com-
puter should only have operation system, Mach3 program and nothing else (eventually
text editor and file manager such as Total Commander®). For any other tasks such as de-
signing, you should use some other computer.

16. On the computer you use to control you should disable all visual effects of your desktop,
screen saver, and turn power profile on “always on”.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 103


www.cs-lab.eu

15. VisualBasic® macros

On our website: www.cs-lab.eu you can download standard scripts for automatic tool-length
measurement and for automatic tool change. These are usually the most desirable functions and
make work easier. We encourage advanced users to learn more about macros, which provide great
opportunities for self-expanding functionality of Mach3 program.

15.1 Automatic tool-length measurement

Automatic tool-length measurement is one of the most implemented function, e.g. because mechani-
cally it is very easy to do. If high measurement accuracy is required, the sensor
must be good quality. In CSMIO/IP-A controller – specialy for G31 command
(used during the measurement) – we implemented completely autonomous
movement operation and ultra-fast logic to assure measurement precision at
the highest level.

The measurement is made through the following stages:


• Raising Z axis at the maximum high (absolute zero)
• Going in a fast mode (G0) at XY sensor position.
• Quick exit (G0) by Z-axis to so-called - safe Z
• Going down in the measurement mode (G31) at "1" speed until signal receiving from the
sensor.
• Raising Z-axis with small value (preparing to more accurate measurement).
• Going down in the measurement mode (G31) at "2"speed, until signal receiving from the
sensor.
• After measurement is finished– raising Z-axis maximally.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 104


www.cs-lab.eu

15.1.1 Configuration
Before we start the script configuration, you should follow these steps:
1. Check the sensor and inputs signals settings – go to Diagnostics tab and while pushing the
sensor with hand observe the light indicators on the screen. The light should light up
at the moment of pushing the sensor and light should go out after releasing it. In case of any
problems go to 10.4 chapter (inputs signals). The sensor signal in the configuration window is
called “Probe”.
2. Make reference move of all axes.
3. On the main screen switch the coordinates display mode for machine display (absolute) –

icon .
4. Secure the tool in the spindle holder (for the firsts test – the cheapest is the best).
5. In manual feed mode move to the center of the sensor measuring surface. Note XY coordi-
nates.
6. In stepper mode slowly lower the Z axis until the signal from the sensor appears and note the
Z coordinate.
7. Go with Z-axis up to the level you consider as safe. A small explanation here - as written
above, while measurement there is rapid slide down to some level by G0 command first. You
have to assess to what Z-axis level it can slide down quickly. It depends on maximum length
of tools that will be measured. You can also enter "0" as a safe Z and then measurement
starts from the top position.
8. Move the XY axes to place yourself somewhere above the worktable.
9. Using the stepper mode, slowly slide the tool down to the worktable surface and note the Z
coordinate.
10. Turn off the absolute coordinates mode by clicking icon.

When you have noted all necessary data, open the downloaded toollenght.m1s file in any text editor
(e.g. notepad). Then select all using mouse or by pressing "CTRL + A" and copy to clipboard - "CTRL +
C".
In Mach standard graphical interface, on the main screen there is an "Auto Tool Zero" button. This
button is defined by default as calling a macro, so there is no need to add a new button in the graph-
ical editor.
To connect the mentioned above button to our macro, se-
lect in the menu: "The operator / Edit Button Script". The
"Auto Tool Zero" button and several others should start to
blink. Click on it and open Mach3 text editor.
Sometimes there is a single text line, if so - you must delete
it, and then press CTRL + V to paste our macro.
Now just enter a few parameters based on the coordinates,
which we noted earlier. All configuration data can be found
under "Configuration parameters" line.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 105


www.cs-lab.eu

Parameter Details
SENS_Z [Z coordinate of sensor activation ] – [Z coordinate of table level].
If you e.g. when reaching the table Z=-122.070mm, and sensor gave an active signal at
Z=-110.656mm – the entered value should be 11.414.
Z_SAFE It is parameter that describes at what height the Z axis can slide down fast (G0). If we have
doubts how long tools will be measured it is safer to enter „0”.
SENS_X/SENS_Y X and Y position of the sensor in a machine tool working area.
MAX_DTRAVEL Maximum distance the axis travels down in the measurement mode. If in measurement
mode the Z-axis run this distance, and the sensor signal does not appear – the measure-
ment failed. With this parameter, you can protect yourself from a situation when the
measurement was called while the tool was not clamped.
SPD_FAST First measurement speed (mm/min).
SPD_FINE Second precise measurement speed (mm/min).
Z_LIFT Determines how much the Z-axis should be raised before the second measurement. The
value should be large enough to change the sensor inactive again while rising.
Z_PARK Z-level, on which the axis was set before the measurement and after the measurement is
finished. Usually – “0”.

Macro should be saved in „FileSave” menu, close the window. After this operation you should also
close and restart Mach3 program to make sure that the settings were saved.

That is all. Just click the „Auto Tool Zero” button, and the tool will be automatically measured. Why
the table level was checked? It is because adding data the way we showed above – after correct
measurement - zero of Z axis is set on the worktable level. Now if we want to define the zero point of
the work piece, and its thickness is e.g. 10.150mm we can enter this value directly into the „Offsets”.
In short, the treatment offset in Z-axis is counted from worktable level. Moreover, if we switch „Auto Z
Inh” and „Z Inhibit” functions in plugin’s configuration then on Mach3 screen – the controller will acti-
vate protection so the tool will not go below working table area. For both JOG movements and g-code
making. This way we protect ourselves against worktable damage.

15.2 Automatic tool change macro


On our website http://www.cs-lab.eu you can find sample macro that supports automatic tool change
(m6Start.m1s). Unfortunately, because of the fact it is more complicated and that very often spindles
from different manufacturers have different information signals logistic – it is often required to adjust
such a macro strictly to a concrete machine tool.
CS-Lab S.C. Company provides also services for launching, configuration and adaptation of control
system to specific requirements.
We also offer complete solutions - the entire control box, launching, configuration and preparation of
the macro for specialized tasks, etc.
If you are interested in our offer - please contact with our office: [email protected] , +48 52 374 74 34.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 106


www.cs-lab.eu

Addition A – Slave axis configuration example


With bigger machines you often need to use so called – slave axis. It is about that the physical axis of
the machine is powered by two motors.
We implemented in CSMIO/IP-A device the slave axes function with additional option to adjust
geometry of a machine. Geometry regulation is very useful if you want to set perpendicular axes pre-
cisely.
To understand the rule of slave axis configuration we will use a very common example
• XYZ 3 axis plotter
• Transmission of a drive - toothed bars
• X-axis (gantry) controlled by two motors both sides with pulleys.
• Used phrases: master axis (main) and slave axis (slave).

Defining axes used in Mach3 program


In „ConfigPorts and Pins” menu, enable the X, Y and Z-axes.
Slave axes are A, B or C. We do not enable the slave axes here.
CSMIO/IP-A controller supports slave axis autonomously and
activating it as a normal axis may cause conflicts.

Axis scaling and configuration


We assume that the machine is properly configured like it was described in chapter 10. In
„ConfigMotor tuning” menu we only configure the Y-axis (master), slave axis is configured
automatically. It is important that master and slave axes have the same steps number per millimeter,
so you cannot use motors with different encoders or different pulleys.

Activation and choice of slave axis


Slave axis function is set in plugin configuration window
–„ConfigConfig PlugIns” menu by clicking on „config”
next to CSMIO-IP position.
In this example the axis that has two drives is X axis and
its assigned slave axis is B axis (A-axis is free, if we would
need a rotary axis in the future).
In „ Slave Axis Configuration” group we choose B as
„Slave”, set the mode for now to „No correction” and
„Geometry Correction” to 0.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 107


www.cs-lab.eu

LIMIT and HOMING switches


On both – slave and master axes side – there should be separate LIMIT and HOME switches. The sig-
nals should be properly set in Mach3 program („ConfigPorts and Pins”).

Before next steps it is necessary to verify if the signals are correctly configured (DIAGNOSTICS tab) Pay
special attention whether HOMING switches are not replaced. Pressing by hand the HOME switch on
„X” motor side the M1HOME should light up, presing HOME switch on „B” motor side - the M5HOME
should light up.

Axis direction settings


One of the most important issues is correct setting of movement directions for master and slave axes.
In our example drive is transmitted by toothed bars. In this case, usually there is need to change slave
axis direction. We can do it in „ConfigHoming/Limits” by setting „Reversed” at „B” axis. The direc-
tion can be also changed in servo drive.

Manual feed test


When all the steps described above are already done, you can attempt to test the axis working in the
manual feed. A small note: At the beginning, the best is to set very low speed - even 0.5%. You should
first verify whether the motors are working on both sides and whether the feed goes in good
directions.

Automatic reading of HOME switches position difference


Before we activate the mode slave axis with geometry correction, you should know what is position
difference of HOME switches on master (“X”) and slave (“B”) side. Homing with geometry correction is
about that master axis always finishes homing at the moment it goes back off its HOME switch, and
slave axis goes to: [HOME switch back off position - correction]. If we gave zero correction initially and
HOME switches position on both sides differs by e.g. 10 mm - then there would be issues with gantry
during homing.
To avoid this situation there is additional mode created - for HOME switches position difference
measurement.
In plugin configuration window for “X” axis in “Slave Axis Configuration” group enable the „Read Dif-
ference” mode and start homing. After homing is finished, open the plugin configuration window
again and in „Geometry correction” area there should be the value from the measurement.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 108


www.cs-lab.eu

Geometry correction mode activation


After correct measurement of HOME switches position difference, in the configuration window you
can activate „Sl. correction” mode for „X” axis. Since now on, we can adjust the perpendicularity by
modifying "Geometry correction" value. For perpendicularity measurement, we recommend
Renishaw® Ballbar system.

You should not use stepper motors for slave axis. Lack of position feedback causes a risk of damage of
machine mechanics. With servo-drives, you should always have alarm signals configured correctly.

CS-Lab Company made every effort to ensure reliability of CSMIO/IP-A controller. However, our
company does not take any responsibility for any mechanics damage because of wrong configuration
and any eventual failure or software errors of CSMIO/IP-A controller.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 109


www.cs-lab.eu

Addition B – –CSMIO/IP-A firmware update


We invite you to visit our website: http://www.cs-lab.eu for CSMIO/IP-A software updates in a „down-
load” section. The controller updates includes corrections and often enrich the device with new fea-
tures so it is worth to update the controller regularly.

How to check your current firmware version


You can check the controller current firmware version
in the diagnostics window from „PlugIn Con-
trolCSMIO_IP_plugin” menu.
The current version is shown on the bottom bar.

Update application (uploader)

After installer download – „setup_CSMIO-IP-A-x.xxx.zip” double click and start setup_CSMIO-IP-A-x.xxx


file (x.xxx is a firmware version). Installation process was described in chapter „9.3 – Installation of
CSMIO/IP software”.
At the end of installation keep the „Launch CSMIO/IP-A Controller Firmware” option selected and click
„Finish”. The application will be launched automatically. This way we update CSMIO/IP software. Be-
low you can see the application window and sequence of actions that should be done.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 110


www.cs-lab.eu

If you run the update application from installer file it means that correct file with the firmware was
already loaded and „Open App. File” button is not active. If there is only one CSMIO/IP controller in
network - the application asks to start the update automatically. If there are more controllers then you
should chose one IP address from a list to update the controller you want and click „Flash Program”.

CSMIO/IP-A controller is protected if update fails. There is always a possibility to try again

Before update – close Mach3 program.


If you install new firmware version but you do not update with uploader application then Mach3
program during start will inform you about incompatibility between versions and communication will
be interrupted.

Plugin file update


Plugin is updated automatically during CSMIO/IP firmware installation.

Update verification
After firmware update is finished, you can start Mach3 again and open diagnostics window. In the
bottom bar, you should see your update firmware version.

CS-Lab s.c. | CSMIO/IP-A 6-axis CNC motion controller 111

You might also like