Wisconsin Parts Database Instructions and Discussion Team/Group   >   WISCONSIN   >   Electrical Components   >   Add   >   Used   >   Without Warranty   >   Galil dmc-1830 h optima pci motion controller +CABLE100

Galil dmc-1830 h optima pci motion controller +CABLE100


Galil PCI Optima series 3 axis motion controller DMC1830 revision H
It can precisely control the position, speed, ac/deceleration of 3 motors according to a program; it reacts to 8 discrete inputs (useable for turning on/off, changing the sense/speed etc); it considers 8 analog inputs (so the speed can be adjusted from a potentiometer or a sensor); it has 8 discrete outputs, that together with the 8 + 8 inputs can implement a small PLC; the program resides in an EEPROM and can have 8 threads. Usable also as 8 channel oscilloscope, 8 channel logic analyzer, 8 channel TTL waveform generator for slow signals.
* Motor types: each axis can be configured for servo brush (16 bit DAC => +/- 10V and PWM), servo brushless (which takes two axis, sin and cos), step (step and direction)
* For each axis there are these inputs: 2 from quadr encoder, index, home, fw limit, reverse limit; and these outputs: amp enable, motor voltage (-10V to 10V, for brush), sign and PWM (for brush), direction and step (for step)
* Modes of motion: point-to-point, position tracking, jogging, linear and circular interpolation, tangential following, helical, gearing, gantry, cam, contouring, teach and playback
* Filter: PID with velocity and acceleration feedforward, dual-loop (an auxiliary encoder attached to the load, used for backlash compensation), integration and torque limits, offset; trapezoidal and 'S' velocity profiles
* Position: 12Mcounts/s on 32 bit
* Velocity: up to 12Mcnt/s for servo, up to 3Mstep/s for stepper
* Acceleration: up to 67Mcnt/ss
* Digital inputs: 8, TTL (optical isolation)
* Digital outputs: 8, TTL (optical isolation)
* Program: 1000 lines on non-volatile memory; 8 threads
* CD (copy of the original one) includes: drivers, utilities, manuals and command references
* Factory price: 1,895$. Link to card.
* Condition: used, but tested with both servo and stepper, OK. Cable-100-1m included (125$ value); axes currently configured by me (jumpers and EEPROM) for: X = servo, Y and Z = step.
SW utilities (newer versions on website):
SmartTerminal - drivers and terminal program for sending commands, editing/downloading/saving programs and arrays, updating firmware, displaying digital in/outputs, home and limit switches, axis positions/velocity/torque/motion status (on CD); the second picture shows it after running the program exemple 1 (see below); the upper left window is for sending commands, the lower left window displays messages from the controller, the right hand window is for multiline program editing and debugging (breakpoints, variables watch); the program can be downloaded to the controller or saved on disk as a *.dmc text file.
DMCSetup - display and edit the configuration parameters: motor and encoder type, position and torque limits, PID constants, speed, acceleration, outputs etc; also displays current position/velocity/torque, switches status, analog and digital inputs values (on CD); use it to change the EEPROM content
DMC.NET - class library to control the card from a VB.NET or C# application (on website); add a reference in your Visual Studio project to the DMCNet COM library and then you can send Galil commands or ask it to execute a *.dmc program that you wrote, debuged and saved with SmartTerm; more info.
1. Home routine for X (linear) - it moves end to end and sets the position from 0 to maximum:
SHX; 'x axis on (signal 'enable x' = high, for the amplifier)
JGX=-10000; 'move backwards with 10000cnt/s
AMX; 'after reaching the limit
JGX=10000; 'move forward with 10000cnt/s
MG "MAX FW=",_TPX; 'display the max position
MOX; 'motor off (enable x = low)
2. Control the X axis spin speed from a potentiometer at input 1 (pin 91):
JGX = @AN[1] * 1000; 'read voltage and update speed
3. Signal generator - it can generate 8 TTL waveforms at the outputs:
AT 0; OP 255; '1111 1111 @ 0ms
AT 10; OP 10; '0000 1010 @ 10ms
AT 50; JP #A; 'repeat after 50ms
1. send commands to the controller (brdGalil is a DMCAPI type object; DMCAPI defined in the imported DMCNet lib):
brdGalil.sCommand("SHX; JGX=-10000; BGX; AMX; DP 0; JGX=10000; BGX; AMX;")
brdGalil.apiDownloadAppProgramFromFile("C:\...your path here...\Xinit.dmc", "")
3. a linear servo actuator follows side to side your mouse dragged cursor of a trackbar (like the one you use to adjust the volume on your computer) named trbPosition, placed on the form. The subroutine that handles the event triggered by the dragging:
Private Sub trbPosition_Scroll(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles trbPosition.Scroll
brdGalil.sCommand("PAX=" & trbPosition.Value.ToString & ";BGX;AMX;")
Or you can control the speed of a spinning motor if you replace PAX with JGX.
4. now, vice versa: you push-pull the shaft of the actuator and the cursor on the screen follows it; define a timer control in your program for sampling and:
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
trbPosition.Value = CInt(brdGalil.sCmdTrim("TPX"))
You can save these successive position values and draw a waveform of the movement or reproduce them later (record and playback). In the contour mode you can have all 3 axes doing that.
More examples. And a good programming manual.
Installation: install DMCsmartterminal, shut down and install the board; when 'Add new hw' wizard starts, select 'Install from a list or specific location', 'Include this location' and [Browse] to Program Files\Galil Common\DevInstall.



Galil dmc-1830 h optima pci motion controller +CABLE100 Galil dmc-1830 h optima pci motion controller +CABLE100