1. Introduction DMX K is an all-in-one integrated motor package that combines all the motion components in to one convenient package. DMX K Series has the following features: RS-485 or RS-232 ASCII communication with 9600, 19200, 38400, 57600, 115200 Baud rate Standalone programming using easy to use text based programming language Opto-isolated +Limit/-Limit/Home inputs Opto-isolated 6 digital inputs...
Model Numbers Main Product DMX-K-SA-17- Motor Stack Size 2 – Double 3 – Triple 4 - Quad 17 – NEMA 17 Motor SA - Standalone K – K Series DMX K-SA Manual page 7 rev 3.07...
Page 8
Accessories Part ID: DMX-K-SA-IFB Description: Interface Board for the DMX-K-SA. Part ID: DMX-K-24FF3 Description: 24 pin female to female cable 3 ft long DMX K-SA Manual page 8 rev 3.07...
Default Settings Following are the factory default settings when then unit is shipped from the factory. Communication Method RS-232 Baud Rate 9600 Device ID DMK01 Idle Current 1000 mA Run Current 1600 mA Idle Time 500 mSec StepNLoop Enabled StepNLoop Maximum Attempt StepNLoop Tolerance Range StepNLoop Error Range 1000...
Page 10
Contacting Support For any technical support, contact by email at support@arcus-technology.com or by phone 1-510-661-9100 from 9 AM to 5 PM PST (California, U.S.A.). DMX K-SA Manual page 10 rev 3.07...
Prepare a Windows XP compatible PC with RS-232 communication port. If the PC does not have RS-232 communication port, USB to RS-232 converter is needed. Connect DMX-K-SA to the Interface board using 24-pin cable. Connect RS-232 communication lines between the Junction board and PC. Supply +24V power and GND.
Page 13
Click on the Search All button on the middle right corner if the DMX-K is configured for RS-485. RS-485 is a multi-drop protocol which allows many devices to be connected on a bus. This routine will search for all devices available on COM1 to COM12.
Connector Pin Outs Description Pin Pin Description 485+ HOME 485- +LIM RS-232 TXD 9 10 -LIM 11 12 13 14 15 16 OPTO SUPPLY 17 18 RS-232 RXD 19 20 OPTO GND 21 22 23 24 Junction Board 24 pin connector junction board which breaks out the 24 pin signals to screw terminals shown below is available for quick wiring and testing.
Page 18
Interface Circuit Note: All the digital inputs (Limits, Home, DI1 to DI6) have same opto-isolated circuitry) DMX K-SA Manual page 18 rev 3.07...
Digital Input Connections Limit, Home and Digital Inputs 1 to 6 are opto-isolated inputs. Connect the Opto-Supply using 12-24VDC input. To trigger the Limit, Home, or Digital Inputs, sink the line to ground of the Opto-supply. DI2 is used also as a high speed position capture digital input. Digital Output Connections Digital outputs are opto-isolated outputs using a Darlington transistor that can sink up to 100mA of current at maximum voltage of 24VDC.
6. Electrical Specifications Power Requirement Regulated Supply Voltage Range: +12 to +35 VDC Recommended Current for power supply: 2.5 A Important Note: Higher voltage recommended for high speed application Communication Interface: RS-232 (default) 9600, 19200, 38400, 57600, 115K Baud RS-232 Arcus ASCII command support RS-485: 9600, 19200, 38400, 57600, 115K...
7. Communication There are two ways to communicate with DMX-K series product: RS-232 and RS-485. RS-232 When the DMX-K unit is shipped from the factory, default communication setting is RS- 232 at 9600 baud rate. Note that RS-232 is a point-to-point protocol. See figure below: DMX K-SA Manual page 21 rev 3.07...
Page 22
RS-485 If RS-485 communication is required, first you need to communicate using RS-232 and use the Windows program to change the communication method to RS-485, download the setup, and store to flash. Once communication method is changed, you need to reboot the module for the new parameter to take effect and then communicate through RS-485.
Communication Protocol Communication protocol and commands are the same for both RS-232 and RS-485. Sending Command to DMX-K ASCII command string in the format of @[DeviceName][ASCII Command][CR] [CR] character has ASCII code 13. Receiving Reply from DMX-K The response will be in the format of [Response][Null] [Null] character has ASCII code 0.
ASCII Commands Command Description Return ABORT Immediately stops the motor if in motion. For decelerate stop, use STOP command. This command is used for clearing the StepNLoop error status Returns current acceleration value in milliseconds. Acceleration value in milliseconds ACC=[Value] Sets acceleration value in milliseconds Clears limit error CLRS...
Page 25
Return the limit correction amount 32-bit number LCA=[Value] Set the limit correction amount LSPD Returns Low Speed Setting Value in PPS LSPD=[Value] Sets Low Speed LT=[0 or 1] Enable or disable position latch feature Returns latched encoder position 32-bit number Returns latched pulse position 32-bit number Returns latch status.
Page 26
8 – Correction Range Error. 9 – Correction Attempt Error. 10 – Stall Error 11 – Limit Error Returns StepNLoop tolerance value 32-bit SLT=[value] Sets StepNLoop tolerance value STORE Store values to flash memory SLOAD Returns RunOnBoot parameter SLOAD=[0 or 1] 0 –...
8. Feature Overview Built-in encoder DMX-K comes with a 1000 line encoder. With quadrature decoding, 4000 count/rev resolution is reached. Use the EX command to read and set the encoder position. Pulse position can read and set using the PX command. When StepNLoop closed-loop control is enabled: EX command returns encoder position PX command returns the real-time target position of your move...
S-curve velocity profile is shown below. S-Curve reduces the jerk resulting in reduced vibration and wear on the mechanical system, and higher acceleration control. Acceleration and deceleration time is in milliseconds and are symmetrical. Use the ACC command to set and get the acceleration/deceleration value. High Speed and Low Speed are in pps (pulses/second).
Page 29
5000000 To select a speed window, use the SSPDM command. At boot-up, the SSPDM value is equal to 0. If you are to set your destination speed outside of your current window, the SSPD feature will not work correctly. Note: The lower the SSPDM value, the more accurate the pulse output speed will be. Therefore, it is recommended to choose the lowest SSPDM value as possible.
Motor Power Using the EO command, the motor power can be enabled or disabled. Polarity Using POL command, polarity of following signals can be configured: Description Direction Limit Home Latch In Position Output Alarm Output Homing Three types of automatic homing are available. 1) Homing using only the HOME input switch: Issuing home command starts the motor from low speed and accelerates to high speed.
Page 31
To trigger the home input switch, supply the opto-supply voltage with 12 to 24VDC and connect the home input signal to opto-supply ground. Use H+ or H- commands for this type of homing. Note: This type of homing has a feature to take into account the possibility of hitting a limit switch during the H+ or H- operation.
Page 32
2) Homing using only the Z index encoder channel: Z index channel occurs once per revolution of the motor. Homing can be done using only the Z index channel. Z Index homing command is issued and the motor uses only the low speed. When the Z index channel trigger is found, position is set to zero and the motor stop immediately.
Page 33
3) Homing using the Z index encoder channel and HOME input switch: Homing can be done using both the HOME switch input and Z index encoder channel to get accurate and consistent home position. When home command is issued, pulse ramps up from low to high speed. As soon as the home input is triggered, the pulse rate ramps down to low speed.
Jogging Jogging is available for continuous speed operation. Use J+ and J- commands to jog in positive or negative direction. To stop the motor, use the STOP or ABORT commands. Stopping Motor When motor is moving, jogging, or homing, ABORT command will immediately stop the motor.
the opto-supply voltage 12 to 24VDC. To trigger the limit input switch, connect the input signal to ground of opto-supply. Digital Inputs / Outputs DMX-K has 6 digital inputs and 3 digital outputs. To read and set digital outputs, use DO command to for all three bits. For individual bits, use DO[bit #] command.
Sync Output DMX-K has synchronization digital output for triggering the output when the encoder position value meets the set condition. DO2 is used as synchronization digital output when the feature is enabled. Use SYNO to enable the synchronization output feature. Use SYNF to disable the synchronization output feature.
StepNLoop Closed Loop Control DMX-K module has closed loop position control algorithm called StepNLoop control for accurate positioning of the motor using the integrated encoder. StepNLoop control does following operations: Position Delta monitoring: Delta position is the difference between the actual and the target position.
Following are the StepNLoop status values: Value Description Idle Moving Correcting Stopping Aborting Jogging Homing Z Homing Correction Range Error. To clear this error, use CLRS command. Correction Attempt Error. To clear this error, use CLRS command. Stall Error. DX value has exceeded the SLE value.
To read the actual current at anytime, use the CUR command When setting idle and rung current, the range must be within 100mA to 2500mA, unless the user wishes to have the motor become disabled during idle state. To do this, set the idle current to 0.
Storing to Flash The following items are stored to flash: • Device Number (used for RS-485 ASCII communication) • Baud rate • Polarity settings • StepNLoop enable • StepNLoop parameters • Run Current • Idle Current • Idle Time • Automatic program run on power up •...
9. DMX-K Windows Program DMX-K comes with user friendly Windows Program to quickly communicate, test, program, and debug the DMX-K unit. From Arcus Technology support web site download the DMX-K installation program. Start the DMX-K program and following dialog box will show. Serial Communication Port Number.
Page 42
Open connection uses the selected COM port and the device name to open communication with the DMX-K module. DMX K-SA Manual page 42 rev 3.07...
Page 43
When connecting for the first time, we recommend that search is done to find out the COM port number where the DMX-K is connected. If search cannot find the DMX-K device or open connection does not find the DMX-K, check the following: Check power supply to DMX-K.
Page 44
When Open Connection button is pressed and communication is successfully established, following screen will show: DMX K-SA Manual page 44 rev 3.07...
Page 45
Status box shows the following Current pulse position (when StepNLoop is enabled, pulse position is encoder position is shown) Current encoder position Delta position – this is the difference between the target position and actual position. Speed – actual speed. When StepNLoop is enabled, this value is in encoder counts/sec.
Page 47
Digital Input and Output Status Digital Output bit 1 – this is general purpose digital output when StepNLoop is disabled. When StepNLoop is enabled, DO1 is used as In-Position output. Digital Output bit 2 – this is general purpose digital output when Sync Output is disabled.
Page 48
Product ID & Firmware Displays the product ID of DMX-K as well as the firmware version of the module. Communication Communication Status – Displays communication status with the selected device. Device ID – Device ID of the communicating DMX-K. To communicate with a different DMX-K on-the-fly, select another ID number from this drop-down box.
Page 49
Setup DMX-K configuration values are automatically loaded when the program is started. All the configuration changes are uploaded and download all at once. This means that in order for the configuration to become effective, download button must be pressed. In order for the configuration to be permanent, store to flash must be pressed.
Page 50
Polarity values – direction, pulse, home, limit, latch input, in position output, alarm output values can be selected in this section. Device Name – Device name ranges from DMK01 to DMK99. Run Program on Power Up – this feature enables automatic run of the program when the device is powered up.
Page 51
Save – Save the current parameters into a file. When this button is pressed, typical Windows file save dialog box will open: Open – Open a file of saved parameters. Parameters will be loaded into the configuration box. Before parameters are made effective, you must perform a download procedure When this button is pressed, typical Windows file open dialog box will open: DMX K-SA Manual...
Page 52
Terminal Send Terminal based commands to the DMX-K. Click on the button above to display the following window. Response Window – Displays the response if any from the command line Address – Select the address of the DMX-K module which you wish to communicate.
Page 53
broadcast command which will be received by all DMX-K modules on a RS-485 bus. Send command – Type the commands here manually. When sending commands, you do not need to type the device name. For example, when you want to know what the motor status is, type MST and you will see a number on the reply that represents the status of the motor.
Page 54
G. Program File and Standalone Program Process Open - standalone program is loaded to the editor box. When this button is pressed, typical Windows file open dialog box will open: DMX K-SA Manual page 53 rev 3.07...
Page 55
Save – standalone program in the text edit is saved to a file. When this button is pressed, typical Windows file save dialog box will open: New – when this button is pressed, the text editor is cleared. Compile – use this button to compile the text program. Download –...
Page 56
DMX-K Windows program has online help for the high level language for the standalone programming. When help button is pressed, following help page will show: DMX K-SA Manual page 55 rev 3.07...
Page 57
This is typical help file where you can click each command and see the description, syntax, example, and related commands as shown below. DMX K-SA Manual page 56 rev 3.07...
Page 58
Control Target position, high speed, low speed, and acceleration is entered here Enable – motor power is turned on or off using this check box. When motor is disabled, no motion is done. S-Curve – when this check box is checked, S-curve profile is used.
Page 59
H+/H- - homing is done using only the home sensor. When home sensor is triggered during homing, the position counter is reset to zero and the motor decelerates to low speed and stops. After homing, the position is not necessarily zero due to deceleration after the trigger of the home switch.
Page 60
Pause – program that is running can be paused. f. Continue – program that is paused can be continued Text Program Editor DMX-K has standalone program capability. Standalone program can be loaded and written in this area. DMX K-SA Manual page 59 rev 3.07...
Page 61
K. Low Level Program List Once the high level program is compiled, the low level code is shown in this list. This list is not editable. DMX K-SA Manual page 60 rev 3.07...
10. Standalone Language Specification Following are the details of the language that can be used to program standalone program. Description: Comment notation Note: In programming, comment must be in its own line. Syntax: ; [Comment Text] Examples: ; ***This is a comment ;***Jogs X axis to positive direction DELAY=100 ;***Wait 1 second...
Description: Set acceleration value. Value is in milliseconds. Range is from 1 to 10,000. Syntax: ACC=[long value] ACC=[variable] Examples: ACC=300 ;***Sets the acceleration to 300 milliseconds V3=500 ;***Sets the variable 3 to 500 ACC=V3 ;***Sets the acceleration to variable 3 value of 500 DELAY Description: Set a delay (1 ms units)
Page 64
Description: Gets the digital input value DriveMax-K-485 has 6 digital inputs Syntax: [variable] = DI Examples: DO=7 ;***Turn first 3 bits on and rest off IF DI=0 DO=1 ;***If no digital inputs are triggered, set DO=1 ENDIF DI[1-6] Description: Gets the individual digital input value DriveMax-K-485 has 6 digital inputs Syntax: [variable] = DI[1-6]...
Page 65
Description: Sets the digital output value DriveMax-K-485 has 3 digital outputs Syntax: DO = [value] DO = [variable] Examples: DO=7 ;***Turn 3 bits on V1=0 WHILE V1<7 DO=V1 ;***Output DO to value variable 1 V1=V1+1 ENDWHILE DO[1-3] Description: Sets the individual digital output value DriveMax-K-485 has 3 digital outputs Syntax: DO[1-3] = [value]...
Description: Sets the current encoder position Syntax: Examples: JOGX+ ;***Jogs X axis to positive direction DELAY=100 ;***Wait 1 second ABORT ;***Stop with deceleration all axes including X axis ECLEARX Description: Clears error status Syntax: ECLEARX Examples: ECLEARX ;***Clears error of axis X DMX K-SA Manual page 65 rev 3.07...
ELSE Description: Perform ELSE condition check as a part of IF statement Syntax: ELSE Examples: IF V1=1 X1000 ;***If V1 is 1, then move to 1000 ELSE X-1000 ;***If V1 is not 1, then move to -1000 ENDIF DMX K-SA Manual page 66 rev 3.07...
ELSEIF Description: Perform ELSEIF condition check as a part of the IF statement Syntax: ELSEIF [Argument 1] [Comparison] [Argument 2] [Argument] can be any of the following: Numerical value Pulse or Encoder Position Digital Output Digital Input Enable Output Motor Status [Comparison] can be any of the following Equal to >...
Description: Indicate end of program. Program status changes to idle when END is reached. Note: Subroutine definitions should be written AFTER the END statement Syntax: Examples: X1000 ENDIF Description: Indicates end of IF operation Syntax: ENDIF Examples: IF V1=1 X1000 ENDIF DMX K-SA Manual page 68...
ENDSUB Description: Indicates end of subroutine When ENDSUB is reached, the program returns to the previously called subroutine. Note: Subroutine definitions should be written AFTER the END statement Syntax: ENDSUB Examples: GOSUB 1 SUB 1 X1000 ENDSUB ENDWHILE Description: Indicate end of WHILE loop Syntax: ENDWHILE Examples:...
Page 71
Description: Sets the enable output value Syntax: EO= [value] EO = [variable] Examples: EO=1 ;***Turn on enable output GOSUB Description: Perform go to subroutine operation Subroutine range is from 1 to 32. Note: Subroutine definitions should be written AFTER the END statement Syntax: GOSUB [subroutine number] [Subroutine Number] range is 1 to 32...
HOMEX Description: Perform homing using current high speed, low speed, and acceleration. Syntax: HOMEX[+ or -] Examples: HOMEX+ ;***Homes X axis in positive direction HSPD Description: Sets high speed. Value is in pulses/second. Range is from 1 to 6,000,000. Syntax: HSPD=[long value] HSPD=[variable] Examples:...
Page 73
Description: Perform IF condition check Syntax: IF [Argument 1] [Comparison] [Argument 2] [Argument] can be any of the following: Numerical value Pulse or Encoder Position Digital Output Digital Input Enable Output Motor Status [Comparison] can be any of the following Equal to >...
JOGX Description: Perform jogging using current high speed, low speed, and acceleration. Syntax: JOGX[+ or -] Examples: JOGX+ ;***Jogs X axis in positive direction JOGX- ;***Jogs X axis in negative direction DMX K-SA Manual page 73 rev 3.07...
LSPD Description: Set low speed. Value is in pulses/second. Range is from 1 to 6,000,000. Syntax: LSPD=[long value] LSPD=[variable] Examples: LSPD=1000 ;***Sets the start low speed to 1,000 pulses/sec V1=500 ;***Sets the variable 1 to 500 LSPD=V1 ;***Sets the start low speed to variable 1 value of 500 MSTX Description: Get motor status of axis...
Page 76
Description: Gets the current speed of the controller Syntax: [variable] = PS Examples: IF PS=2999 DO=1 ;***If pulse speed is 2999, set DO=1 ENDIF Description: Sets the current pulse position Syntax: PX=[long value] PX=[variable] Examples: JOGX+ ;***Jogs X axis to positive direction DELAY=100 ;***Wait 1 second ABORT...
Description: S-curve is enabled and disabled. Syntax: SCV=[0 or 1] Examples: SCV=1 ;***Enables S Curve SCV=0 ;***Disables S Curve SSPD Description: Change speed of motor on the fly Syntax: SSPD=[long value] SSPD=[variable] Examples: JOGX+ ;***Jogs X axis to positive direction DELAY=100 ;***Wait 1 second SSPD=1000...
SSPDM Description: Change on-the-fly speed window Syntax: SSPDM=[long value] SSPDM=[variable] Examples: SSPDM=5 ;***Change on-the-fly speed window to 5 HSPD=1000 ;***Set high speed to 1000 JOGX+ ;***Jogs X axis to positive direction DELAY=100 ;***Wait 1 second ACC=20000 ;***Set acceleration to 20 sec SSPD=180000 ;***Change X axis speed on the fly with acc of 20 sec STOPX...
Description: Indicates start of subroutine Syntax: SUB [subroutine number] [Subroutine Number] range is 1 to 32 Examples: GOSUB 1 SUB 1 X1000 ENDSUB DMX K-SA Manual page 78 rev 3.07...
SYNCCFG Description: Sets the synchronization output condition 1 – Encoder position is EQUAL to sync position 2 – Encoder position is LESS than sync position 3 – Encoder position is GREATER than sync position Syntax: SYNCCFG=[1,2,3] Examples: EX=0 EO=1 SYNCPOS= -1000 SYNCCFG=2 ;***When encoder is less than -1000 sync output done SYNCON...
SYNCSTAT Description: Reads the sync output status. 0 – idle 1 – waiting for sync 2 – sync occurred. Syntax: V[var #]=SYNCSTAT SYNCSTAT can be used with IF, WHILE statements. Examples: V1=SYNCSTAT WHILE SYNCSTAT=1 ENDWHILE IF SYNCSTAT=2 ENDIF DMX K-SA Manual page 81 rev 3.07...
Page 83
V[1-99] Description: Assign to variable. DriveMax-K-SA has 99 variables [V1-V99] Syntax: V[Variable Number] = [Argument] V[Variable Number] = [Argument1][Operation][Argument2] Special case for BIT NOT: V[Variable Number] = ~[Argument] [Argument] can be any of the following: Numerical value Pulse or Encoder Position Digital Output Digital Input Enable Output...
V5=~EO ;***Sets Variable 5 to bit NOT of enable output value V6=DO & 8 ;***Bit AND digital output and 8 and save to var 6 V7=MSTX >> 2 ;***Bit shift right motor X status by 2 and save to var 7 WAITX Description: Tell program to wait until move on the certain axis is finished before executing...
WHILE Description: Perform WHILE loop Syntax: WHILE [Argument 1] [Comparison] [Argument 2] [Argument] can be any of the following: Numerical value Pulse or Encoder Position Digital Output Digital Input Enable Output Motor Status [Comparison] can be any of the following Equal to >...
Description: Perform X axis move to target location With other Axis moves in the same line, linear interpolation move is done. Syntax: X[value] X[variable] Examples: X10000 ;***Move X Axis to position 10000 V10 = 1200 ;***Set variable 10 value to 1200 XV10 ;***Move X Axis to variable 10 value ZHOMEX...
Page 87
Contact Information Arcus Technology, Inc. 48501 Warm Springs Blvd #104 Fremont, CA 94539 510-661-9100 510-661-9200 www.arcus-technology.com DMX K-SA Manual page 86 rev 3.07...
Need help?
Do you have a question about the DMX-K-SA and is the answer not in the manual?
Questions and answers