EMC2 LinuxCNC против профессиональной стойки ЧПУ

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
ukr-sasha
Мастер
Сообщения: 3401
Зарегистрирован: 21 мар 2011, 07:47
Репутация: 2181
Настоящее имя: Украинец Александр Григорьевич
Откуда: Киев, Украина
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение ukr-sasha »

nkp писал(а):а можно ссылку на исходники?
Скачиваешь по ссылке программу: http://dynomotion.com/Software/Download.html
После установки, в каталоге с программой будет папка с исходниками.
Там и VisualBasic.
kmotion.JPG (2342 просмотра) <a class='original' href='./download/file.php?id=38685&mode=view' target=_blank>Загрузить оригинал (111.27 КБ)</a>
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение nkp »

ukr-sasha писал(а):Там и VisualBasic.

а это зачем??
он же на си?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение nkp »

ukr-sasha писал(а):После установки, в каталоге с программой будет папка с исходниками.
не знаю - это разве нормальная ситуация ,когда код открытой программы нигде не выставлен :thinking:
так же можно было вносить какие нибудь исправления , улучшения(ухудшения :) )...
какая то религия пока не понятная))
может почитаю - въеду потом)
================
а тяжелая папка с исходниками?
можно ее сюда закинуть?(а то сейчас винды под рукой нет, а посмотреть охота))
Аватара пользователя
ukr-sasha
Мастер
Сообщения: 3401
Зарегистрирован: 21 мар 2011, 07:47
Репутация: 2181
Настоящее имя: Украинец Александр Григорьевич
Откуда: Киев, Украина
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение ukr-sasha »

nkp писал(а):можно ее сюда закинуть?(а то сейчас винды под рукой нет, а посмотреть охота))
Пожалуйста!
PC VC Examples.rar
(397.86 КБ) 380 скачиваний
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение nkp »

ukr-sasha писал(а):Пожалуйста!
Спасибо!
Навскид - тут нет файлов того же интерпретатора ;)
Examples почти везде в названиях - почему??
=========
уже не понравился тем - что открыт - и нет исходников(((
будем считать первую попытку познакомиться - нудачной :)
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение aftaev »

nkp писал(а):Навскид - тут нет файлов того же интерпретатора
он сидит в плате Кфлопа, а вот прошивку КФЛОПа тебе наврят дадут :)
nkp писал(а):Examples почти везде в названиях - почему??
потому что это исходники(примеры) для написания оболочки под винду и ничего там особо ценного нет :)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
ukr-sasha
Мастер
Сообщения: 3401
Зарегистрирован: 21 мар 2011, 07:47
Репутация: 2181
Настоящее имя: Украинец Александр Григорьевич
Откуда: Киев, Украина
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение ukr-sasha »

Это не оно?
TCC67.rar
(215.24 КБ) 356 скачиваний
GCodeInterpreter.rar
(153.66 КБ) 328 скачиваний
KMotionDLL.rar
(64.52 КБ) 350 скачиваний
Точно есть исходники.
Когда то баловался. и устанавливал среду ВижуалСи.
Проект открывался.
Причем сом разработчик, где то писал, что не против доработки программы.
Аватара пользователя
ukr-sasha
Мастер
Сообщения: 3401
Зарегистрирован: 21 мар 2011, 07:47
Репутация: 2181
Настоящее имя: Украинец Александр Григорьевич
Откуда: Киев, Украина
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение ukr-sasha »

В папке с прошивкой такой файл есть:

Код: Выделить всё

// PC.c  Command List for PC to DSP Communication
/*********************************************************************/
/*         Copyright (c) 2003-2006  DynoMotion Incorporated          */
/*********************************************************************/
//
// Online help is auto generated from this file  

#pragma DATA_SECTION(Commands,".big");


#include "KMotionDef.h"
#include "PC.h"


char Commands[][MAX_CMD_LENGTH] = {
//start 
"EXECUTE D1 7",								// ExecuteN/Begin execution of thread N/ie. Execute1
"ENTRYPOINT D1 7 H",						// EntryPointN H/Set Execution Start Address of/Thread N to hex address H/ie. Entrypoint1 80070000
"SETSTARTUPTHREAD D1 7 D0 1",     			// SetStartupThreadN B/Turn on or off thread on boot/ie. SetStartupThread0 1
"LOADDATA HH",								// LoadData H N/Poke data into memory hex addr H # of bytes N/up to 64 bytes per line/ie. LoadData 80070000 4/FF FF FF FF
"LOADFLASH HH",								// LoadFlash H N/Poke data into FLASH image hex offset H # of bytes N/up to 64 bytes per line/ie. LoadFlash FF00 4/FF FF FF FF
"CLEARFLASHIMAGE ",							// ClearFlashImage/Prepare to download FLASH image/Sets entire flash image to zero/ie. ClearFlashImage
"PROGFLASHIMAGE ",							// ProgFlashImage/Program entire FLASH image to FLASH Memory/ie. ProgFlashImage
"KILL D1 7",								// KillN/Stop execution of thread N/ie. Kill0
"LED D0 1 =D0 1",							// LEDN=B/Turn LED number 0 or 1 on or off/ie. LED1=1
"PWMC D8 15 =D-1000 1000",					// PWMCN=D/Set PWM channel N to current loop mode/and to value D (range -1000 to 1000)/ie. PWMC0=-99
"PWMR D0 15 =D-511 511",					// PWMRN=D/Set PWM channel N to recirculate mode/and to value D (range -511 to 511)/ie. PWMR0=-99
"PWM D0 15 =D-255 255",  					// PWMN=D/Set PWM channel N to locked anti-phase mode/and to value D (range -256 to 256)/ie. PWM0=-99
"MOVEREL D0 7 =G",							// MoveRelN=D/Move axis N relative to current dest D units/ie. MoveRel0=100.1      
"MOVERELATVEL D0 7 =GG",					// MoveRelAtVelN=D V/Move axis N relative to current dest D units/using specified Velocity/ie. MoveRelAtVel0=100.1 30.0      
"MOVEXYZABC GGGGGG",   						// MoveXYZABC=D D D D D D/Move the 6 axes defined to be x,y,z,a,b,c/(each axis moves independently)/ie. MoveXYZABC 100.1 200.2 300.3 400.4 500.5 600.6
"MOVE D0 7 =G",								// MoveN=D/Move axis N to absolute coordinates D/ie. Move0=100.1            
"MOVEATVEL D0 7 =GG",						// MoveAtVelN=D V/Move axis N to absolute coordinates D at specified Velocity/ie. MoveAtVel0=100.1 30.0            
"MOVEEXP D0 7 =GG",							// MoveExpN=D T/Move axis N to absolute coordinates D exponentially at Time Constant T/ie. MoveExp0=100.1 1.0            
"JOG D0 7 =G",								// JogN=V/Move axis N at velocity V/Uses Accel and Jerk parameters for the axis/Specify zero Vel to decel to stop/ie. Jog0=-200.5
"ADC D0 7",									// ADCN/Display ADC channel N (0 through 7)/range -2048 to 2047/Channels 0-3 are 10V inputs/Channels 4-7 are Motor Currents/ie. ADC0      
"DAC D0 7 =D-2048 2047",					// DACN=M/Set DAC N (0..7) to/value M (-2048..2047)/ie. DAC0=2000
"3PH D0 7 =GG",								// 3PHN=D A/Set PWMs of axis N for Magnitude D phase angle A/Magnitude is -230 ,, +230/Angle in Commutation cycles/ie. 3PH0=230 0.5
"4PH D0 7 =GG",								// 4PHN=D A/Set PWMs of axis N for Magnitude D phase angle A/Magnitude is -250 ,, +250/Angle in Commutation cycles/ie. 4PH0=250 0.5
"FLASH ",									// Flash/Flash current User programs and axis params/ie. Flash      
"ZERO D0 7",								// ZeroN/Clear the measured position of axis N/ie. Zero0      
"DISABLEAXIS D0 7",							// DisableAxisN/Kill Motion and disable Motor on Axis N/ie. DisableAxis0
"ENABLEAXISDEST D0 7 G",           			// EnableAxisDestN D/Set Axis N to specified Dest D and enable the axis/ie. EnableAxisDest0 1000.0
"ENABLEAXIS D0 7",							// EnableAxisN/Set Axis N to Current Measured Position/and enable the axis/ie. Enable0
"GATHERMOVE D0 7 GD1 40000",     			// GatherMoveN D M/Perform a profiled move on axis N with/a distance of D while/Gathering M points of data/ie. GatherMove0 1000.0 2000 
"GATHERSTEP D0 7 GD1 40000",     			// GatherStepN D M/Perform a step on axis N with/a distance of D while/Gathering M points of data/ie. GatherStep0 1000.0 2000       
"CHECKDONEXYZABC ",							// CheckDoneXYZABC/Display 1 if all defined XYZABC axes/have completed their motions, otherwise 0/ie. CheckDoneXYZABC
"CHECKDONEGATHER ",							// CheckDoneGather/Display 1 if data gather is completed, otherwise 0/ie. CheckDoneGather
"CHECKDONEBUF ",							// CheckDoneBuf/Display 1 if all coordinated move/sequences have completed, otherwise 0/ie. CheckDoneBuf
"CHECKDONE D0 7", 							// CheckDoneN/Display 1 if axis N/has completed its motion, otherwise 0/ie. CheckDone0
"CHECKTHREAD D1 7", 						// CheckThreadN/Display 1 if Thread is currently executing, otherwise 0/ie. CheckThread1
"GETINJECT ",								// GetInject/Display results of signal/injection and gathering/ie. GetInject      
"GETSTATUS h",								// GetStatus H/Upload Main Status record in hex format (optional Hex PC Job Status) /ie. GetStatus FF      
"GETGATHERHEX D0 1999999 D1 2000000",    	// GetGatherHex O N/Display values (as 32 bit Hex words)/in the Gather Buffer/beginning at decimal offset O/for decimal N words/ie. GetGatherHex 0 100      
"SETGATHERHEX D0 1999999 D1 2000000", 		// SetGatherHex O N/Set values (as 32 bit Hex words)/into the Gather Buffer/beginning at decimal offset O/for decimal N words/ie. SetGatherHex 0 3/FFFFFFFF FFFFFFFF FFFFFFFF      
"SETGATHERDEC D0 1999999 G",   				// SetGatherDec O D/Write a single 32-bit signed decimal word into the Gather Buffer/at decimal offset O/ie. SetGatherDec 1000 32767      
"GETGATHERDEC D0 1999999",   				// GetGatherDec O/Read a single word from the Gather Buffer/at decimal offset O/a single 32-bit value displayed as a signed decimal number/ie. GetGatherDec 1000
"SETPERSISTDEC D0 199 G",   				// SetPersistDec O D/Write a single word into the Persist Array/at decimal offset O/a single 32-bit value specified as a signed decimal number/ie. SetPersistDec 10 32767      
"SETPERSISTHEX D0 199 H",   				// SetPersistHex O D/Write a single word into the Persist Array/at decimal offset O/a single 32-bit value specified as an unsigned hex number/ie. SetPersistHex 10 FFFFFFFF      
"GETPERSISTDEC D0 199",   					// GetPersistDec O/Read a single word from the Persist Array/at decimal offset O/a single 32-bit value displayed as a signed decimal number/ie. GetPersistDec 10      
"GETPERSISTHEX D0 199",   					// GetPersistHex O/Read a single word from the Persist Array/at decimal offset O/a single 32-bit value displayed as an unsigned hex number/ie. GetPersistHex 10      
"GETVIRTUALBITS D0 31 D0 31",   			// GetVirtualBits O N/Read Virtual IO Bits as 32 bit Hexidecimal words/at decimal word offset O for N decimal words/as unsigned hex numbers/ie. GetVirtualBits 1 2      
"GETGATHER D1 40000",						// GetGather N/Upload N data points from previous/GatherMove or GatherStep command/ie. GetGather 1000
"INJECT D0 7 GG",							// InjectN F A/Inject random stimulus into axis N/with cutoff frequency of F (Hz)/of amplitude A (Position units)/ie. InjectN 100.0 20.0      
"SETBITDIRECTION D0 167 *D0 1",				// SetBitDirectionN D/define IO bit N (0..30)/as input (D=0) or output (D=1)/ie. SetBitDirection0=1
"GETBITDIRECTION D0 167",					// GetBitDirectionN/Displays whether an IO bit N (0..30)/is defined as input (0) or output (1)/ie. GetBitDirection0
"SETSTATEBITBUF D0 2047 =D0 1",				// SetStateBitBufN=B/Inserts into coordinated move buffer/to set an IO bit N (0..255) high or low/or Virtual IO bits 48-63, 1024-2047/(actual IO bits must be defined as an output, see SetBitDirection)/ie. SetStateBitBuf0=1
"SETBITBUF D0 2047",						// SetBitBufN/Inserts into coordinated move buffer/command to set an IO bit N(0..255)/or Virtual IO bits 48-63, 1024-2047/(actual IO bits must be defined as an output, see SetBitDirection)/ie. SetBitBuf0
"CLEARBITBUF D0 2047",						// ClearBitBufN/Inserts into coordinated move buffer/command to clear an IO bit N(0..255)/or a Virtual IO bit 48-63, 1024-2047/(actual IO bits must be defined as an output, see SetBitDirection)/ie. ClearBitBuf0
"SETBIT D0 2047",							// SetBitN/sets an IO bit N(0..2047)/or Virtual IO bit 48-63, Extended Virtual 1024-2047/(actual IO bits must be defined as an output, see SetBitDirection)/ie. SetBit0
"CLEARBIT D0 2047",							// ClearBitN/clears an IO bit N(0..2047)/or Virtual IO bit 48-63, Extended Virtual 1024-2047/(actual IO bits must be defined as an output, see SetBitDirection)/ie. ClearBit0
"SETSTATEBIT D0 2047 =D0 1",				// SetStateBitN=B/sets an IO bit N (0..2047) high or low/or Virtual IO bit 48-63, Extended Virtual 1024-2047/(actual I/O bits must be defined as an output, see SetBitDirection)/ie. SetStateBit0=1
"READBIT D0 2047",							// ReadBitN/Displays whether an IO bit N (0..2047)/or Virtual IO bit 48-63, Extended Virtual 1024-2047/is high (1) or low (0)/ie. ReadBit0
"OPENBUF ",									// OpenBuf/Clear and open the buffer for/coordinated linear and circular segments/ie. OpenBuf
"EXECBUF ",									// ExecBuf/Execute the buffer of coordinated/linear and circular segments/ie. ExecBuf
"FLUSHBUF ",								// FlushBuf/Marks the Coord Motion Buffer as complete/turns off buffer starvation protection/ie. FlushBuf
"EXECTIME ",								// ExecTime/Display Total Time (seconds) of segments in the buffer that have already been completed/Negative if buffer halted (starved)/ie. ExecTime
"LINEARHEXEX HHHHHHHHHHHHHHHHHHHHH",		// LinearHexEx x0 y0 z0 a0 b0 c0 u0 v0 x1 y1 z1 a1 b1 c1 u1 v1 a b c d t/place linear interpolated move into buffer/start point, end point, and parametric eq/values are hex floats/ie. LinearHexEx 0 0 0 0 0 0 0 0 3f800000 3f800000 3f800000 3f800000 3f800000 3f800000 3f800000 3f800000 0 0 3f800000 0 3f800000
"LINEARHEX HHHHHHHHHHHHHHHHH",				// LinearHex x0 y0 z0 a0 b0 c0 x1 y1 z1 a1 b1 c1 a b c d t/place linear interpolated move into buffer/start point, end point, and parametric eq/values are hex floats/ie. LinearHex 0 0 0 0 0 0 3f800000 3f800000 3f800000 3f800000 3f800000 3f800000 0 0 3f800000 0 3f800000
"LHEX1 HHHHHHHHHHH",						// LHex1 x1 y1 z1 a1 b1 c1 a b c d t/place linear interpolated move into buffer/start point(from last), end point, and parametric eq/values are hex floats/ie. LHex1 3f800000 3f800000 3f800000 3f800000 3f800000 3f800000 0 0 3f800000 0 3f800000
"LHEXEX1 HHHHHHHHHHHHH",					// LHexEx1 x1 y1 z1 a1 b1 c1 u1 v1 a b c d t/place 8 axes linear interpolated move into buffer/start point(from last), end point, and parametric eq/values are hex floats/ie. LHexEx1 3f800000 3f800000 3f800000 3f800000 3f800000 3f800000 3f800000 3f800000 0 0 3f800000 0 3f800000
"LHEX2 HHHHH",								// LHex2 a b c d t/place linear interpolated move into buffer/uses start point, end point from previous command, and parametric eq/values are hex floats/ie. LHex2 0 0 3f800000 0 3f800000
"LINEAREX GGGGGGGGGGGGGGGGGGGGG", 			// LinearEx x0 y0 z0 a0 b0 c0 u0 v0 x1 y1 z1 a1 b1 c1 u1 v1 a b c d t/place linear interpolated move into buffer/3D start point, end point, and parametric eq/ie. Linear 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 1.0 0.0 1.0
"LINEAR GGGGGGGGGGGGGGGGG", 				// Linear x0 y0 z0 a0 b0 c0 x1 y1 z1 a1 b1 c1 a b c d t/place linear interpolated move into buffer/3D start point, end point, and parametric eq/ie. Linear 0.0 0.0 0.0 0.0 0.0 0.0 1.0 1.0 1.0 1.0 1.0 1.0 0.0 0.0 1.0 0.0 1.0
"ARCHEX HHHHHHHHHHHHHHHHHHH",   			// ArcHex xc yc rx ry theta0 dtheta z0 a0 b0 c0 z1 a1 b1 c1 a b c d t/place circular interpolated (xy) move into buffer/x center, y center, x radius, y radius,/begin theta, delta theta, begin zabc, end zabc,/and parametric eq/ie. Arc 3f000000 3f000000 3f800000 3f800000 0 3f800000 0 0 0 0 0 0 0 0 0 0 3f800000 0 3f800000
"ARC GGGGGGGGGGGGGGGGGGG",   				// Arc xc yc rx ry theta0 dtheta z0 a0 b0 c00 z1 a1 b1 c1 a b c d t/place circular interpolated (xy) move into buffer/x center, y center, x radius, y radius,/begin theta, delta theta, begin zabc, end zabc,/and parametric eq/ie. Arc 0.5 0.5 1.0 1.0 0.0 3.14 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 1.0
"ARCHEXZX HHHHHHHHHHHHHHHHHHH", 			// ArcHexZX zc xc rz rx theta0 dtheta y0 a0 b0 c0 y1 a0 b0 c0 a b c d t/place circular interpolated (zx) move into buffer/z center, x center, z radius, x radius,/begin theta, delta theta, begin yabc, end yabc,/and parametric eq/ie. ArcZX 3f000000 3f000000 3f800000 3f800000 0 3f800000 0 0 0 0 0 0 0 0 0 0 3f800000 0 3f800000
"ARCXZ GGGGGGGGGGGGGGGGGGG",   				// ArcZX xc zc rx rz theta0 dtheta y0 a0 b0 c0 y1 a1 b1 c1 a b c d t/place circular interpolated (xz) move into buffer/x center, z center, x radius, z radius,/begin theta, delta theta, begin yabc, end yabc,/and parametric eq/ie. ArcZX 0.5 0.5 1.0 1.0 0.0 3.14 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 1.0
"ARCHEXYZ HHHHHHHHHHHHHHHHHHH",				// ArcHexYZ yc zc ry rz theta0 dtheta x0 a0 b0 c0 x1 a1 b1 c1 a b c d t/place circular interpolated (yz) move into buffer/y center, z center, y radius, z radius,/begin theta, delta theta, begin xabc, end xabc,/and parametric eq/ie. ArcYZ 3f000000 3f000000 3f800000 3f800000 0 3f800000 0 0 0 0 0 0 0 0 0 0 3f800000 0 3f800000
"ARCYZ GGGGGGGGGGGGGGGGGGG",  				// ArcYZ yc zc ry rz theta0 dtheta x0 a0 b0 c0 x1 a0 b0 c0 a b c d t/place circular interpolated (yz) move into buffer/y center, z center, y radius, z radius,/begin theta, delta theta, begin xabc, end xabc,/and parametric eq/ie. ArcYZ 0.5 0.5 1.0 1.0 0.0 3.14 0.0 0.1 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 1.0 0.0 1.0
"VERSION ",									// Version/Display DSP Firmware Version and Build date and time/ie. Version
"REBOOT! ",									// Reboot!/Reboot from FLASH (Power Up Reset) KMotion Board/ie. Reboot! 
"STOPIMMEDIATE D0 2",						// StopImmediateN/N=0 Stop, N=1 Resume, N=2 Clear/all motion of any Coordinated Motion Axes Immediately/ie. StopImmediate0 
"SETFRO G",									// SetFRO F/Set Feed Rate Override (1.0 = Normal Feed Rate)/ie. FRO 0.9
"SETFROTEMP G",								// SetFROTemp F/Temporarily Set Feed Rate Override (1.0 = Normal Feed Rate)/Force regardless of FeedHold, don't save as last FRO/ie. FRO 0.9
"SETFROWRATE G G",							// SetFROwRate F R/Set Feed Rate Override (1.0 = Normal Feed Rate) with rate/based on caller specified time (in seconds)/to change from FRO 1.0 to 0.0/ie. FRO 0.9 0.25
"SETFROWRATETEMP G G",						// SetFROwRateTemp F R/Temporarily Set Feed Rate Override (1.0 = Normal Feed Rate) with rate/based on caller specified time (in seconds)/to change from FRO 1.0 to 0.0/Force regardless of FeedHold, don't save as last FRO/ie. FRO 0.9 0.25
"GETSTOPSTATE ",							// GetStopState/Get State of StopImmediate/0=none,1=stopping indep,2=stopping coord, 3=stopped indep, 4=stopped coord/ie. GetStopState 
"GETSPINDLERPS ",							// GetSpindleRPS/Get measured Spindle RPM in Revs per second/i.e. GetSpindleRPS
"CONFIGSPINDLE D0 1 D0 7 GGG",				// ConfigSpindle T A U W C/Configure Spindle Settings/Type 0=none 1=encoder/Axis used for encoder/UpdateTimeSecs - delta time for measurement/Tau - low pass filter time constant (threading)/CountsPerRev - encoder counts per rev/i.e. ConfigureSpindle 1 0 0.2 0.1 4096.0
"TRIGTHREAD G",								// TrigThread S/Trigger Coordinated Motion Threading Motion/B=Base Spindle Speed (RPS) that coordinated motion was planned for/i.e. TrigThread 10.0
"ECHO ",									// Echo S/Echo String S back to the Console/ie.Echo Hello 
#ifdef KFLOP
"USB ",										// Commands from USB Mode/i.e. USB
"RS232 D9600 115200",						// Commands from RS232 Baud/i.e. RS232 57600
"FPGA D0 1024 D0 255",						// Write 8 bit value directly to FPGA/i.e. FPGA 6 191
"FPGAW D0 1024 D0 65535",					// Write 16 bit value directly to FPGA/i.e. FPGAW 6 191
"WAITBITBUF D0 2047",						// WaitBitBufN/Inserts into coordinated move buffer/command to wait for an IO bit N(0..255)/or Virtual IO bits 48-63, 1024-2047/to become high/ie. WaitBitBuf0
"WAITNOTBITBUF D0 2047",					// WaitNotBitBufN/Inserts into coordinated move buffer/command to wait for an IO bit N(0..255)/or Virtual IO bits 48-63, 1024-2047/to become low/ie. WaitNotBitBuf0
#endif
"DEFINECS ?6=ddddddc",						// DefineCS = X Y Z A B C/Define the 6 Axes that make up/the xyzabc Coordinate System/set unused Axes to -1/ie. DefineCS = 0 1 -1 -1 -1 -1
"DEFINECSEX ?8=ddddddddm",					// DefineCSEx = X Y Z A B C U V/Define the 8 Axes that make up/the xyzabcuv Coordinate System/set unused Axes to -1/ie. DefineCSEx = 0 1 -1 -1 -1 -1 -1 -1
"LIMITSWITCHNEGBIT D0 7 ?1=D0 2047 i",		// LimitSwitchNegBitN=D/Configure Limit Switch Negative Bit for Axis/Specify Decimal Value/ie.LimitSwitchNegBit2 1024  
"LIMITSWITCHPOSBIT D0 7 ?1=D0 2047 i",		// LimitSwitchPosBitN=D/Configure Limit Switch Positive Bit for Axis/Specify Decimal Value/ie.LimitSwitchPosBit2 1024  
"LIMITSWITCH D0 7 ?4=Hi",					// LimitSwitchN=H/Configure Limit Switch Options/Specify Hex value where/Bit 0 1=Stop Motor on Neg Limit, 0=Ignore Neg limit/Bit 1 1=Stop Motor on Pos Limit, 0=Ignore Pos limit/Bit 2 Neg Limit Polarity 0=stop on high, 1=stop on low/Bit 3 Pos Limit Polarity 0=stop on high, 1=stop on low/Bits 4-7/       Action - 0 Kill Motor Drive/       1 Disallow drive in direction of limit/       2 Stop movement/Bits 16-23 Neg Limit Bit number/Bits 24-31 Pos Limit Bit number/ie.LimitSwitch2 0C0D0003  
"INPUTMODE D0 7 ?1=D0 4 i",					// InputModeN=D/Set position input mode for axis/ENCODER_MODE 1/ADC_MODE 2/RESOLVER_MODE 3/USER_INPUT_MODE 4/ie. InputMode0=1
"BACKLASHMODE D0 7 ?1=D0 4 i",				// BacklashModeN=D/Set Backlash mode of operation for axis/BACKLASH_OFF 0/BACKLASH_LINEAR 1/ie. BacklashMode0=1
"OUTPUTMODE D0 7 ?1=D0 8 i", 				// OutputModeN=D/Set motor output mode for axis/MICROSTEP_MODE 1/DC_SERVO_MODE 2/BRUSHLESS_3PH_MODE 3/BRUSHLESS_4PH_MODE 4/DAC_SERVO_MODE 5/STEP_DIR_MODE 6/CL_STEP_DIR_MODE 7/CL_MICROSTEP_MODE 8/ie. SetOutputMode0=1
"DEST D0 7 ?3=Gg",                 			// DestN/Set last commanded Destination for axis N/ie. Dest0      
"POS D0 7 ?3=Gg",							// PosN=P/Set measured position of axis N to P/ie. Pos0=100.0      
"ENABLED D0 7 ?1",							// EnabledN/Display whether the specified axis is enabled/ie. Enabled0      
"VEL D0 7 ?2=F0 1e12 f",					// VelN=V/Get or Set max velocity (for independent moves)/of axis N to V Position units per sec/ie.Vel0=100.0
"ACCEL D0 7 ?2=F0 1e12 f",					// AccelN=A/Get or Set max acceleration (for independent moves and jogs)/of axis N to A Position units per sec2/ie. Accel0=1000.0
"JERK D0 7 ?2=F0 1e12 f",					// JerkN=J/Get or Set max jerk (for independent moves and jogs)/of axis N to J Position units per sec3/ie. Jerk0=10000.0
"FFACCEL D0 7 ?2=F-1e12 1e12 f", 			// FFAccelN=F/Get or Set Acceleration Feed forward for axis N to/F (Output units per Input Units per sec2)/ie. FFAccel0=100.0
"FFVEL D0 7 ?2=F-1e12 1e12 f",				// FFVelN=F/Get or Set Velocity Feed forward for axis N to/F (Output units per Input Units per sec)/ie. FFVel0=100.0
"MAXI D0 7 ?2=F0 1e12 f",					// MaxIN=F/Get or Set Maximum Integrator "wind up" for axis N/Integrator saturates at value F/ie. MaxI0=100.0
"MAXERR D0 7 ?2=F0 1e12 f",					// MaxErr=F/Get or Set Maximum Error for axis N/Limits magnitude of error entering PID to F/ie. MaxErr0=100.0
"MAXOUTPUT D0 7 ?2=F0 1e12 f",				// MaxOutput=F/Get or Set Maximum Output for axis N/Limits magnitude of servo output to F/ie. MaxOutput0=100.0
"DEADBANDGAIN D0 7 ?2=F0 1e12 f",			// DeadBandGainN=G/Get or Set gain for axis N while error is/within the deadband range to G/ie. DeadBandGain0=0.5
"DEADBANDRANGE D0 7 ?2=F0 1e12 f",			// DeadBandRangeN=R/Get or Set range for axis N where deadband gain/is applied to +\- R position units/ie. DeadBandRange0=1.0
"BACKLASHAMOUNT D0 7 ?2=F0 1e12 f",			// BacklashAmountN=G/Get or Set Backlash amount N in motor steps or encoder counts/ie. BacklashAmount0=5.5
"BACKLASHRATE D0 7 ?2=F0 1e12 f",			// BacklashRateN=R/Get or Set Backlash Rate of change int step or counts per second for axis N/ie. BacklashRate=1000.0
"STEPPERAMPLITUDE D0 7 ?2=F0 255 f",		// StepperAmplitudeN=A/Get or Set output magnitude used/for axis N (if in MicroStepping Mode) to/A output units when stopped or with zero Lead/ie. StepperAmplitude0=250 
"LEAD D0 7 ?2=F0 1e4 f",					// LeadN=L/Get or Set axis N Lead Compensation to L/ie. Lead0=10.0 
"INPUTCHAN0 D0 7 ?1=D0 15 i",				// InputChan0N=C/Get or Set first Input Channel of axis N to C/ie. InputChan03=3 
"INPUTCHAN1 D0 7 ?1=D0 15 i",				// InputChan1N=C/Get or Set 2nd Input Channel of axis N to C/ie. InputChan13=4 
"OUTPUTCHAN0 D0 7 ?1=D0 31 i",				// OutputChan0N=C/Get or Set first Output Channel of axis N to C/ie. OutputChan03=3 
"OUTPUTCHAN1 D0 7 ?1=D0 15 i",				// OutputChan1N=C/Get or Set 2nd Output Channel of axis N to C/ie. OutputChan13=3 
"INPUTGAIN0 D0 7 ?2=Gf",					// InputGain0N=G/Get or Set first Input Gain of axis N to G/ie. InputGain03=1.0 
"INPUTGAIN1 D0 7 ?2=Gf",					// InputGain1N=G/Get or Set 2nd Input Gain of axis N to G/ie. InputGain13=1.0 
"INPUTOFFSET0 D0 7 ?2=Gf",					// InputOffset0N=G/Get or Set first Input Offset of axis N to G/ie. InputOffset03=0.0 
"INPUTOFFSET1 D0 7 ?2=Gf",					// InputOffset1N=G/Get or Set 2nd Input Offset of axis N to G/ie. InputOffset13=0.0 
"OUTPUTGAIN D0 7 ?2=Gf",					// OutputGainN=G/Get or Set Output Gain of axis N to G/ie. OutputGain3=-1.0 
"OUTPUTOFFSET D0 7 ?2=Gf",					// OutputOffsetN=G/Get or Set Output Offset of axis N to G/ie. OutputOffset3=100.0 
"SLAVEGAIN D0 7 ?3=Gg",						// SlaveGainN=G/Get or Set SlaveGain (Ratio to follow Master Axis) of axis N to G/ie. SlaveGain3=-0.5 
"MASTERAXIS D0 7 ?1=D-1 7 i",				// MasterAxisN=D/Set which axis the axis should follow/Specify -1 to disable following any axis/ie. MasterAxis0=-1
"INVDISTPERCYCLE D0 7 ?3=Gg",				// InvDistPerCycleN=G/Get or Set distance per cycle (specified as an inverse)/of axis N.  Either a cycle of Stepper of Brushless Motor/ie. InvDistPerCycle0=0.05 
"MAXFOLLOWINGERROR D0 7 ?3=Gg",				// MaxFollowingErrorN=G/Get or Set Maximum allowed servo position error/before disabling motor drives/of axis N/ie. MaxFollowingError0=100.0 
"COMMUTATIONOFFSET D0 7 ?2=Gf",				// CommutationOffsetN=G/Get or Set 3 or 4 phase commutation offset/PhaseA = sin((Position+CommutationOffset)*invDistPerCycle)/ie. CommutationOffset0=100.0 
"IIR D0 7 D0 2 ?5=GGGGGr",					// IIRN I A1 A2 B0 B1 B2/Get or Set IIR Z domain filter of axis N/Filter number I (0..2)/to specified coefficients/ie. IIR0 0 1.5 2.5 -3.5 4.5 5.5      
"P D0 7 ?2=F-1e12 1e12 f",					// PN=G/Get or Set axis N Proportional Gain to G/ie. P0=10.0 
"I D0 7 ?2=F-1e12 1e12 f",					// IN=G/Get or Set axis N Integral Gain to G/ie. I0=10.0 
"D D0 7 ?2=F-1e12 1e12 f",					// DN=G/Get or Set axis N Derivative Gain to G/ie. D0=10.0
"SOFTLIMITPOS D0 7 ?2=Gf",					// SoftLimitPosN=G/Get or Set Soft Positive Limit of axis N to G/ie. SoftLimitPos3=10000 
"SOFTLIMITNEG D0 7 ?2=Gf",					// SoftLimitNegN=G/Get or Set Soft Negative Limit of axis N to G/ie. SoftLimitNeg3=-100 
//end
};  

int NCommands=sizeof(Commands)/MAX_CMD_LENGTH;
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение nkp »

ukr-sasha писал(а):Это не оно?
ну это уже что то!!
в двух словах:
эта штуковина работает только в с платами сроднеными или может управлять парпортом например???
(то есть - бюджетные вещи с ним собрать можно?)
а то нарисовано вроде для работы с платами:
Выделение_038.png (2323 просмотра) <a class='original' href='./download/file.php?id=38697&mode=view' target=_blank>Загрузить оригинал (45.51 КБ)</a>
эта штуковина случаем реверс ж-кода не делает?
========
Аватара пользователя
ukr-sasha
Мастер
Сообщения: 3401
Зарегистрирован: 21 мар 2011, 07:47
Репутация: 2181
Настоящее имя: Украинец Александр Григорьевич
Откуда: Киев, Украина
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение ukr-sasha »

nkp писал(а):эта штуковина случаем реверс ж-кода не делает?
Делает.
Feed Hold



Feed Hold may be used to immediately decelerate all axes to a controlled stop. Any coordinated motion in progress will decelerate along the defined buffered path. When stopped in feed hold, the button will be shown in a toggled state. Forward and Reverse buttons will also be available to advance slowly in forward or reverse along the current path. To resume motion toggle the Feed Hold button off. Halt may also be selected to exit the Feed Hold state. Halt will cause the Interpreter to abort and remain on the GCode line that generated the current tool position. The F3 function Key can be used to Toggle Feed Hold.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение nkp »

то есть - там в меню есть кнопка :"Назад по траектории"??
а вживую пробовал?
дуги ,подпрограммы, или только линейные участки?
насколько далеко может вернуться?
в общем всё очень интересно ;)
просто - если многое взято из емс - и открыты исходники - то мы бы (может) могли бы подсмотреть решение)))
Последний раз редактировалось nkp 19 дек 2014, 18:12, всего редактировалось 1 раз.
Аватара пользователя
ukr-sasha
Мастер
Сообщения: 3401
Зарегистрирован: 21 мар 2011, 07:47
Репутация: 2181
Настоящее имя: Украинец Александр Григорьевич
Откуда: Киев, Украина
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение ukr-sasha »

nkp писал(а):эта штуковина работает только в с платами сроднеными или может управлять парпортом например???
Тут я пас.
На борту та же FPGA XilinxSpartan.
Теоретически наверное возможно.
Аватара пользователя
ukr-sasha
Мастер
Сообщения: 3401
Зарегистрирован: 21 мар 2011, 07:47
Репутация: 2181
Настоящее имя: Украинец Александр Григорьевич
Откуда: Киев, Украина
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение ukr-sasha »

nkp писал(а):то есть - там в меню есть кнопка :"Назад по траектории"??
а вживую пробовал?
дуги ,подпрограммы, или только линейные участки?
насколько далеко может вернуться?
в общем вс очень интересно
просто - если многое взято из емс - и открыты исходники - то мы бы (может) могли бы подсмотреть решение)))
На реальном станке не пробовал, а на голой плате код гонял вперед/назад.
Всё работает.
feedhold.JPG (2313 просмотров) <a class='original' href='./download/file.php?id=38698&mode=view' target=_blank>Загрузить оригинал (171.15 КБ)</a>
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение nkp »

спасибо!
осталось великодушно попросить модераторов отделить от #137
в новую тему "Исходники KFLOP" и если можно оставить ее(тему) именно в разделе Linux.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение Serg »

Я как-то изучал этот вопрос:
Есть исходники граф. интерфейса KMotion, причём исходников KMotionDLL я не нашёл - т.е. о портировании в линукс можно забыть. Так-же нет исходников того, что заливается в FPGA и DSP, есть только примеры "дополнений", которые можно туда добавить - это у них такой способ тонкой настройки.
Так что OpenSource тут и близко не лежало.

P.S. Посему смысла оставлять эту часть в Linux не вижу... :wik:
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение nkp »

UAVpilot писал(а):исходников KMotionDLL я не нашёл
а это выше не они:
KMotionDLL.rar
(64.54 КБ) 346 скачиваний
UAVpilot писал(а):Так что OpenSource тут и близко не лежало.
вот стойкое подозрение в этом и было :(
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение aftaev »

UAVpilot писал(а):Есть исходники граф. интерфейса KMotion, причём исходников KMotionDLL я не нашёл - т.е. о портировании в линукс можно забыть.
раньше их тоже не находил, теперь видно решили выложить :)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение Serg »

Ну значит осталось найти дурака добровольца, который нахаляву продвинет платный продукт на ещё одну платформу... :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение nkp »

UAVpilot писал(а):Ну значит осталось найти дурака добровольца, который нахаляву продвинет платный продукт на ещё одну платформу..
в том то и закавыка - что этот "доброволец" не должен быть "дураком" :hehehe:
============
несколько вопросов-предположений(если я правильнопонял)
KFlop организован так:
интерпретатор - планировщик - буфер - накопитель
буфер - накопитель уже находится в плис (?)
поэтому "взять " что либо (ну тот же обратный ход) скорей всего не удастся((
===========
если всё так - тогда еще больше не понятна связка именно с виндой - всё это могло спокойно
работать на открытой платформе :thinking: (ну может я чего то как всегда еще не усвоил)
==========
если usb в нем - это на самом деле RS232 - не надёжней ли именно так и коннектиться??
============
оказалось ,что у меня это не первая встреча с "кучей_триггеров" - программа нашлась установленой в убунте :hehehe:
надо какие то овощи-фрукты кушать для улучшения(или уже сохранения остатков)) памяти :freak:
Аватара пользователя
tooshka
Почётный участник
Почётный участник
Сообщения: 1803
Зарегистрирован: 24 окт 2012, 14:26
Репутация: 209
Настоящее имя: Андрей
Откуда: Нижний Новгород
Контактная информация:

Re: EMC2 LinuxCNC против профессиональной стойки ЧПУ

Сообщение tooshka »

Я думаю автор Кфлопа перенес все на винду из за маркетинговых соображений, просто пользователей на винде больше.
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
Ответить

Вернуться в «LinuxCNC»