Skip to content

Commit 9aaf0b3

Browse files
author
Itom Build Server
committed
Updated Plugins
1 parent e9e3e19 commit 9aaf0b3

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+2233
-1577
lines changed
Lines changed: 383 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,383 @@
1+
===================
2+
FaulhaberMCS
3+
===================
4+
5+
=============== ========================================================================================================
6+
**Summary**: :pluginsummary:`FaulhaberMCS`
7+
**Type**: :plugintype:`FaulhaberMCS`
8+
**License**: :pluginlicense:`FaulhaberMCS`
9+
**Platforms**: Windows, Linux
10+
**Devices**: Faulhaber MCS 3242 BX4 ET
11+
**Author**: :pluginauthor:`FaulhaberMCS`
12+
=============== ========================================================================================================
13+
14+
Overview
15+
========
16+
17+
.. pluginsummaryextended::
18+
:plugin: FaulhaberMCS
19+
20+
Initialization
21+
==============
22+
23+
The following parameters are mandatory or optional for initializing an instance of this plugin:
24+
25+
.. plugininitparams::
26+
:plugin: FaulhaberMCS
27+
28+
29+
Parameters
30+
==========
31+
32+
These parameters are available and can be used to configure the ``FaulhaberMCS`` instance.
33+
Many of them are directly initialized by the parameters of the constructor.
34+
During the runtime of an instance, the value of these parameters is obtained by
35+
the method *getParam*, writeable parameters can be changed using *setParam*.
36+
37+
**acceleration**: int
38+
Acceleration in 1/s². Register '0x6083.00'.
39+
40+
*Value range: [1, 30000], Default: 4250*
41+
**async**: int, read-only
42+
Asynchronous move (1), synchronous (0) [default]. Only synchronous operation is
43+
implemented.
44+
45+
*Value range: [0, 1], Default: 0*
46+
**current**: int, read-only
47+
Actual value of the current in relative scaling. Register '0x6078.00'.
48+
49+
*Value range: [-32768, 32767], Default: 10*
50+
**deceleration**: int
51+
Deceleration in 1/s². Register '0x6084.00'.
52+
53+
*Value range: [1, 30000], Default: 1280*
54+
**deviceID**: int
55+
Explicit device ID. Register '0x2400.08'
56+
57+
*Value range: [0, 65535], Default: 0*
58+
**deviceName**: str, read-only
59+
Name of device. Register '0x1008.00'.
60+
61+
*Match: "", Default: "MCS 3242 BX4 ET"*
62+
**fault**: int, read-only
63+
1: Error present, 0: No error present (Bit 3).
64+
65+
*Value range: [0, 1], Default: 0*
66+
**firmware**: str, read-only
67+
Firmware version. Register '0x100A.00'
68+
69+
*Match: "", Default: "0111.02N"*
70+
**fluxGainControl**: int
71+
Flux control gain parameter [mOm]. Register '0x2342.01'.
72+
73+
*Value range: [-1, 0], Default: 1835*
74+
**fluxIntegralTimeControl**: int
75+
Flux control integral time control parameter [µs]. Register '0x2342.01'.
76+
77+
*Value range: [150, 2600], Default: 150*
78+
**followingError**: int, read-only
79+
1: Permissible range for the following error exceeded, 0: The actual position follows
80+
the instructions without a following error (Bit 13).
81+
82+
*Value range: [0, 1], Default: 0*
83+
**homed**: int, read-only
84+
homed (1) or not homed (0).
85+
86+
*Value range: [0, 1], Default: 0*
87+
**internalLimitActive**: int, read-only
88+
1: Internal range limit (e.g. limit switch reached), 0: Internal range limit not reached
89+
(Bit 11).
90+
91+
*Value range: [0, 1], Default: 0*
92+
**maxMotorSpeed**: int
93+
Max motor speed in 1/min. Register '0x6080.00'.
94+
95+
*Value range: [1, 32767], Default: 32767*
96+
**maxTorqueLimit**: int, read-only
97+
Maximum torque limit in relative scaling. 1000 = motor rated torque. Register
98+
'0x6072.00'.
99+
100+
*Value range: [1, 30000], Default: 2000*
101+
**moveTimeout**: int
102+
Timeout for movement in ms.
103+
104+
*Value range: [0, inf], Default: 60000*
105+
**name**: str, read-only
106+
FaulhaberMCS
107+
**netMode**: int
108+
RS232 net mode. Register '0x2400.05'.
109+
110+
*Value range: [0, 1], Default: 0*
111+
**nodeID**: int
112+
Node number. Register '0x2400.03'.
113+
114+
*Value range: [0, 255], Default: 1*
115+
**operation**: int
116+
Enable (1) or Disable (0) operation.
117+
118+
*Value range: [0, 1], Default: 1*
119+
**operationEnabled**: int, read-only
120+
1: Operation enabled, 0: Operation disabled (Bit 2).
121+
122+
*Value range: [0, 1], Default: 1*
123+
**operationMode**: int, read-only
124+
Operation Mode. -4: ATC, -3: AVC, -2: APC, -1: Voltage mode, 0: Controller not
125+
activated, 1: PP (default), 3: PV, 6: Homing, 8: CSP, 9: CSV, 10: CST. Register
126+
'0x6060.00'.
127+
128+
*Value range: [-4, 10], Default: 1*
129+
**positionLimits**: Sequence[int]
130+
Lower/ upper limit of the position range in userdefined uints. Register lower limit
131+
'0x607D.01', upper limit '0x607D.02'.
132+
133+
*Allowed number of values: 0 - 18446744073709551615, All values allowed, Default: [-inf,
134+
inf]*
135+
**power**: int
136+
Enable (1) or Disable (0) device power.
137+
138+
*Value range: [0, 1], Default: 1*
139+
**productCode**: str, read-only
140+
Product code number. Register '0x1018.02'.
141+
142+
*Match: "", Default: "11601"*
143+
**profileVelocity**: int
144+
Profile velocity in 1/min. Register '0x6081.00'.
145+
146+
*Value range: [1, 32767], Default: 4000*
147+
**quickStop**: int, read-only
148+
1: Quick stop enabled, Quick stop disabled (Bit 5).
149+
150+
*Value range: [0, 1], Default: 1*
151+
**quickStopDeceleration**: int
152+
Quickstop deceleration in 1/s². Register '0x6085.00'.
153+
154+
*Value range: [1, 32750], Default: 30000*
155+
**readyToSwitchOn**: int, read-only
156+
1: Ready to switch ON, 0: Not ready to switch ON (Bit 0).
157+
158+
*Value range: [0, 1], Default: 1*
159+
**revisionNumber**: str, read-only
160+
Revision number. Register '0x1018.03'
161+
162+
*Match: "", Default: "14"*
163+
**serialNumber**: str, read-only
164+
Serial number of device. Register '0x2400.03'.
165+
166+
*Match: "", Default: "492300001"*
167+
**setPointAcknowledged**: int, read-only
168+
1: New set-point has been loaded, 0: Previous set-point being changed or already reached
169+
(Bit 12).
170+
171+
*Value range: [0, 1], Default: 0*
172+
**switchOnDisabled**: int, read-only
173+
1: Switch on disabled, 0: Switch on enabled (Bit 6).
174+
175+
*Value range: [0, 1], Default: 0*
176+
**switchedOn**: int, read-only
177+
1: Drive is in the 'Switched ON' state, 0: No voltage present (Bit 1).
178+
179+
*Value range: [0, 1], Default: 1*
180+
**targetReached**: int, read-only
181+
1: Target has reached, 0: is moving (Bit 10).
182+
183+
*Value range: [0, 1], Default: 1*
184+
**targetTorque**: int
185+
Set target value of the torque in relative scaling. Register '0x6071.00'.
186+
187+
*Value range: [-32768, 32767], Default: 0*
188+
**temperatureCPU**: int, read-only
189+
CPU temperature in [°C]. Register '0x2326.01'.
190+
191+
*Value range: [0, 32767], Default: 44*
192+
**temperaturePowerStage**: int, read-only
193+
Power stage temperature in [°C]. Register '0x2326.02'.
194+
195+
*Value range: [0, 32767], Default: 30*
196+
**temperatureWinding**: int, read-only
197+
Winding temperature in [°C]. Register '0x2326.03'.
198+
199+
*Value range: [0, 32767], Default: 29*
200+
**torque**: int, read-only
201+
Actual value of the torque in relative scaling. Register '0x6077.00'.
202+
203+
*Value range: [-32768, 32767], Default: 0*
204+
**torqueGainControl**: int
205+
Torque control gain parameter [mOm]. Register '0x2342.01'.
206+
207+
*Value range: [-1, 0], Default: 1835*
208+
**torqueIntegralTimeControl**: int
209+
Torque control integral time control parameter [µs]. Register '0x2342.01'.
210+
211+
*Value range: [150, 2600], Default: 150*
212+
**torqueLimits**: Sequence[int]
213+
Negative/ positive torque limit values in relative scaling. 1000 = motor rated torque.
214+
Register negative limit '0x60E1.00', positive limit '0x60E0.00'.
215+
216+
*Allowed number of values: 0 - 18446744073709551615, Value range: [0, 6000], Default:
217+
[6000, 6000]*
218+
**velocityDeviationThresholdControl**: int
219+
Velocity deviation threshold control parameter. Register '0x2344.03'.
220+
221+
*Value range: [0, 65535], Default: 65535*
222+
**velocityDeviationTimeControl**: int
223+
Velocity deviation time control parameter. Register '0x2344.04'.
224+
225+
*Value range: [0, 65535], Default: 100*
226+
**velocityGainControl**: int
227+
Velocity gain control parameter [As 1e-6]. Register '0x2342.01'.
228+
229+
*Value range: [-1, 0], Default: 1835*
230+
**velocityIntegralPartOption**: int
231+
Velocity integral part option. Configuration of the speed control loop. '0': integral
232+
component active, '1': stopped integral component in the position windoed (in PP mode),
233+
'2': integral component deactivated. Register '0x2344.06'.
234+
235+
*Value range: [0, 2], Default: 0*
236+
**velocityIntegralTimeControl**: int
237+
Velocity integral time control parameter [µs]. Register '0x2344.02'.
238+
239+
*Value range: [0, 65535], Default: 23*
240+
**velocityWarningThresholdControl**: int
241+
Velocity warning threshold control parameter. Register '0x2344.05'.
242+
243+
*Value range: [0, 65535], Default: 30000*
244+
**vendorID**: str, read-only
245+
Vendor ID of device. Register '0x1018.01'.
246+
247+
*Match: "", Default: "327"*
248+
**voltageEnabled**: int, read-only
249+
1: Power supply enabled, 0: Power supply disabled (Bit 4).
250+
251+
*Value range: [0, 1], Default: 0*
252+
**warning**: int, read-only
253+
1: One of the monitored temperatures has exceeded at least the warning threshold, 0: No
254+
raised temperatures (Bit 7).
255+
256+
*Value range: [0, 1], Default: 0*
257+
258+
259+
Additional functions (exec functions)
260+
=====================================
261+
262+
By using the following execFunctions you execute homing according the homing methods.
263+
264+
.. py:function:: instance.exec('homing', method [,offset, switchSeekVelocity, homingSpeed, acceleration, limitCheckDelayTime, torqueLimits])
265+
266+
In most of the cases before position control is to be used, the drive must perform a reference run to align the position used by the drive to the mechanic setup.
267+
268+
:param method: Homing method. Methods 1…34: A limit switch or an additional reference switch is used as reference. Method 37: The position is set to 0 without reference run. Methods –1…–4: A mechanical limit stop is set as reference. Register '0x6098.00'.
269+
:type method: int
270+
:param offset: Offset of the zero position relative to the position of the reference switch in userdefined units. Register '0x607C.00'.
271+
:type offset: int - optional
272+
:param switchSeekVelocity: Speed during search for switch. Register '0x6099.01'.
273+
:type switchSeekVelocity: int - optional
274+
:param homingSpeed: Speed during search for zero. Register '0x6099.02'.
275+
:type homingSpeed: int - optional
276+
:param acceleration: Speed during search for zero. Register '0x609A.00'.
277+
:type acceleration: int - optional
278+
:param limitCheckDelayTime: Delay time until blockage detection [ms]. Register '0x2324.02'.
279+
:type limitCheckDelayTime: int - optional
280+
:param torqueLimits: Upper/ lower limit values for the reference run in 1/1000 of the rated motor torque. Register negative limit '0x2350.00', positive limit '0x2351.00'.
281+
:type torqueLimits: Sequence[int] - optional
282+
283+
Exemplary usage from Python
284+
===========================
285+
286+
In the following examples, it is shown how to use this Plugin.
287+
First an instance must be initialized using the ``SerialIO`` Plugin.
288+
289+
.. code-block:: python
290+
291+
from itom import actuator, dataIO
292+
293+
com = dataIO("SerialIO", 6, 115200, "\n") # adapt COM port number
294+
mot = actuator("FaulhaberMCS", com, 1)
295+
296+
The current position can be set to zero by using the ``setOrigin`` method of the plugin:
297+
298+
.. code-block:: python
299+
300+
mot.setOrigin(0)
301+
302+
The relative position can be set to a specific value by using the ``setPosRel`` method of the plugin:
303+
304+
.. code-block:: python
305+
306+
mot.setPosRel(0, 4096)
307+
308+
The absolute position can be set to a specific value by using the ``setPosAbs`` method of the plugin:
309+
310+
.. code-block:: python
311+
312+
mot.setPosAbs(0, 4096)
313+
314+
Additional homing methods can be executed by using the ``exec`` method of the plugin:
315+
316+
.. code-block:: python
317+
318+
mot.exec("homing", -3, torqueLimits=[300, 300]) # mechanical limit stop is set as reference
319+
320+
Parameters can be read by using the ``getParam`` method of the plugin:
321+
322+
.. code-block:: python
323+
324+
print(mot.getParam("positionLimits"))
325+
326+
Parameters can be set by using the ``setParam`` method of the plugin:
327+
328+
.. code-block:: python
329+
330+
mot.setParam("profileVelocity", 2000)
331+
332+
Motor can be turned off setting parameter ``operation``:
333+
334+
.. code-block:: python
335+
336+
mot.setParam("operation", 0) # turn off motor
337+
mot.setParam("operation", 1) # turn on motor
338+
339+
The motor voltage is turned off setting parameter ``power``:
340+
341+
.. code-block:: python
342+
343+
mot.setParam("power", 0) # turn off motor voltage
344+
345+
# To turn it on again, first it must be shut down
346+
mot.setParam("operation", 0)
347+
mot.setParam("operation", 1) # turn on motor
348+
349+
For long movement operations, the timeout can be set:
350+
351+
.. code-block:: python
352+
353+
mot.setParam("moveTimeout", 60000) # set timeout to 60s
354+
355+
The torque control parameter are changed by the plugin parameter:
356+
357+
.. code-block:: python
358+
359+
mot.setParam("torqueGainControl", 1835)
360+
mot.setParam("torqueIntegralTimeControl", 150)
361+
362+
The flux control parameter are changed by the plugin parameter:
363+
364+
.. code-block:: python
365+
366+
mot.setParam("fluxGainControl", 1835)
367+
mot.setParam("fluxIntegralTimeControl", 150)
368+
369+
The velocity control parameter are changed by the plugin parameter:
370+
371+
.. code-block:: python
372+
373+
mot.setParam("velocityGainControl", 1835)
374+
mot.setParam("velocityIntegralTimeControl", 23)
375+
mot.setParam("velocityDeviationThresholdControl", 65535)
376+
mot.setParam("velocityDeviationTimeControl", 100)
377+
mot.setParam("velocityWarningThresholdControl", 30000)
378+
mot.setParam("velocityIntegralPartOption", 0)
379+
380+
Changelog
381+
==========
382+
383+
* itom setup 4.3.0 - v1.0.0: Initial version

0 commit comments

Comments
 (0)