speed log

This commit is contained in:
ChK
2026-04-20 16:23:38 +02:00
parent 657f460cf2
commit 2af6432a44
6 changed files with 171 additions and 41 deletions

View File

@@ -83,6 +83,8 @@ class GCode{
if(g == undefined) return;
console.log("🔵 GCode.receiveGCode: Incoming command: " + g);
g = g.toString("utf8");
var multipleCommands = g.split(" G");
@@ -120,7 +122,7 @@ class GCode{
if(s.toUpperCase().includes("B")){ robot.theta += Number(s.substring(1, s.length)); robot.bMotorChanged = true;}
if(s.toUpperCase().includes("C")){ robot.psi += Number(s.substring(1, s.length)); robot.cMotorChanged = true;}
if(s.toUpperCase().includes("E")){ robot.e += Number(s.substring(1, s.length)); robot.eMotorChanged = true;}
if(s.toUpperCase().includes("F")){ robot.feedrate = Number(s.substring(1, s.length)); }
if(s.toUpperCase().includes("F")){ robot.feedrate = Number(s.substring(1, s.length)); console.log(" 📌 Feedrate set to: " + robot.feedrate); }
});
}
else if(g[0] == "M1" && robot.moveRelative){
@@ -147,7 +149,7 @@ class GCode{
if(s.toUpperCase().includes("B")){ robot.theta = Number(s.substring(1, s.length)); robot.bMotorChanged = true;}
if(s.toUpperCase().includes("C")){ robot.psi = Number(s.substring(1, s.length)); robot.cMotorChanged = true;}
if(s.toUpperCase().includes("E")){ robot.e = Number(s.substring(1, s.length)); robot.eMotorChanged = true;}
if(s.toUpperCase().includes("F")){ robot.feedrate = Number(s.substring(1, s.length)); }
if(s.toUpperCase().includes("F")){ robot.feedrate = Number(s.substring(1, s.length)); console.log(" 📌 Feedrate set to: " + robot.feedrate); }
});
}
else if(g[0] == "M1" && !robot.moveRelative){

View File

@@ -6,7 +6,7 @@ class Robot{
constructor(l1, l2, l3) {
// Umgebungsvariablen-Logik
const DEFAULT_FEEDRATE = process.env.ROBOT_DEFAULT_FEEDRATE ?
Number(process.env.ROBOT_DEFAULT_FEEDRATE) : 200;
Number(process.env.ROBOT_DEFAULT_FEEDRATE) : 1000;
this.useSpeedCalc = process.env.ROBOT_USE_SPEED_CALC === 'true' ||
process.env.ROBOT_USE_SPEED_CALC === '1';

View File

@@ -77,27 +77,27 @@ module.exports = class TelnetSenderGRBL{
var data = strCommand.toString("utf-8");
if(this.xAxisGrbl == "x" && mNew.xMotorChanged){
if(this.xAxisGrbl == "x" && mNew.xMotorChanged && Number.isFinite(mNew.x)){
data += " x" + (mNew.x).toFixed(2).toString();
}
if(this.xAxisGrbl == "y" && mNew.yMotorChanged){
if(this.xAxisGrbl == "y" && mNew.yMotorChanged && Number.isFinite(mNew.y)){
data += " x" + (mNew.y * 180 / Math.PI).toFixed(2).toString();
}
if(this.xAxisGrbl == "z" && mNew.zMotorChanged){
if(this.xAxisGrbl == "z" && mNew.zMotorChanged && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " x" + ((mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI) ).toFixed(2).toString();
}
if(this.xAxisGrbl == "a" && mNew.aMotorChanged){
if(this.xAxisGrbl == "a" && mNew.aMotorChanged && Number.isFinite(mNew.a)){
// This is the case for the Ellbow, when the Motor is connected to the X-Port of the FluidNC
data += " x" + (mNew.a * 180 / Math.PI).toFixed(2).toString();
}
if(this.xAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged)){
if(this.xAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged) && Number.isFinite(mNew.b) && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " x" + (mNew.b * 180 / Math.PI+(mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI)).toFixed(2).toString();
}
if(this.xAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.xAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.b) && Number.isFinite(mNew.c)){
// Runs correctly, substracts the "b" axis, uses the "c" axis to send to the x-Motor wich is in this case the hand-twist
data += " x" + ((-1)*mNew.b * 180 / Math.PI + (mNew.c * 180 / Math.PI) ).toFixed(2).toString();
}
if(this.xAxisGrbl == "e" && mNew.eMotorChanged){
if(this.xAxisGrbl == "e" && mNew.eMotorChanged && Number.isFinite(mNew.b) && Number.isFinite(mNew.c) && Number.isFinite(mNew.e)){
//This is the case for the Hand, when the Open-Close Motor is connected to the X-Port of FluidNC
var handUpDown = mNew.b * 180 * factorTurnLift / Math.PI ;
var handTurn = mNew.c*180/Math.PI ;
@@ -106,100 +106,100 @@ module.exports = class TelnetSenderGRBL{
if(this.yAxisGrbl == "x" && mNew.xMotorChanged){
if(this.yAxisGrbl == "x" && mNew.xMotorChanged && Number.isFinite(mNew.x)){
data += " y" + (mNew.x ).toFixed(2).toString();
}
if(this.yAxisGrbl == "y" && mNew.yMotorChanged){
if(this.yAxisGrbl == "y" && mNew.yMotorChanged && Number.isFinite(mNew.y)){
data += " y" + (mNew.y * 180 / Math.PI).toFixed(2).toString();
}
if(this.yAxisGrbl == "z" && mNew.zMotorChanged){
if(this.yAxisGrbl == "z" && mNew.zMotorChanged && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " y" + ((mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI) ).toFixed(2).toString();
}
if(this.yAxisGrbl == "a" && mNew.aMotorChanged){
if(this.yAxisGrbl == "a" && mNew.aMotorChanged && Number.isFinite(mNew.a)){
data += " y" + (mNew.a * 180 / Math.PI).toFixed(2).toString();
}
if(this.yAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.yAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.b) && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " y" + (mNew.b * 180 / Math.PI+(mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI)).toFixed(2).toString();
}
if(this.yAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.yAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.b) && Number.isFinite(mNew.c)){
// This is the case if the hand-rotation-turner is connected to the FluidNC-Y
var handUpDown = (mNew.b * 180 / Math.PI ) * factorTurnLift;
var handTurn = ( mNew.c*180/Math.PI ) ;
data += " y" + (-1.0*(handUpDown) + handTurn).toFixed(2).toString();
}
if(this.yAxisGrbl == "e" && (mNew.eMotorChanged)){
if(this.yAxisGrbl == "e" && (mNew.eMotorChanged) && Number.isFinite(mNew.e)){
data += " y" + (mNew.e * 180 / Math.PI).toFixed(2).toString();
}
if(this.zAxisGrbl == "x" && mNew.xMotorChanged){
if(this.zAxisGrbl == "x" && mNew.xMotorChanged && Number.isFinite(mNew.x)){
data += " z" + (mNew.x).toFixed(2).toString();
}
if(this.zAxisGrbl == "y" && mNew.yMotorChanged){
if(this.zAxisGrbl == "y" && mNew.yMotorChanged && Number.isFinite(mNew.y)){
data += " z" + (mNew.y * 180 / Math.PI).toFixed(2).toString();
}
if(this.zAxisGrbl == "z" && mNew.zMotorChanged){
if(this.zAxisGrbl == "z" && mNew.zMotorChanged && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " z" + ((mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI) ).toFixed(2).toString();
}
if(this.zAxisGrbl == "a" && mNew.aMotorChanged){
if(this.zAxisGrbl == "a" && mNew.aMotorChanged && Number.isFinite(mNew.a)){
data += " z" + (mNew.a * 180 / Math.PI).toFixed(2).toString();
}
if(this.zAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.zAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.b)){
// This is the case of the Hand, when the Up-Down-Motor is connected to the FluidNC-Z
data += " z" + ( mNew.b * 180 / Math.PI ).toFixed(2).toString();
}
if(this.zAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.zAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.c) && Number.isFinite(mNew.b) && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " z" + (mNew.c * 180 / Math.PI + (mNew.b * 180 / Math.PI) + (mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI)).toFixed(2).toString();
}
if(this.zAxisGrbl == "e" && (mNew.eMotorChanged)){
if(this.zAxisGrbl == "e" && (mNew.eMotorChanged) && Number.isFinite(mNew.e)){
data += " z" + (mNew.e * 180 / Math.PI).toFixed(2).toString();
}
if(this.aAxisGrbl == "x" && mNew.xMotorChanged){
if(this.aAxisGrbl == "x" && mNew.xMotorChanged && Number.isFinite(mNew.y)){
data += " a" + (mNew.y * 180 / Math.PI).toFixed(2).toString();
}
if(this.aAxisGrbl == "y" && mNew.yMotorChanged){
if(this.aAxisGrbl == "y" && mNew.yMotorChanged && Number.isFinite(mNew.y)){
data += " a" + (mNew.y * 180 / Math.PI).toFixed(2).toString();
}
if(this.aAxisGrbl == "z" && mNew.zMotorChanged){
if(this.aAxisGrbl == "z" && mNew.zMotorChanged && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " a" + ((mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI) ).toFixed(2).toString();
}
if(this.aAxisGrbl == "a" && mNew.aMotorChanged){
if(this.aAxisGrbl == "a" && mNew.aMotorChanged && Number.isFinite(mNew.a)){
data += " a" + (mNew.a * 180 / Math.PI).toFixed(2).toString();
}
if(this.aAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.aAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.b) && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " a" + (mNew.b * 180 / Math.PI+(mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI)).toFixed(2).toString();
}
if(this.aAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.aAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.c) && Number.isFinite(mNew.b) && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " a" + (mNew.c * 180 / Math.PI + (mNew.b * 180 / Math.PI) + (mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI)).toFixed(2).toString();
}
if(this.aAxisGrbl == "e" && mNew.eMotorChanged){
if(this.aAxisGrbl == "e" && mNew.eMotorChanged && Number.isFinite(mNew.e)){
// ToDo Mai 2024
data += " a" + (mNew.e * 180 / Math.PI).toFixed(2).toString();
}
if(this.bAxisGrbl == "x" && mNew.xMotorChanged){
if(this.bAxisGrbl == "x" && mNew.xMotorChanged && Number.isFinite(mNew.x)){
data += " b" + (mNew.x).toFixed(2).toString();
}
if(this.bAxisGrbl == "y" && mNew.yMotorChanged){
if(this.bAxisGrbl == "y" && mNew.yMotorChanged && Number.isFinite(mNew.y)){
data += " b" + (mNew.y * 180 / Math.PI).toFixed(2).toString();
}
if(this.bAxisGrbl == "z" && mNew.zMotorChanged){
if(this.bAxisGrbl == "z" && mNew.zMotorChanged && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " b" + ((mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI) ).toFixed(2).toString();
}
if(this.bAxisGrbl == "a" && mNew.aMotorChanged){
if(this.bAxisGrbl == "a" && mNew.aMotorChanged && Number.isFinite(mNew.a)){
data += " b" + (mNew.a * 180 / Math.PI).toFixed(2).toString();
}
if(this.bAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.bAxisGrbl == "b" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.b)){
data += " b" + (mNew.b * 180 / Math.PI).toFixed(2).toString();
}
if(this.bAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged)){
if(this.bAxisGrbl == "c" && (mNew.bMotorChanged || mNew.cMotorChanged || mNew.zMotorChanged) && Number.isFinite(mNew.c) && Number.isFinite(mNew.b) && Number.isFinite(mNew.z) && Number.isFinite(mNew.y)){
data += " b" + (mNew.c * 180 / Math.PI + (mNew.b * 180 / Math.PI) + (mNew.z * 180 / Math.PI) - (mNew.y * 180 / Math.PI)).toFixed(2).toString();
}
if(this.bAxisGrbl == "e" && mNew.eMotorChanged){
if(this.bAxisGrbl == "e" && mNew.eMotorChanged && Number.isFinite(mNew.e)){
data += " b" + (mNew.e * 180 / Math.PI).toFixed(2).toString();
}