Created by: gwideman, Aug 9, 2012 6:27 pm
Revised by: gwideman, Sep 21, 2012 11:15 pm (14 revisions)

Overview

This page lists functions exposed ("exported") by the several laser cutter driver DLLs. Insight into these DLLs is crucial to understanding the relationship between the commands in Lasercut53's .TXT output file, and whatever is the binary information that results from "compiling" to a .MOL file, and becomes the input instructions to the MPC 6515.
The main Lasercut53.exe program references (imports) several DLLs which appear to be needed to drive different Leetro controller models:
  • Board driver DLLs
    • mpc03ls.dll: Corresponds to MPC 03 PCI controller card
    • mpc03lx.dll: Corresponds to MPC 03LX PCI controller card
    • mpc05ls.dll; Corresponds to MPC 05 and 6515 external controller cards connected via USB. These are our main interest.
  • USB Communications to MPC6515
    • CommM05.dll: Handles communication over USB to MPC6515.

Review of Lasercut53 structure

The current page focuses on the DLLs which drive the various laser cutter controllers that Lasercut53 can handle. These DLLs appear to the right of the diagram below.
Lasercut_CompDep_Components2.png

Functions and commands

As will be seen in the tables in sections below, each of the mpc*.dlls contains many functions which are clearly basic laser cutting motions and actions. Yet for laser cutters controlled via USB, Lasercut does not control the laser apparatus directly. Instead, Lasercut composes a series of commands into a text file, then calls mpc05ls.dll to compile them (into a .MOL file), and only later sends that file to the MPC 6515 laser cutter over USB. (Alternatively, the user may copy the file to an SD memory card, and manually transfer the file to the laser cutter's SD card reader).
A couple of sources help shed light on more details.

Typical motion-control and laser action steps

The MPC 2810 manual Fig 1-2A shows a typical sequence of functions for general motion control.
Phase
Example functions
Controller initialization
auto_set()
init_board()
Controller mode setup
set_outmode()
set_home_mode()
Motion parameter setup
set_maxspeed()
set_profile()
Motion commands
fast_pmove()
Motion status
check_done()
For the scenario considered here, this typical sequence of functions must be prepackaged as commands that can be compiled and sent at a later time over USB to the MPC 6515.

Typical compilation process

The RELaserSoftware project shows a trace of the sequence of mpc05ls.dll function calls seen when running a job. (I'm not sure how complete this is, nor exactly the scope of the trace. Note that these calls, though presented as a flat list, may be nested. For example, compile_work_file() probably calls set_work_file().)

Assembling the clues

Piecing these clues together, it seems that:
  • Output: When the user requests that output be created, the main Lasercut application translates drawing elements into a sequence of laser settings, and movement and action commands in a text file.
  • Compilation: mpc05ls.dll parses the text commands, and "compiles" each one by calling the corresponding laser cutter motion and action functions.
    • I infer that calling each of those functions produces a block of binary instruction code that is placed in the .MOL file, later to be sent to the MPC 6515, and is in whatever form the MPC 6515 knows how to interpret or execute.
Note that in the listings below I show which mpc05ls functions are actually imported by Lasercut53. Relatively few functions are imported, which concords with the assumption that it's only the compilation process that invokes the bulk of the library's motion and laser control functions.

USB Communications DLL CommM05.dll

The DLL CommM05.dll provides the low-level functions to communicate via USB to the basic command and file interface of the MPC 6515. As the diagram above shows, it is only called from mpc05ls.dll, though that DLL exports most of the functions by names that differ only in prefix.
(CommM05.dll presumably uses Windows APIs for lowest level communication over USB, and Windows in turn is aided by the Cypress EZUSB driver which knows how to implement various USB protocols to the Cypress USB controller chip on board the MPC 6515.)

Explanation of columns:

  • Category: I assigned some category labels in order to group together functions that are related. Functions appear in alphabetical order within each category.
  • BaseName: The same functions appear in two or more DLLs, differing only by prefix. This column gives the common part of the name.
  • {} represents BaseName. Ie: in the row for function start_move, cm_{} represents a function named cm_start_move.
  • "imports" columns: Y indicates that the dll or executable named in the column head does import the function
N
Category
BaseName
CommM05
exports as
mpc05ls.dll
imports
mpc05ls exports
function as
Lasercut53
imports
1
LaserCmd
start_move
cm_{}
Y

.
2

stop_move
cm_{}
Y

.
3
CtlrComm
close_link
cm_{}
Y
M05_{}
Y
4

close_link
cm_{}
Y
M05_{}
Y
5

init_comm
cm_{}
Y

.
6

on_comm
cm_{}
Y
M05_{}
Y
7

on_comm
cm_{}
Y
M05_{}
Y
8

open_link
cm_{}
Y
M05_{}
Y
9

open_link
cm_{}
Y
M05_{}
Y
10
CtlrCmd
read_data
cm_{}
Y
M05_{}
.
11

send_cmd
cm_{}
Y
M05_{}
Y
12

send_cmd
cm_{}
Y
M05_{}
Y
13

send_data
cm_{}
Y
M05_{}
.
14
CtlrFileIO
close_file
cm_{}
Y
M05_{}
Y
15

close_file
cm_{}
Y
M05_{}
Y
16

create_file
cm_{}
Y
M05_{}
Y
17

create_file
cm_{}
Y
M05_{}
Y
18

del_all_file
cm_{}
Y
M05_{}
Y
19

del_file
cm_{}
Y
M05_{}
Y
20

get_file_num
cm_{}
Y
M05_{}
Y
21

open_file
cm_{}
Y
M05_{}
Y
22

open_file
cm_{}
Y
M05_{}
Y
23

write_file
cm_{}
Y
M05_{}
.
Notes:
  • Though mpc05ls does not export a particular CommM05 function, it still may call that function internally.

Board driver DLLs and their functions

The tables below list functions exported by mpc03ls.dll, mpc03lx.dll and mpc05ls.dll. I have provided several versions of this table:
  • Only those functions of mpc05ls.dll which are actually called by Lasercut53.exe. This is a relatively short list, which gives the least-cluttered idea of how the MPC6515 is commanded by Lasercut53.
  • Only those functions of any of the DLLs which are actually called by Lasercut53.exe. This is a longer list, and provides a more complete idea of the kinds of operations Lasercut53 needs to perform, and perhaps sheds some light on the set of commands that might be compiled and sent to the MPC6515 through the workfile mechanism.
  • All functions exposed by any of the DLLs.

Explanation of columns:

  • Category: This groups functions together in the table so that related functions appear nearby. Functions appear in alphabetical order within each category.
  • BaseName: The same functions appear in two or more DLLs, differing only by prefix. This column gives the common part of the name.
  • "_exp" columns: For each DLL, shows whether that function is exported. To save space, the symbol "{}" represents the base name, so for function xyz, "M05_{}" means that the name of that function in that DLL is M05_xyz.
  • "imp" columns: Y indicates that Lasercut53 imports that function.
  • RL column: RL indicates that the ReLaserSoftware mpc05ls.h file provides a signature (prototype) for this function. This is of interest because the DLL export tables provide only the function names, not the arguments or return types
  • mpc 2810 column: 28 indicates that this function appears in the mpc2810 library, and more interestingly, in the associated Software Manual. The MPC2810 is a controller for general motion control (not specifically for laser cutters). Nonetheless, this is of interest because there is some overlap of functions, and Leetro supplies documentation and examples for the MPC2810 library, which sheds some light on the similar functions, and also on the naming conventions.

Functions of mpc05ls.dll imported by Lasercut53

The following table lists only those functions of mpc05ls.dll which are actually imported by Lasercut53.exe. This is a relatively short list, which gives the least-cluttered idea of how the MPC6515 is commanded by Lasercut53.
  • Of particular note: The ReLaserSoftware project has demonstrated how to call mpc05ls.dll to compile a sequence of commands in a .txt file into a .MOL file. See the github link in the
N
Category
BaseName
mpc03ls
_exp
imp
mpc03lx
_exp
imp
mpc05ls
_exp
imp
Mpc05ls
_RL
mpc
2810
1
CtlrInit
init_board
{}
Y
lx_{}
Y
M05_{}
Y
RL
28
2
HdwrCfg
get_board_info
{}
.

.
M05_{}
Y
RL
.
3

get_board_ver
{}
.
{}
.
M05_{}
Y
RL
.
4

get_hdw_ver

.
lx_{}
Y
M05_{}
Y
RL
.
5

get_lib_ver
{}
.
lx_{}
Y
M05_{}
Y
RL
28
6

GetCardNumber

.

.
M05_{}
Y
.
.
7
CtlrComm
close_link

.

.
M05_{}
Y
RL
.
8

on_comm

.

.
M05_{}
Y
RL
.
9

open_link

.

.
M05_{}
Y
RL
.
10
CtlrCmd
send_cmd

.

.
M05_{}
Y
RL
.
11
CtlrFileIO
close_file

.

.
M05_{}
Y
RL
.
12

create_file

.

.
M05_{}
Y
RL
.
13

del_all_file

.

.
M05_{}
Y
RL
.
14

del_file

.

.
M05_{}
Y
RL
.
15

get_file_num

.

.
M05_{}
Y
RL
.
16

open_file

.

.
M05_{}
Y
RL
.
17
Workfiles
compile_work_file

.

.
M05_{}
Y
RL
.
18

download_work_file

.

.
M05_{}
Y
RL
.
19

set_work_file

.

.
M05_{}
Y
RL
.
20
UseTime
GetCanUseTime

.

.
M05_{}
Y
.
.
21

GetHasUseTime

.

.
M05_{}
Y
.
.
22

SetCanUseTime

.

.
M05_{}
Y
.
.
23

SetHasUseTime

.

.
M05_{}
Y
.
.
24
CtlrFlashMem
erase_flash

.

.

Y
.
.
25

read_data_from_flash

.

.

Y
.
.
26

write_data_to_flash

.

.

Y
.
.
27
Misc
ReadDogNumber

.

.
M05_{}
Y
.
.
28

WriteDogNumber

.

.
M05_{}
Y
.
.
29
Unknown
control_func

.

.
M05_{}
Y
RL
.
30

get_pre_worktime

.

.

Y
.
.

DLL functions imported by Lasercut53

The following table lists only those functions exported by mpc03ls.dll, mpc03lx.dll and mpc05ls.dll which are imported by Lasercut53.exe. (ie: "actually used").
N
Category
BaseName
mpc03ls
_exp
imp
mpc03lx
_exp
imp
mpc05ls
_exp
imp
Mpc05ls
_RL
mpc
2810
1
CtlrInit
init_board
{}
Y
lx_{}
Y
M05_{}
Y
RL
28
2
HdwrCfg
get_board_info
{}
.

.
M05_{}
Y
RL
.
3

get_board_ver
{}
.
{}
.
M05_{}
Y
RL
.
4

get_debug_info
{}
Y

.
M05_{}
.
RL
.
5

get_fmw_ver

.
lx_{}
Y

.
.
.
6

get_hdw_ver

.
lx_{}
Y
M05_{}
Y
RL
.
7

get_lib_ver
{}
.
lx_{}
Y
M05_{}
Y
RL
28
8

get_sn
{}
.
lx_{}
Y
M05_{}
.
RL
.
9

GetCardNumber

.

.
M05_{}
Y
.
.
10

set_pwm_frq
{}
Y
lx_{}
Y
M05_{}
.
RL
.
11

set_pwm2_frq

.
lx_{}
Y
M05_{}
.
.
.
12
MotionSetup
c_set_curve_radius

.

Y

.
.
.
13

c_set_lkh_lenth

.
lx_{}
Y

.
.
.
14

c_set_lkh_step

.
lx_{}
Y

.
.
.
15

c_set_max_accel
_{}@8
Y
lx_{}
Y
M05_{}
.
RL
28
16

c_set_max_varspd

.

Y

.
.
.
17

c_set_move_profile
{}
Y
lx_{}
Y
M05_{}
.
RL
.
18

c_set_vector_profile
{}
Y
lx_{}
Y
M05_{}
.
RL
28
19

change_speed_ontime

.
lx_{}
Y

.
.
.
20

end_backlash
{}
Y
lx_{}
Y
M05_{}
.
RL
28
21

set_abs_pos
{}
Y
lx_{}
Y
M05_{}
.
RL
28
22

set_axis_ratio
{}
.
lx_{}
Y

.
.
.
23

set_backlash
{}
Y
lx_{}
Y
M05_{}
.
RL
28
24

set_conacc_start_speed

.
lx_{}
Y

.
.
.
25

set_conspeed
{}
.
lx_{}
Y
M05_{}
.
RL
28
26

set_home_mode
{}
Y
lx_{}
Y
M05_{}
.
RL
28
27

set_maxspeed
{}
Y
lx_{}
Y
M05_{}
.
RL
28
28

set_profile
{}
Y
lx_{}
Y
M05_{}
.
RL
28
29

set_s_profile

.

Y

.
.
.
30

set_scan_startpos
{}
Y
lx_{}
Y
M05_{}
.
RL
.
31

set_scan_step
{}
Y
lx_{}
Y
M05_{}
.
RL
.
32

set_vector_conspeed
{}
Y
lx_{}
Y
M05_{}
.
RL
28
33

set_vector_profile
{}
Y
lx_{}
Y
M05_{}
.
RL
28
34

set_vector_s_profile

.

Y

.
.
.
35
LaserSetup
c_set_laser_mode
{}
Y
lx_{}
Y
M05_{}
.
RL
.
36

c_set_multi_power

.
lx_{}
Y
M05_{}
.
.
.
37

c_set_power
{}
Y
lx_{}
Y
M05_{}
.
RL
.
38

set_laser_mode
{}
Y
lx_{}
Y
M05_{}
.
RL
.
39

set_power_mode
_{}@4
Y
lx_{}
Y
M05_{}
.
RL
.
40

write_power_tab
{}
Y
lx_{}
Y
M05_{}
.
RL
.
41
CmdBatch
c_delay_time
{}
Y
lx_{}
Y
M05_{}
.
RL
.
42

check_batch_done
{}
Y
lx_{}
Y
M05_{}
.
RL
.
43

delay_time
{}
Y
lx_{}
Y
M05_{}
.
RL
28
44

get_cmd_counter_excute

.
lx_{}
Y

.
.
.
45

get_cmd_counter_sent

.
lx_{}
Y

.
.
.
46

set_batch_flag
{}
.
lx_{}
Y
M05_{}
.
RL
.
47

set_cmd_counter
{}
.
lx_{}
Y
M05_{}
.
RL
28
48
MotionCmd
c_arc_curve

.
lx_{}
Y

.
.
.
49

c_bzerve_curve

.
lx_{}
Y

.
.
.
50

c_curve_begin
{}
Y
lx_{}
Y
M05_{}
.
RL
.
51

c_curve_end
{}
Y
lx_{}
Y
M05_{}
.
RL
.
52

c_fast_line2
{}
Y
lx_{}
Y
M05_{}
.
RL
.
53

c_move_pause
{}
Y
{}
.
M05_{}
.
RL
.
54

c_move_resume
{}
Y
{}
.
M05_{}
.
RL
.
55

c_move_start
{}
Y

.
M05_{}
.
RL
.
56

con_hmove
{}
.
lx_{}
Y
M05_{}
.
RL
28
57

con_hmove2
{}
.
lx_{}
Y
M05_{}
.
RL
28
58

con_line2
{}
Y
lx_{}
Y
M05_{}
.
RL
28
59

con_pmove
{}
Y
lx_{}
Y
M05_{}
.
RL
28
60

con_pmove2
{}
.
lx_{}
Y
M05_{}
.
RL
28
61

con_vmove
{}
.
lx_{}
Y
M05_{}
.
RL
28
62

con_vmove2
{}
.
lx_{}
Y
M05_{}
.
RL
28
63

decel_stop
{}
.
lx_{}
Y
M05_{}
.
RL
28
64

decel_stop2
{}
.
lx_{}
Y
M05_{}
.
RL
28
65

decel_stop3
{}
Y
lx_{}
Y
M05_{}
.
RL
28
66

fast_arc_center
{}
.
lx_{}
Y
M05_{}
.
RL
28
67

fast_hmove
{}
Y
lx_{}
Y
M05_{}
.
RL
28
68

fast_hmove2
{}
.
lx_{}
Y
M05_{}
.
RL
28
69

fast_line2
{}
Y
lx_{}
Y
M05_{}
.
RL
28
70

fast_pmove
{}
Y
lx_{}
Y
M05_{}
.
RL
28
71

fast_pmove2
{}
.
lx_{}
Y
M05_{}
.
RL
28
72

fast_scan

.

Y

.
.
.
73

fast_vmove
{}
.
lx_{}
Y
M05_{}
.
RL
28
74

fast_vmove2
{}
.
lx_{}
Y
M05_{}
.
RL
28
75

m_move_resume
{}
Y
{}
.
M05_{}
.
RL
.
76

move_pause
{}
Y
lx_{}
Y
M05_{}
.
RL
28
77

move_resume
{}
Y
lx_{}
Y
M05_{}
.
RL
28
78

reset_pos
{}
.
lx_{}
Y
M05_{}
.
RL
28
79

start_backlash
{}
Y
lx_{}
Y
M05_{}
.
RL
28
80

sudden_stop
{}
.
lx_{}
Y
M05_{}
.
RL
28
81

sudden_stop2
{}
.
lx_{}
Y
M05_{}
.
RL
28
82

sudden_stop3
{}
.
lx_{}
Y
M05_{}
.
RL
28
83
LaserCmd
c_change_multi_voltage

.
lx_{}
Y

.
.
.
84

c_change_voltage
{}
.
lx_{}
Y
M05_{}
.
RL
.
85

change_multi_voltage

.
lx_{}
Y
M05_{}
.
.
.
86

change_power_ontime

.
lx_{}
Y

.
.
.
87

change_voltage
{}
Y
lx_{}
Y
M05_{}
.
RL
.
88

change_voltage2

.
lx_{}
Y
M05_{}
.
.
.
89
MotionStatus
check_done
{}
.
lx_{}
Y
M05_{}
.
RL
28
90

check_home
{}
.
lx_{}
Y
M05_{}
.
RL
28
91

check_limit
{}
.
lx_{}
Y
M05_{}
.
RL
28
92

check_SD
{}
.
lx_{}
Y
M05_{}
.
RL
28
93

check_status
{}
.
lx_{}
Y
M05_{}
.
RL
28
94

check_status32
{}
Y
lx_{}
Y
M05_{}
.
RL
.
95

get_abs_pos
{}
Y
lx_{}
Y
M05_{}
.
RL
28
96

get_rate
{}
.
lx_{}
Y
M05_{}
.
RL
28
97

get_rate
{}
.
{}
Y
M05_{}
.
RL
28
98

show_err
{}
Y
_lx_{}@4
Y
M05_{}
.
RL
.
99

show_err
{}
Y
{}
Y
M05_{}
.
RL
.
100
CtlrComm
close_link

.

.
M05_{}
Y
RL
.
101

on_comm

.

.
M05_{}
Y
RL
.
102

open_link

.

.
M05_{}
Y
RL
.
103
CtlrCmd
read_data
{}
.
lx_{}
Y
M05_{}
.
RL
.
104

send_cmd

.

.
M05_{}
Y
RL
.
105

set_senddata_flag
{}
Y
{}
.
M05_{}
.
RL
.
106

write_data
{}
.
lx_{}
Y
M05_{}
.
RL
.
107

write_data_block
{}
Y
lx_{}
Y
M05_{}
.
RL
.
108

write_power_data
{}
Y
lx_{}
Y
M05_{}
.
RL
.
109
CtlrFileIO
close_file

.

.
M05_{}
Y
RL
.
110

create_file

.

.
M05_{}
Y
RL
.
111

del_all_file

.

.
M05_{}
Y
RL
.
112

del_file

.

.
M05_{}
Y
RL
.
113

get_file_num

.

.
M05_{}
Y
RL
.
114

open_file

.

.
M05_{}
Y
RL
.
115
Workfiles
compile_work_file

.

.
M05_{}
Y
RL
.
116

download_work_file

.

.
M05_{}
Y
RL
.
117

set_work_file

.

.
M05_{}
Y
RL
.
118
UseTime
GetCanUseTime

.

.
M05_{}
Y
.
.
119

GetHasUseTime

.

.
M05_{}
Y
.
.
120

SetCanUseTime

.

.
M05_{}
Y
.
.
121

SetHasUseTime

.

.
M05_{}
Y
.
.
122
CtlrFlashMem
erase_flash

.

.

Y
.
.
123

read_data_from_flash

.

.

Y
.
.
124

write_data_to_flash

.

.

Y
.
.
125
PortIO
c_outport_bit

.
lx_{}
Y

.
.
.
126

c_outport_bit_ex
{}
Y
{}
.

.
.
.
127

c_outport_byte

.
lx_{}
Y

.
.
.
128

checkin_bit
{}
.
lx_{}
Y
M05_{}
.
RL
28
129

checkin_bit_ex
{}
Y
{}
.

.
.
.
130

checkin_byte
{}
.
lx_{}
Y
M05_{}
.
RL
28
131

outport_bit
{}
.
lx_{}
Y
M05_{}
.
RL
28
132

outport_bit_ex
{}
Y
{}
.

.
.
.
133

outport_byte
{}
.
lx_{}
Y
M05_{}
.
RL
28
134

set_outmode
{}
Y
lx_{}
Y
M05_{}
.
RL
28
135
Misc
ReadDogNumber

.

.
M05_{}
Y
.
.
136

WriteDogNumber

.

.
M05_{}
Y
.
.
137
Unknown
c_write_data

.
lx_{}
Y

.
.
.
138

control_func

.

.
M05_{}
Y
RL
.
139

get_output

.
lx_{}
Y

.
.
.
140

get_pre_worktime

.

.

Y
.
.
141

set_level_in
{}
Y
lx_{}
Y
M05_{}
.
RL
.
142

set_level_sprt
{}
.
lx_{}
Y
M05_{}
.
RL
.
143

set_signal_in
{}
.
lx_{}
Y
M05_{}
.
RL
.

All functions exported by the DLLs

See above for explanation of columns.
N
Category
BaseName
mpc03ls
_exp
imp
mpc03lx
_exp
imp
mpc05ls
_exp
imp
Mpc05ls
_RL
mpc
2810
1
CtlrInit
init_board
{}
Y
lx_{}
Y
M05_{}
Y
RL
28
2

system_test
{}
.
{}
.
M05_{}
.
RL
.
3
HdwrCfg
get_board_info
{}
.

.
M05_{}
Y
RL
.
4

get_board_ver
{}
.
{}
.
M05_{}
Y
RL
.
5

get_debug_info
{}
Y

.
M05_{}
.
RL
.
6

get_dll_info
{}
.

.
M05_{}
.
RL
.
7

get_fmw_ver

.
lx_{}
Y

.
.
.
8

get_hdw_ver

.
lx_{}
Y
M05_{}
Y
RL
.
9

get_lib_ver
{}
.
lx_{}
Y
M05_{}
Y
RL
28
10

get_sn
{}
.
lx_{}
Y
M05_{}
.
RL
.
11

GetCardNumber

.

.
M05_{}
Y
.
.
12

set_encoder_mode
{}
.
{}
.
M05_{}
.
RL
28
13

set_pulse_per_milimter

.

.
M05_{}
.
RL
.
14

set_pwm_frq
{}
Y
lx_{}
Y
M05_{}
.
RL
.
15

set_pwm2_frq

.
lx_{}
Y
M05_{}
.
.
.
16

set_xy_ratio
_{}@8
.
{}
.
M05_{}
.
RL
.
17
MotionSetup
c_set_curve_radius

.

Y

.
.
.
18

c_set_lkh_lenth

.
lx_{}
Y

.
.
.
19

c_set_lkh_step

.
lx_{}
Y

.
.
.
20

c_set_max_accel
_{}@8
Y
lx_{}
Y
M05_{}
.
RL
28
21

c_set_max_varspd

.

Y

.
.
.
22

c_set_move_profile
{}
Y
lx_{}
Y
M05_{}
.
RL
.
23

c_set_vector_profile
{}
Y
lx_{}
Y
M05_{}
.
RL
28
24

change_speed_ontime

.
lx_{}
Y

.
.
.
25

end_backlash
{}
Y
lx_{}
Y
M05_{}
.
RL
28
26

m_set_vector_profile
{}
.
{}
.
M05_{}
.
RL
.
27

m_set_vector_profile2
{}
.
{}
.
M05_{}
.
RL
.
28

mc_set_ramp_flag
?{}@@YGHH@Z
.

.
{}
.
.
.
29

mc_set_vector_conspeed
_{}@8
.

.
M05_{}
.
RL
.
30

mc_set_vector_profile
_{}@24
.

.
M05_{}
.
RL
.
31

set_abs_pos
{}
Y
lx_{}
Y
M05_{}
.
RL
28
32

set_axis_ratio
{}
.
lx_{}
Y

.
.
.
33

set_backlash
{}
Y
lx_{}
Y
M05_{}
.
RL
28
34

set_conacc_start_speed

.
lx_{}
Y

.
.
.
35

set_conspeed
{}
.
lx_{}
Y
M05_{}
.
RL
28
36

set_ellipse_ratio
{}
.
{}
.
M05_{}
.
RL
28
37

set_getpos_mode
{}
.
{}
.
M05_{}
.
RL
28
38

set_home_mode
{}
Y
lx_{}
Y
M05_{}
.
RL
28
39

set_maxspeed
{}
Y
lx_{}
Y
M05_{}
.
RL
28
40

set_profile
{}
Y
lx_{}
Y
M05_{}
.
RL
28
41

set_ramp_flag
{}
.
{}
.
M05_{}
.
RL
.
42

set_s_curve
{}
.
{}
.
M05_{}
.
RL
28
43

set_s_profile

.

Y

.
.
.
44

set_s_section
{}
.
{}
.
M05_{}
.
RL
28
45

set_scan_backlash
{}
.
{}
.
M05_{}
.
RL
.
46

set_scan_startpos
{}
Y
lx_{}
Y
M05_{}
.
RL
.
47

set_scan_step
{}
Y
lx_{}
Y
M05_{}
.
RL
.
48

set_vector_conspeed
{}
Y
lx_{}
Y
M05_{}
.
RL
28
49

set_vector_profile
{}
Y
lx_{}
Y
M05_{}
.
RL
28
50

set_vector_s_profile

.

Y

.
.
.
51
LaserSetup
c_set_laser_mode
{}
Y
lx_{}
Y
M05_{}
.
RL
.
52

c_set_multi_power

.
lx_{}
Y
M05_{}
.
.
.
53

c_set_period
{}
.
{}
.
{}
.
.
.
54

c_set_power
{}
Y
lx_{}
Y
M05_{}
.
RL
.
55

m_set_laser_mode
{}
.
{}
.
M05_{}
.
RL
.
56

m_set_period
{}
.
{}
.
M05_{}
.
RL
.
57

m_set_power
{}
.
{}
.
M05_{}
.
RL
.
58

mc_set_laser_mode
_{}@4
.

.
M05_{}
.
RL
.
59

set_laser_mode
{}
Y
lx_{}
Y
M05_{}
.
RL
.
60

set_power_compensate

.

.
M05_{}
.
.
.
61

set_power_mode
_{}@4
Y
lx_{}
Y
M05_{}
.
RL
.
62

write_power_tab
{}
Y
lx_{}
Y
M05_{}
.
RL
.
63
BlowerSetup
c_set_blow_mode

.

.
M05_{}
.
RL
.
64

m_set_blow_mode

.

.
M05_{}
.
RL
.
65

mc_set_blow_mode

.

.
M05_{}
.
RL
.
66

set_blow_mode

.

.
M05_{}
.
RL
.
67
CmdBatch
c_delay_time
{}
Y
lx_{}
Y
M05_{}
.
RL
.
68

call_sub

.

.
M05_{}
.
RL
.
69

check_batch_done
{}
Y
lx_{}
Y
M05_{}
.
RL
.
70

delay_time
{}
Y
lx_{}
Y
M05_{}
.
RL
28
71

get_cmd_counter
{}
.
{}
.
M05_{}
.
RL
28
72

get_cmd_counter_excute

.
lx_{}
Y

.
.
.
73

get_cmd_counter_sent

.
lx_{}
Y

.
.
.
74

m_delay_time
{}
.
{}
.
M05_{}
.
RL
.
75

main_begin

.

.
M05_{}
.
RL
.
76

main_end

.

.
M05_{}
.
RL
.
77

reset_cmd_counter
{}
.
{}
.
M05_{}
.
RL
28
78

set_batch_flag
{}
.
lx_{}
Y
M05_{}
.
RL
.
79

set_cmd_counter
{}
.
lx_{}
Y
M05_{}
.
RL
28
80

sub_begin

.

.
M05_{}
.
RL
.
81

sub_end

.

.
M05_{}
.
RL
.
82

work_begin

.

.
M05_{}
.
RL
.
83

work_end

.

.
M05_{}
.
RL
.
84
MotionCmd
arc_center
{}
.
lx_{}
.
M05_{}
.
RL
28
85

arc_final
{}
.
{}
.
M05_{}
.
RL
28
86

c_arc_curve

.
lx_{}
Y

.
.
.
87

c_bzerve_curve

.
lx_{}
Y

.
.
.
88

c_curve_begin
{}
Y
lx_{}
Y
M05_{}
.
RL
.
89

c_curve_end
{}
Y
lx_{}
Y
M05_{}
.
RL
.
90

c_curve_vertex
{}
.
{}
.
M05_{}
.
RL
.
91

c_fast_line2
{}
Y
lx_{}
Y
M05_{}
.
RL
.
92

c_move_pause
{}
Y
{}
.
M05_{}
.
RL
.
93

c_move_resume
{}
Y
{}
.
M05_{}
.
RL
.
94

c_move_start
{}
Y

.
M05_{}
.
RL
.
95

c_move_stop
{}
.
{}
.
M05_{}
.
RL
.
96

con_hmove
{}
.
lx_{}
Y
M05_{}
.
RL
28
97

con_hmove2
{}
.
lx_{}
Y
M05_{}
.
RL
28
98

con_hmove3
{}
.
{}
.
M05_{}
.
RL
28
99

con_line2
{}
Y
lx_{}
Y
M05_{}
.
RL
28
100

con_line3
{}
.
{}
.
M05_{}
.
RL
28
101

con_pmove
{}
Y
lx_{}
Y
M05_{}
.
RL
28
102

con_pmove2
{}
.
lx_{}
Y
M05_{}
.
RL
28
103

con_pmove3
{}
.

.
M05_{}
.
RL
28
104

con_vmove
{}
.
lx_{}
Y
M05_{}
.
RL
28
105

con_vmove2
{}
.
lx_{}
Y
M05_{}
.
RL
28
106

con_vmove3
{}
.
{}
.
M05_{}
.
RL
28
107

decel_stop
{}
.
lx_{}
Y
M05_{}
.
RL
28
108

decel_stop2
{}
.
lx_{}
Y
M05_{}
.
RL
28
109

decel_stop3
{}
Y
lx_{}
Y
M05_{}
.
RL
28
110

fast_arc_center
{}
.
lx_{}
Y
M05_{}
.
RL
28
111

fast_hmove
{}
Y
lx_{}
Y
M05_{}
.
RL
28
112

fast_hmove2
{}
.
lx_{}
Y
M05_{}
.
RL
28
113

fast_hmove3
{}
.

.
M05_{}
.
RL
28
114

fast_line2
{}
Y
lx_{}
Y
M05_{}
.
RL
28
115

fast_line2_to

.

.
M05_{}
.
RL
.
116

fast_line3
{}
.
{}
.
{}
.
.
28
117

fast_pmove
{}
Y
lx_{}
Y
M05_{}
.
RL
28
118

fast_pmove2
{}
.
lx_{}
Y
M05_{}
.
RL
28
119

fast_pmove3
{}
.

.
M05_{}
.
RL
28
120

fast_scan

.

Y

.
.
.
121

fast_vmove
{}
.
lx_{}
Y
M05_{}
.
RL
28
122

fast_vmove2
{}
.
lx_{}
Y
M05_{}
.
RL
28
123

fast_vmove3
{}
.

.
M05_{}
.
RL
28
124

m_curve_begin
{}
.
{}
.
M05_{}
.
RL
.
125

m_curve_end
{}
.
{}
.
M05_{}
.
RL
.
126

m_curve_vertex
{}
.
{}
.
M05_{}
.
RL
.
127

m_fast_line2
{}
.
{}
.
M05_{}
.
RL
.
128

m_move_pause
{}
.
{}
.
M05_{}
.
RL
.
129

m_move_resume
{}
Y
{}
.
M05_{}
.
RL
.
130

m_move_start
{}
.
{}
.
M05_{}
.
RL
.
131

m_move_stop
{}
.
{}
.
M05_{}
.
RL
.
132

mc_con_line2
_{}@16
.

.
M05_{}
.
RL
.
133

mc_delay_time
_{}@4
.

.
M05_{}
.
RL
.
134

mc_fast_line2
_{}@16
.

.
M05_{}
.
RL
.
135

move_pause
{}
Y
lx_{}
Y
M05_{}
.
RL
28
136

move_resume
{}
Y
lx_{}
Y
M05_{}
.
RL
28
137

reset_pos
{}
.
lx_{}
Y
M05_{}
.
RL
28
138

start_backlash
{}
Y
lx_{}
Y
M05_{}
.
RL
28
139

start_run

.

.
M05_{}
.
RL
.
140

stop_run

.

.
M05_{}
.
RL
.
141

sudden_stop
{}
.
lx_{}
Y
M05_{}
.
RL
28
142

sudden_stop2
{}
.
lx_{}
Y
M05_{}
.
RL
28
143

sudden_stop3
{}
.
lx_{}
Y
M05_{}
.
RL
28
144
LaserCmd
c_change_multi_voltage

.
lx_{}
Y

.
.
.
145

c_change_voltage
{}
.
lx_{}
Y
M05_{}
.
RL
.
146

change_multi_voltage

.
lx_{}
Y
M05_{}
.
.
.
147

change_power_ontime

.
lx_{}
Y

.
.
.
148

change_voltage
{}
Y
lx_{}
Y
M05_{}
.
RL
.
149

change_voltage2

.
lx_{}
Y
M05_{}
.
.
.
150

m_change_voltage
{}
.
{}
.
M05_{}
.
RL
.
151

mc_begin_cut
{}
.
{}
.
M05_{}
.
RL
.
152

mc_change_multi_voltage

.

.
M05_{}
.
.
.
153

mc_change_voltage
_{}@4
.

.
M05_{}
.
RL
.
154

mc_end_cut
{}
.
{}
.
M05_{}
.
RL
.
155
MotionStatus
check_alarm
{}
.
{}
.
M05_{}
.
RL
28
156

check_buffer
{}
.
{}
.
M05_{}
.
RL
.
157

check_done
{}
.
lx_{}
Y
M05_{}
.
RL
28
158

check_EncA
{}
.
{}
.
M05_{}
.
RL
.
159

check_EncB
{}
.
{}
.
M05_{}
.
RL
.
160

check_EncZ
{}
.
{}
.
M05_{}
.
RL
.
161

check_home
{}
.
lx_{}
Y
M05_{}
.
RL
28
162

check_limit
{}
.
lx_{}
Y
M05_{}
.
RL
28
163

check_SD
{}
.
lx_{}
Y
M05_{}
.
RL
28
164

check_status
{}
.
lx_{}
Y
M05_{}
.
RL
28
165

check_status32
{}
Y
lx_{}
Y
M05_{}
.
RL
.
166

get_abs_pos
{}
Y
lx_{}
Y
M05_{}
.
RL
28
167

get_encoder
{}
.
{}
.
M05_{}
.
RL
28
168

get_err
{}
.
{}
.
M05_{}
.
RL
28
169

get_last_err
{}
.
{}
.
M05_{}
.
RL
28
170

get_rate
{}
.
{}
Y
M05_{}
.
RL
28
171

get_rate
{}
.
lx_{}
Y
M05_{}
.
RL
28
172

get_rel_pos
{}
.
{}
.
M05_{}
.
RL
28
173

get_status
{}
.
{}
.
M05_{}
.
RL
.
174

reset_err
{}
.
{}
.
M05_{}
.
RL
28
175

show_err
{}
Y
_lx_{}@4
Y
M05_{}
.
RL
.
176

show_err
{}
Y
{}
Y
M05_{}
.
RL
.
177
CtlrComm
close_link

.

.
M05_{}
Y
RL
.
178

comm_read_data

.

.
M05_{}
.
RL
.
179

on_comm

.

.
M05_{}
Y
RL
.
180

open_link

.

.
M05_{}
Y
RL
.
181

set_comm

.

.
M05_{}
.
RL
.
182
CtlrCmd
read_data
{}
.
lx_{}
Y
M05_{}
.
RL
.
183

send_cmd

.

.
M05_{}
Y
RL
.
184

send_data

.

.
M05_{}
.
RL
.
185

set_senddata_flag
{}
Y
{}
.
M05_{}
.
RL
.
186

write_data
{}
.
lx_{}
Y
M05_{}
.
RL
.
187

write_data_block
{}
Y
lx_{}
Y
M05_{}
.
RL
.
188

write_power_data
{}
Y
lx_{}
Y
M05_{}
.
RL
.
189
CtlrFileIO
close_file

.

.
M05_{}
Y
RL
.
190

create_file

.

.
M05_{}
Y
RL
.
191

del_all_file

.

.
M05_{}
Y
RL
.
192

del_file

.

.
M05_{}
Y
RL
.
193

get_file_num

.

.
M05_{}
Y
RL
.
194

open_file

.

.
M05_{}
Y
RL
.
195

write_file

.

.
M05_{}
.
RL
.
196
Workfiles
compile_work_file

.

.
M05_{}
Y
RL
.
197

download_work_file

.

.
M05_{}
Y
RL
.
198

set_work_file

.

.
M05_{}
Y
RL
.
199
UseTime
GetCanUseTime

.

.
M05_{}
Y
.
.
200

GetHasUseTime

.

.
M05_{}
Y
.
.
201

SetCanUseTime

.

.
M05_{}
Y
.
.
202

SetHasUseTime

.

.
M05_{}
Y
.
.
203
CtlrFlashMem
access_flash
{}
.
{}
.
M05_{}
.
RL
.
204

erase_flash

.

.

Y
.
.
205

read_data_from_flash

.

.

Y
.
.
206

write_data_to_flash

.

.

Y
.
.
207
PortIO
c_outport_bit

.
lx_{}
Y

.
.
.
208

c_outport_bit_ex
{}
Y
{}
.

.
.
.
209

c_outport_byte

.
lx_{}
Y

.
.
.
210

c_outport_byte_ex
{}
.
{}
.

.
.
.
211

checkin_bit
{}
.
lx_{}
Y
M05_{}
.
RL
28
212

checkin_bit_ex
{}
Y
{}
.

.
.
.
213

checkin_byte
{}
.
lx_{}
Y
M05_{}
.
RL
28
214

checkin_byte_ex
{}
.
{}
.

.
.
.
215

mc_outport_data
_{}@8
.

.

.
.
.
216

mi_checkin_bit
{}
.
{}
.
M05_{}
.
RL
.
217

mi_checkin_byte
{}
.
{}
.
M05_{}
.
RL
.
218

outport_bit
{}
.
lx_{}
Y
M05_{}
.
RL
28
219

outport_bit_ex
{}
Y
{}
.

.
.
.
220

outport_byte
{}
.
lx_{}
Y
M05_{}
.
RL
28
221

outport_byte_ex
{}
.
{}
.

.
.
.
222

outport_data
{}
.
{}
.
M05_{}
.
RL
.
223

set_outmode
{}
Y
lx_{}
Y
M05_{}
.
RL
28
224
CommonIO
c_set_common_IO

.

.
M05_{}
.
RL
.
225

c_set_commonIO_3

.

.
M05_{}
.
RL
.
226

m_set_common_IO

.

.
M05_{}
.
RL
.
227

m_set_commonIO_3

.

.
M05_{}
.
RL
.
228

mc_set_common_IO

.

.
M05_{}
.
RL
.
229

mc_set_commonIO_3

.

.
M05_{}
.
RL
.
230

set_common_IO

.

.
M05_{}
.
RL
.
231

set_commonIO_3

.

.
M05_{}
.
RL
.
232
EcpNum
check_ecp_num
{}
.
{}
.
M05_{}
.
RL
.
233

verify_ecp_num
{}
.
{}
.
M05_{}
.
RL
.
234

write_ecp_num
{}
.
{}
.
M05_{}
.
RL
.
235
Misc
ReadDogNumber

.

.
M05_{}
Y
.
.
236

WriteDogNumber

.

.
M05_{}
Y
.
.
237
Unknown
c_write_data

.
lx_{}
Y

.
.
.
238

control_func

.

.
M05_{}
Y
RL
.
239

get_output

.
lx_{}
Y

.
.
.
240

get_pre_worktime

.

.

Y
.
.
241

set_level_in
{}
Y
lx_{}
Y
M05_{}
.
RL
.
242

set_level_sprt
{}
.
lx_{}
Y
M05_{}
.
RL
.
243

set_signal_in
{}
.
lx_{}
Y
M05_{}
.
RL
.
244

set_work_mode

.

.
M05_{}
.
RL
.
245

sys_set

.

.
M05_{}
.
RL
.
246

sysset_end

.

.
M05_{}
.
RL
.
247

trig_position
{}
.
{}
.
M05_{}
.
RL
.

Naming convention notes

Naming conventions from MPC 2810 Software manual.
Pattern
Example
Meaning
set_...
enable_...
set_maxspeed()
Sets or enables a controller mode or feature, or motion parameter
c_set_...
c_set_max_accel()
Set parameter for upcoming move that will use look-ahead capability.
get_...
check_...
get_abs_pos()
check_status()
Get values from the controller
con_...
con_pmove()
Constant speed function
fast_...
fast_pmove()
Fast move, meaning move that includes acceleration and deceleration phases. Each axis moves independently?



..._im_...
set_im_deadband()
input mode



move

(none)
..._pmoveN

p = Point-to-point. Move to target position, N independent axes.
..._vmoveN

v = jog mode, which means continue until stop command of hit limit in that direction. N independent axes.
..._hmove

h = Homing move. Move until a home signal is detected. Several different modes.
.._lineN

Move where motion of N axes is coordinated. See also arc functions.



Methods

The information on this page was obtained primarily from the lists of imported and exported functions publicly exposed by the DLLs, which can be read in a variety of ways, including using the dumpbin utility of Visual Studio. These lists do not include dynamically loaded DLLs. The functions imported via dynamic loading can be found by examining the table of strings giving function names that a DLL uses during the dynamic load process to find the function addresses.

References