LINUXCNC源程序原理说明.docx

上传人:b****3 文档编号:4000683 上传时间:2022-11-27 格式:DOCX 页数:42 大小:40.73KB
下载 相关 举报
LINUXCNC源程序原理说明.docx_第1页
第1页 / 共42页
LINUXCNC源程序原理说明.docx_第2页
第2页 / 共42页
LINUXCNC源程序原理说明.docx_第3页
第3页 / 共42页
LINUXCNC源程序原理说明.docx_第4页
第4页 / 共42页
LINUXCNC源程序原理说明.docx_第5页
第5页 / 共42页
点击查看更多>>
下载资源
资源描述

LINUXCNC源程序原理说明.docx

《LINUXCNC源程序原理说明.docx》由会员分享,可在线阅读,更多相关《LINUXCNC源程序原理说明.docx(42页珍藏版)》请在冰豆网上搜索。

LINUXCNC源程序原理说明.docx

LINUXCNC源程序原理说明

opLINUXCNC源程序学习

源程序的树结构如下:

Overviewoftheemc2directory(generatedbytree-I.git-d):

|——app—defaults

|——bin(usermodebinaries)

|--configs

||—-5axis

||--boss

||——common

||-—dallur—thc

||—-demo_mazak(samplemazakconfigfiles)

||—-demo_sim_cl(samplesimwithladderIO)

||-—demo_step_cl(samplestepperwithladderIO)

||—-etch-servo

||-—halui_halvcp

||-—hexapod—sim

||—-lathe—pluto

||-—m5i20(sampleservousingMesaPCI)

||—-max

||--motenc(sampleservousingVitalPCI)

||—-nist—lathe

||——plasma—thc

||-—plasma-thc—sim

||--ppmc

||——puma

||—-scara

||--sim(simulatedmotionandIO)

||——stepper(parportstepperdriver)

||--stepper-gantry

||——stepper-xyza

||--stg(sampleservousingSTGISA)

||--univpwm(samplePICOservogenerator)

||--univstep(samplePICOsteppergenerator)

|`——vti

|——debian(filesneededtobuilddebpackages)

||——extras—Ubuntu-5.10(extrafilesforUbuntu5.10)

|||——etc

||||--modprobe.d

||||—-udev

|||||-—rules。

d

||||`—-scripts

|||`——xdg

|||`--menus

|||`——applications—merged

||`-—usr

||`-—share

|||--applications

|||--desktop—directories

||`--pixmaps

||--extras—Ubuntu—6。

06(extrafilesforbuildingonUbuntu6。

06DapperDrake)

|||—-etc

||||——modprobe。

d

||||——udev

|||||——rules。

d

||||`—-scripts

|||`—-xdg

|||`-—menus

|||`——applications—merged

||`—-usr

||`—-share

|||—-applications

|||——desktop-directories

||`—-pixmaps

||-—extras—Ubuntu—7。

10(extrafilesforbuildingonUbuntu7。

10)

|||——etc

||||--modprobe.d

||||--udev

||||`——rules.d

|||`-—xdg

|||`--menus

|||`-—applications-merged

||`—-usr

||`--share

|||—-applications

|||——desktop—directories

||`-—pixmaps

||——extras—Ubuntu—8.04(extrafilesforbuildingonUbuntu8。

04HardyHeron)

|||--etc

||||--modprobe.d

|||`——xdg

|||`-—menus

|||`——applications-merged

||`-—usr

||`——share

|||-—applications

|||—-desktop-directories

||`——pixmaps

||--extras-sim—Ubuntu-5.10(extrafilesforsimpackageforUbuntu5.10)

|||——etc

|||`—-xdg

|||`--menus

|||`—-applications-merged

||`--usr

||`-—share

|||--applications

|||—-desktop—directories

||`——pixmaps

|`—-extras—sim-Ubuntu-6。

06(extrafilesforsimpackageforUbuntu6。

06DapperDrake)

||——etc

||`-—xdg

||`—-menus

||`--applications-merged

|`—-usr

|`--share

||-—applications

||--desktop-directories

|`—-pixmaps

|--docs(AlltheimportantandrelevantDocs.)

||-—help

||—-html(htmlversionofdocs-somegeneratedfromlyx)

||--man(manpages)

|||—-man1

|||—-man3

||`--man9

|`—-src(APIandsourcenotesshouldbeineachsrcdir.)(sourceforthehandbooks)(toplevel.lyxfiles)

||—-code

||——common(shared.lyxfilesandimages,suchasglossary,GPLDlicense)

||—-config

||—-gcode(.lyxfiles,images,etc。

forG—Codedocumentation)

||--gui(。

lyxfiles,images,etc。

forGUIdocumentation)

||—-hal(.lyxfiles,images,etc.forHALdocumentation)

||——install

||—-ladder

||-—motion

|`--quickstart

|--include(headersinstalledhere—originalsinsrc/xxx/)

|--lib(usermodeobjectfiles)

|`-—python

||——rs274

|`—-yapps

|-—nc_files(SampleNCfiles)

|--rtlib(kernelmodeobjectfiles,onlyafterasuccessfullcompile)

|—-scripts(bashscriptslikelinuxcnc,realtime,rip-environment,etc。

|-—share

||-—axis

|||——images

||`——tcl

||—-emc

|`-—locale

||--de

||`--LC_MESSAGES

||--es

||`--LC_MESSAGES

||——fr

||`-—LC_MESSAGES

||-—hu

||`—-LC_MESSAGES

||--it

||`——LC_MESSAGES

||—-pt_BR

||`—-LC_MESSAGES

||-—ro

||`——LC_MESSAGES

||—-ru

||`—-LC_MESSAGES

||—-se

||`-—LC_MESSAGES

||-—sr

||`——LC_MESSAGES

|`—-zh_CN

|`--LC_MESSAGES

|-—src(sourcetree—configurescript,toplevelmakefile,Makefile.inc,etc)

||

||--depends(generateddependencytree)

||

||—-emc(actualLinuxCNCcode)

|||—-canterp(interpreterforcanonicalcommands)

|||--ini(inifilerelatedoperations)

|||-—iotask(IOinterface,lotsofHALpins)

|||-—kinematics(trajectoryplannerandkinematics)

|||-—motion(motioncontroller,talksthroughSHMtotherestofEMC)

|||——nml_intf(emcspecificNMLimplementation,allmessagessentinemc)

|||-—rs274ngc(thers274g-codeinterpreter)

|||——sai

|||--task(corecomponentinemc,dispatchesactionstootherparts)

||`--usr_intf(interfacesforsomeGUIs,andotherinterfaces:

AXIS,halui,stepconf)

|||——axis

||||—-etc

||||——extensions

|||`——scripts

||`-—stepconf

||—-hal(theHardwareAbstractionLayer,providesaunifiedinterfaceacrossallhardware)

|||—-classicladder

|||`—-projects_examples

|||-—components

|||-—drivers

||||-—m5i20

|||||--bit

||||`——hostmot5_src

||||——mesa-hostmot2

|||||-—doc

||||`—-firmware

|||||—-5i20

|||||`——SOURCE

||||`--7i43

|||||—-CPLD

|||||`——SOURCE

||||`——SOURCE

||||—-mesa7i43—firmware

|||||——gpio

|||||`-—source

|||||——hostmot2

|||||`--src

||||`-—source

||||-—mesa_5i2x

||||`--firmware

||||—-pluto_servo_firmware

|||`——pluto_step_firmware

|||--user_comps

||||--devices

|||`--vcp

||`--utils

||`--halgui

||——libnml(acleanimplementationofRCSLIB)

|||—-buffer

|||——cms

|||——inifile

|||--linklist

|||-—nml

|||--os_intf

|||-—posemath

||`—-rcs

||-—module_helper

||--objects

|||-—emc

||||-—canterp

||||--ini

||||--iotask

||||--motion

||||-—nml_intf

||||--rs274ngc

||||-—sai

||||—-task

|||`——usr_intf

|||`——axis

|||`—-extensions

|||——hal

||||--classicladder

||||--components

||||--drivers

||||-—user_comps

|||||——devices

||||`—-vcp

|||`-—utils

|||-—libnml

||||--buffer

||||—-cms

||||——inifile

||||—-linklist

||||—-nml

||||-—os_intf

||||—-posemath

|||`--rcs

|||-—rtapi

|||—-rtemc

||||—-kinematics

|||`-—motion

|||--rthal

||||-—classicladder

||||--components

|||`—-utils

|||——rtlibnml

|||`-—posemath

||`—-rtobjects

||`-—hal

||`——components

||--po(Translationfilesfori18nsupport)

||—-rtapi(*。

cand*.hforRTAPI)(unifiedRTAPI,wrapsoverRTLinux,RTAIandsim)

||`—-examples(testingexamplesfortheRTAPI)

|||-—extint

|||——fifo

|||——semaphore

|||—-shmem

||`—-timer

|`--tests

|—-tcl(tkemc.tcl,mini.tcl—thetclGUI’s)

||--bin

|`——scripts

`--tests

|—-abs.0

|——and-or-not—mux.0

|--basic

|——ccomp

||--lathe—comp

||——mill-g90g91g92

||—-mill—line-arc-entry

|`--mill—zchanges

|--counter—encoder.0

|-—flipflop。

0

|--interp

||--cam—nisley

|`--flowsnake

|--limit3.0

|--limit3。

1

|--limit3。

2

|--modparam.0

|——overrun

|—-oword

|`-—sub.0

|-—save.0

|——save。

1

|—-source。

0

|-—stepgen。

0

|——stepgen.1

|—-stepgen。

2

|-—threads。

0

`—-timedelay.0

 

Overviewoftheemc2installdirs:

/(filesystemroot)

|——-etc/

||

|\--—init。

d/

||

|\——-realtime(realtimestart/stopscript)

|

|—-—$(prefix)(default:

/usr/local)

||(allthefollowing$xxxxdirareconfigurablethroughautoconf

||

||—--bin/(knownas$bindir,filesfromEMC2/bin)

||

||——-sbin/(knownas$sbindir,)

||

||--—etc/(knownas$sysconfdir,configfilesandsubdirsfromconfigs/)

||

||---lib/(knownas$libdir,libfiles*。

sofromlibs/)

||

|\-—-share/

||

|\——-emc/

||

||

||—--docs/

|||

||\—--(AlltheimportantandrelevantDocs。

||

||——-handbooks/

|||

||\———(PDFversionsofhandbooks)

||

|\———nc_files/

||

|\---(SampleNCfiles)

|—-—$MAN_DIR/(default:

/usr/local/man)

||

||--—man1/

|||

||

||

|\--—man3/

||

|

\—-—$moduledir/(basedonwhere。

/configurefindstheRTOSmodules)

 

根据这个结构树,我们可以清楚的知道每一个文件夹,每一个子文件的作用,包括了接口,硬件抽象层,实时内核等等部分。

当然,在这里面我们需要深入研究的是linuxcnc-dev/src/emc文件夹中的各个文件,也是该数控系统的核心所在。

我们再次列出linuxcnc—dev/src/emc中的子结构树:

linuxcnc-dev/src/emc中的子结构树:

||——emc(actualLinuxCNCcode)

|||-—canterp(interpreterforcanonicalcommands)

|||--ini(inifilerelatedoperations)

|||—-iotask(IOinterface,lotsofHALpins)

|||—-kinematics(trajectoryplannerandkinematics)

|||--motion(motioncontroller,talksthroughSHMtotherestofEMC)

|||-—nml_intf(emcspecificNMLimplementation,allmessagessentinemc)

|||-—rs274ngc(thers274g-codeinterpreter)

|||—-sai

|||-—task(corecomponentinemc,dispatchesactionstootherparts)

||`——usr_intf(interfacesforsomeGUIs,andotherinterfaces:

AXIS,halui,stepconf)

|||—-axis

||||--etc

||||——extensions

|||`-—scripts

||`—-stepconf

根据该结构树,我们一个一个的再一次进行分析:

(1)canterp(interpreterforcanonicalcommands,即规范命令的解释器)

#include

h〉//FILE,fopen(),fclose()

#include〈string.h>//strcpy()

#include

h>//isspace()

#include〈limits。

h〉

#include

#include"config.h”

#include"emc/nml_intf/interp_return。

hh"

#include"emc/nml_intf/canon。

hh"

#include"emc/rs274ngc/interp_base.hh"

其中包括了语法解析,读取,执行等函数,对刀具信息、主轴转速、开始、停止等信息进行判断和执行工作.

(2)ini(inifilerelatedoperations,初始化相关的文件)

同样,列出该文件夹的结构树:

||——ini(inifilerelatedoperations)

|||-—emcIniFile。

cc/hh

|||——iniaxis.cc/hh

|||—-inihal。

cc/hh

|||--initraj.cc/hh

|||--initool.cc/hh

(2.1)emcIniFile。

cc/hh

#include〈math。

h〉//M_PI。

#incl

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 艺术创意

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1