Merged fix for too many PDOs\? and a new example
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@@ -33,8 +33,8 @@
|
||||
#define SM3_smc 0x20
|
||||
#define SM3_act 1
|
||||
|
||||
#define MAX_MAPPINGS_SM2 19
|
||||
#define MAX_MAPPINGS_SM3 9
|
||||
#define MAX_MAPPINGS_SM2 14
|
||||
#define MAX_MAPPINGS_SM3 7
|
||||
|
||||
#define MAX_RXPDO_SIZE 512
|
||||
#define MAX_TXPDO_SIZE 512
|
||||
|
||||
Binary file not shown.
@@ -4,7 +4,7 @@
|
||||
:20006000000000000000000000000000000000000000000000000000000000000F00010070
|
||||
:200080000A001F00040B434E4320636F6E74726F6C0E4D616368696E65436F6E74726F6C8F
|
||||
:2000A00006494D474342591A4D6574616C4D7573696E677320456173657243415420333021
|
||||
:2000C00030301E001000020301040013000000000000000000001100000000000000000064
|
||||
:2000C00030301E00100002030104003F000000000000000000001100000000000000000038
|
||||
:2000E000000000000000280002000102030029001000001000022600010100120002220027
|
||||
:2001000001020016000024000103001A000020000104FFFFFFFFFFFFFFFFFFFFFFFFFFFF6D
|
||||
:20012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
|
||||
|
||||
@@ -39,10 +39,82 @@
|
||||
"name": "BasePeriod",
|
||||
"access": "RW",
|
||||
"dtype": "UNSIGNED32",
|
||||
"value": "20000",
|
||||
"value": "10000",
|
||||
"isSDOitem": true,
|
||||
"data": "&Obj.BasePeriod"
|
||||
},
|
||||
"2001": {
|
||||
"otype": "VAR",
|
||||
"name": "StepsPerMM1",
|
||||
"access": "RW",
|
||||
"dtype": "REAL32",
|
||||
"value": "200",
|
||||
"isSDOitem": true,
|
||||
"data": "&Obj.StepsPerMM1"
|
||||
},
|
||||
"2002": {
|
||||
"otype": "VAR",
|
||||
"name": "StepsPerMM2",
|
||||
"access": "RW",
|
||||
"dtype": "REAL32",
|
||||
"value": "200",
|
||||
"isSDOitem": true,
|
||||
"data": "&Obj.StepsPerMM2"
|
||||
},
|
||||
"2003": {
|
||||
"otype": "VAR",
|
||||
"name": "StepsPerMM3",
|
||||
"access": "RW",
|
||||
"dtype": "REAL32",
|
||||
"value": "200",
|
||||
"isSDOitem": true,
|
||||
"data": "&Obj.StepsPerMM3"
|
||||
},
|
||||
"2004": {
|
||||
"otype": "VAR",
|
||||
"name": "StepsPerMM4",
|
||||
"access": "RW",
|
||||
"dtype": "REAL32",
|
||||
"value": "200",
|
||||
"isSDOitem": true,
|
||||
"data": "&Obj.StepsPerMM4"
|
||||
},
|
||||
"2005": {
|
||||
"otype": "VAR",
|
||||
"name": "MaxAcceleration1",
|
||||
"access": "RW",
|
||||
"dtype": "REAL32",
|
||||
"value": "1000000",
|
||||
"isSDOitem": true,
|
||||
"data": "&Obj.MaxAcceleration1"
|
||||
},
|
||||
"2006": {
|
||||
"otype": "VAR",
|
||||
"name": "MaxAcceleration2",
|
||||
"access": "RW",
|
||||
"dtype": "REAL32",
|
||||
"value": "1000000",
|
||||
"isSDOitem": true,
|
||||
"data": "&Obj.MaxAcceleration2"
|
||||
},
|
||||
"2007": {
|
||||
"otype": "VAR",
|
||||
"name": "MaxAcceleration3",
|
||||
"access": "RW",
|
||||
"dtype": "REAL32",
|
||||
"value": "1000000",
|
||||
"isSDOitem": true,
|
||||
"data": "&Obj.MaxAcceleration3"
|
||||
},
|
||||
"2008": {
|
||||
"otype": "VAR",
|
||||
"name": "MaxAcceleration4",
|
||||
"access": "RW",
|
||||
"dtype": "REAL32",
|
||||
"value": "1000000",
|
||||
"isSDOitem": true,
|
||||
"data": "&Obj.MaxAcceleration4"
|
||||
},
|
||||
"A": {
|
||||
"otype": "RECORD",
|
||||
"name": "Error Settings",
|
||||
@@ -195,93 +267,27 @@
|
||||
},
|
||||
"7002": {
|
||||
"otype": "VAR",
|
||||
"name": "CommandedPosition1",
|
||||
"name": "Enable1",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"dtype": "UNSIGNED8",
|
||||
"value": "0",
|
||||
"data": "&Obj.CommandedPosition1"
|
||||
"data": "&Obj.Enable1"
|
||||
},
|
||||
"7003": {
|
||||
"otype": "VAR",
|
||||
"name": "CommandedPosition2",
|
||||
"name": "Enable2",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"dtype": "UNSIGNED8",
|
||||
"value": "0",
|
||||
"data": "&Obj.CommandedPosition2"
|
||||
"data": "&Obj.Enable2"
|
||||
},
|
||||
"7004": {
|
||||
"otype": "VAR",
|
||||
"name": "CommandedPosition3",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.CommandedPosition3"
|
||||
},
|
||||
"7005": {
|
||||
"otype": "VAR",
|
||||
"name": "CommandedPosition4",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.CommandedPosition4"
|
||||
},
|
||||
"7006": {
|
||||
"otype": "VAR",
|
||||
"name": "StepsPerMM1",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.StepsPerMM1"
|
||||
},
|
||||
"7007": {
|
||||
"otype": "VAR",
|
||||
"name": "StepsPerMM2",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.StepsPerMM2"
|
||||
},
|
||||
"7008": {
|
||||
"otype": "VAR",
|
||||
"name": "StepsPerMM3",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.StepsPerMM3"
|
||||
},
|
||||
"7009": {
|
||||
"otype": "VAR",
|
||||
"name": "StepsPerMM4",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.StepsPerMM4"
|
||||
},
|
||||
"7010": {
|
||||
"otype": "VAR",
|
||||
"name": "Enable3",
|
||||
"access": "RO",
|
||||
@@ -292,7 +298,7 @@
|
||||
"value": "0",
|
||||
"data": "&Obj.Enable3"
|
||||
},
|
||||
"7011": {
|
||||
"7005": {
|
||||
"otype": "VAR",
|
||||
"name": "Enable4",
|
||||
"access": "RO",
|
||||
@@ -303,16 +309,49 @@
|
||||
"value": "0",
|
||||
"data": "&Obj.Enable4"
|
||||
},
|
||||
"7012": {
|
||||
"7006": {
|
||||
"otype": "VAR",
|
||||
"name": "EncIndexLatchEnable",
|
||||
"name": "CommandedPosition1",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "UNSIGNED8",
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.EncIndexLatchEnable"
|
||||
"data": "&Obj.CommandedPosition1"
|
||||
},
|
||||
"7007": {
|
||||
"otype": "VAR",
|
||||
"name": "CommandedPosition2",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.CommandedPosition2"
|
||||
},
|
||||
"7008": {
|
||||
"otype": "VAR",
|
||||
"name": "CommandedPosition3",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.CommandedPosition3"
|
||||
},
|
||||
"7009": {
|
||||
"otype": "VAR",
|
||||
"name": "CommandedPosition4",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.CommandedPosition4"
|
||||
},
|
||||
"60664": {
|
||||
"otype": "VAR",
|
||||
@@ -325,70 +364,45 @@
|
||||
"value": "0"
|
||||
},
|
||||
"700A": {
|
||||
"otype": "VAR",
|
||||
"name": "MaxAcceleration1",
|
||||
"otype": "RECORD",
|
||||
"name": "EncoderIn",
|
||||
"access": "RO",
|
||||
"items": [
|
||||
{
|
||||
"name": "Max SubIndex"
|
||||
},
|
||||
{
|
||||
"name": "IndexStatus",
|
||||
"dtype": "UNSIGNED8",
|
||||
"data": "&Obj.EncoderIn.IndexStatus",
|
||||
"value": "0",
|
||||
"access": "RO"
|
||||
},
|
||||
{
|
||||
"name": "IndexByte",
|
||||
"dtype": "UNSIGNED8",
|
||||
"value": "0",
|
||||
"access": "RO",
|
||||
"data": "&Obj.EncoderIn.IndexByte"
|
||||
},
|
||||
{
|
||||
"name": "Position",
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"access": "RO",
|
||||
"data": "&Obj.EncoderIn.Position"
|
||||
},
|
||||
{
|
||||
"name": "Frequency",
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"access": "RO",
|
||||
"data": "&Obj.EncoderIn.Frequency"
|
||||
}
|
||||
],
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.MaxAcceleration1"
|
||||
},
|
||||
"700B": {
|
||||
"otype": "VAR",
|
||||
"name": "MaxAcceleration2",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.MaxAcceleration2"
|
||||
},
|
||||
"700C": {
|
||||
"otype": "VAR",
|
||||
"name": "MaxAcceleration3",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.MaxAcceleration3"
|
||||
},
|
||||
"700D": {
|
||||
"otype": "VAR",
|
||||
"name": "MaxAcceleration4",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "REAL32",
|
||||
"value": "0",
|
||||
"data": "&Obj.MaxAcceleration4"
|
||||
},
|
||||
"700E": {
|
||||
"otype": "VAR",
|
||||
"name": "Enable1",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "UNSIGNED8",
|
||||
"value": "0",
|
||||
"data": "&Obj.Enable1"
|
||||
},
|
||||
"700F": {
|
||||
"otype": "VAR",
|
||||
"name": "Enable2",
|
||||
"access": "RO",
|
||||
"pdo_mappings": [
|
||||
"rxpdo"
|
||||
],
|
||||
"dtype": "UNSIGNED8",
|
||||
"value": "0",
|
||||
"data": "&Obj.Enable2"
|
||||
]
|
||||
}
|
||||
}
|
||||
},
|
||||
@@ -412,4 +426,4 @@
|
||||
"Sync1shiftTime": "0"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,58 +19,37 @@ static const char acName1600_01[] = "EncScale";
|
||||
static const char acName1601[] = "Output4";
|
||||
static const char acName1601_00[] = "Max SubIndex";
|
||||
static const char acName1601_01[] = "Output4";
|
||||
static const char acName1602[] = "CommandedPosition1";
|
||||
static const char acName1602[] = "Enable1";
|
||||
static const char acName1602_00[] = "Max SubIndex";
|
||||
static const char acName1602_01[] = "CommandedPosition1";
|
||||
static const char acName1603[] = "CommandedPosition2";
|
||||
static const char acName1602_01[] = "Enable1";
|
||||
static const char acName1603[] = "Enable2";
|
||||
static const char acName1603_00[] = "Max SubIndex";
|
||||
static const char acName1603_01[] = "CommandedPosition2";
|
||||
static const char acName1604[] = "CommandedPosition3";
|
||||
static const char acName1603_01[] = "Enable2";
|
||||
static const char acName1604[] = "Enable3";
|
||||
static const char acName1604_00[] = "Max SubIndex";
|
||||
static const char acName1604_01[] = "CommandedPosition3";
|
||||
static const char acName1605[] = "CommandedPosition4";
|
||||
static const char acName1604_01[] = "Enable3";
|
||||
static const char acName1605[] = "Enable4";
|
||||
static const char acName1605_00[] = "Max SubIndex";
|
||||
static const char acName1605_01[] = "CommandedPosition4";
|
||||
static const char acName1606[] = "StepsPerMM1";
|
||||
static const char acName1605_01[] = "Enable4";
|
||||
static const char acName1606[] = "CommandedPosition1";
|
||||
static const char acName1606_00[] = "Max SubIndex";
|
||||
static const char acName1606_01[] = "StepsPerMM1";
|
||||
static const char acName1607[] = "StepsPerMM2";
|
||||
static const char acName1606_01[] = "CommandedPosition1";
|
||||
static const char acName1607[] = "CommandedPosition2";
|
||||
static const char acName1607_00[] = "Max SubIndex";
|
||||
static const char acName1607_01[] = "StepsPerMM2";
|
||||
static const char acName1608[] = "StepsPerMM3";
|
||||
static const char acName1607_01[] = "CommandedPosition2";
|
||||
static const char acName1608[] = "CommandedPosition3";
|
||||
static const char acName1608_00[] = "Max SubIndex";
|
||||
static const char acName1608_01[] = "StepsPerMM3";
|
||||
static const char acName1609[] = "StepsPerMM4";
|
||||
static const char acName1608_01[] = "CommandedPosition3";
|
||||
static const char acName1609[] = "CommandedPosition4";
|
||||
static const char acName1609_00[] = "Max SubIndex";
|
||||
static const char acName1609_01[] = "StepsPerMM4";
|
||||
static const char acName160A[] = "MaxAcceleration1";
|
||||
static const char acName1609_01[] = "CommandedPosition4";
|
||||
static const char acName160A[] = "EncoderIn";
|
||||
static const char acName160A_00[] = "Max SubIndex";
|
||||
static const char acName160A_01[] = "MaxAcceleration1";
|
||||
static const char acName160B[] = "MaxAcceleration2";
|
||||
static const char acName160B_00[] = "Max SubIndex";
|
||||
static const char acName160B_01[] = "MaxAcceleration2";
|
||||
static const char acName160C[] = "MaxAcceleration3";
|
||||
static const char acName160C_00[] = "Max SubIndex";
|
||||
static const char acName160C_01[] = "MaxAcceleration3";
|
||||
static const char acName160D[] = "MaxAcceleration4";
|
||||
static const char acName160D_00[] = "Max SubIndex";
|
||||
static const char acName160D_01[] = "MaxAcceleration4";
|
||||
static const char acName160E[] = "Enable1";
|
||||
static const char acName160E_00[] = "Max SubIndex";
|
||||
static const char acName160E_01[] = "Enable1";
|
||||
static const char acName160F[] = "Enable2";
|
||||
static const char acName160F_00[] = "Max SubIndex";
|
||||
static const char acName160F_01[] = "Enable2";
|
||||
static const char acName1610[] = "Enable3";
|
||||
static const char acName1610_00[] = "Max SubIndex";
|
||||
static const char acName1610_01[] = "Enable3";
|
||||
static const char acName1611[] = "Enable4";
|
||||
static const char acName1611_00[] = "Max SubIndex";
|
||||
static const char acName1611_01[] = "Enable4";
|
||||
static const char acName1612[] = "EncIndexLatchEnable";
|
||||
static const char acName1612_00[] = "Max SubIndex";
|
||||
static const char acName1612_01[] = "EncIndexLatchEnable";
|
||||
static const char acName1A00[] = "EncPosition";
|
||||
static const char acName160A_01[] = "IndexStatus";
|
||||
static const char acName160A_02[] = "IndexByte";
|
||||
static const char acName160A_03[] = "Position";
|
||||
static const char acName160A_04[] = "Frequency";
|
||||
static const char acName1A00[] = "Velocity";
|
||||
static const char acName1A00_00[] = "Max SubIndex";
|
||||
static const char acName1A00_01[] = "EncPosition";
|
||||
static const char acName1A01[] = "EncVelocity";
|
||||
@@ -116,14 +95,6 @@ static const char acName1C12_08[] = "PDO Mapping";
|
||||
static const char acName1C12_09[] = "PDO Mapping";
|
||||
static const char acName1C12_0a[] = "PDO Mapping";
|
||||
static const char acName1C12_0b[] = "PDO Mapping";
|
||||
static const char acName1C12_0c[] = "PDO Mapping";
|
||||
static const char acName1C12_0d[] = "PDO Mapping";
|
||||
static const char acName1C12_0e[] = "PDO Mapping";
|
||||
static const char acName1C12_0f[] = "PDO Mapping";
|
||||
static const char acName1C12_010[] = "PDO Mapping";
|
||||
static const char acName1C12_11[] = "PDO Mapping";
|
||||
static const char acName1C12_12[] = "PDO Mapping";
|
||||
static const char acName1C12_13[] = "PDO Mapping";
|
||||
static const char acName1C13[] = "Sync Manager 3 PDO Assignment";
|
||||
static const char acName1C13_00[] = "Max SubIndex";
|
||||
static const char acName1C13_01[] = "PDO Mapping";
|
||||
@@ -136,8 +107,16 @@ static const char acName1C13_07[] = "PDO Mapping";
|
||||
static const char acName1C13_08[] = "PDO Mapping";
|
||||
static const char acName1C13_09[] = "PDO Mapping";
|
||||
static const char acName2000[] = "BasePeriod";
|
||||
static const char acName6000[] = "EncPosition";
|
||||
static const char acName6001[] = "EncVelocity";
|
||||
static const char acName2001[] = "StepsPerMM1";
|
||||
static const char acName2002[] = "StepsPerMM2";
|
||||
static const char acName2003[] = "StepsPerMM3";
|
||||
static const char acName2004[] = "StepsPerMM4";
|
||||
static const char acName2005[] = "MaxAcceleration1";
|
||||
static const char acName2006[] = "MaxAcceleration2";
|
||||
static const char acName2007[] = "MaxAcceleration3";
|
||||
static const char acName2008[] = "MaxAcceleration4";
|
||||
static const char acName6000[] = "Velocity";
|
||||
static const char acName6001[] = "Frequency";
|
||||
static const char acName6002[] = "Input8";
|
||||
static const char acName6003[] = "ActualPosition1";
|
||||
static const char acName6004[] = "ActualPosition2";
|
||||
@@ -147,23 +126,20 @@ static const char acName6007[] = "IndexByte";
|
||||
static const char acName6008[] = "IndexStatus";
|
||||
static const char acName7000[] = "EncScale";
|
||||
static const char acName7001[] = "Output4";
|
||||
static const char acName7002[] = "CommandedPosition1";
|
||||
static const char acName7003[] = "CommandedPosition2";
|
||||
static const char acName7004[] = "CommandedPosition3";
|
||||
static const char acName7005[] = "CommandedPosition4";
|
||||
static const char acName7006[] = "StepsPerMM1";
|
||||
static const char acName7007[] = "StepsPerMM2";
|
||||
static const char acName7008[] = "StepsPerMM3";
|
||||
static const char acName7009[] = "StepsPerMM4";
|
||||
static const char acName700A[] = "MaxAcceleration1";
|
||||
static const char acName700B[] = "MaxAcceleration2";
|
||||
static const char acName700C[] = "MaxAcceleration3";
|
||||
static const char acName700D[] = "MaxAcceleration4";
|
||||
static const char acName700E[] = "Enable1";
|
||||
static const char acName700F[] = "Enable2";
|
||||
static const char acName7010[] = "Enable3";
|
||||
static const char acName7011[] = "Enable4";
|
||||
static const char acName7012[] = "EncIndexLatchEnable";
|
||||
static const char acName7002[] = "Enable1";
|
||||
static const char acName7003[] = "Enable2";
|
||||
static const char acName7004[] = "Enable3";
|
||||
static const char acName7005[] = "Enable4";
|
||||
static const char acName7006[] = "CommandedPosition1";
|
||||
static const char acName7007[] = "CommandedPosition2";
|
||||
static const char acName7008[] = "CommandedPosition3";
|
||||
static const char acName7009[] = "CommandedPosition4";
|
||||
static const char acName700A[] = "EncoderIn";
|
||||
static const char acName700A_00[] = "Max SubIndex";
|
||||
static const char acName700A_01[] = "IndexStatus";
|
||||
static const char acName700A_02[] = "IndexByte";
|
||||
static const char acName700A_03[] = "Position";
|
||||
static const char acName700A_04[] = "Frequency";
|
||||
|
||||
const _objd SDO1000[] =
|
||||
{
|
||||
@@ -202,22 +178,22 @@ const _objd SDO1601[] =
|
||||
const _objd SDO1602[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1602_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1602_01, 0x70020020, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1602_01, 0x70020008, NULL},
|
||||
};
|
||||
const _objd SDO1603[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1603_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1603_01, 0x70030020, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1603_01, 0x70030008, NULL},
|
||||
};
|
||||
const _objd SDO1604[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1604_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1604_01, 0x70040020, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1604_01, 0x70040008, NULL},
|
||||
};
|
||||
const _objd SDO1605[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1605_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1605_01, 0x70050020, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1605_01, 0x70050008, NULL},
|
||||
};
|
||||
const _objd SDO1606[] =
|
||||
{
|
||||
@@ -241,43 +217,11 @@ const _objd SDO1609[] =
|
||||
};
|
||||
const _objd SDO160A[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName160A_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName160A_01, 0x700A0020, NULL},
|
||||
};
|
||||
const _objd SDO160B[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName160B_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName160B_01, 0x700B0020, NULL},
|
||||
};
|
||||
const _objd SDO160C[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName160C_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName160C_01, 0x700C0020, NULL},
|
||||
};
|
||||
const _objd SDO160D[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName160D_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName160D_01, 0x700D0020, NULL},
|
||||
};
|
||||
const _objd SDO160E[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName160E_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName160E_01, 0x700E0008, NULL},
|
||||
};
|
||||
const _objd SDO160F[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName160F_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName160F_01, 0x700F0008, NULL},
|
||||
};
|
||||
const _objd SDO1610[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1610_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1610_01, 0x70100008, NULL},
|
||||
};
|
||||
const _objd SDO1611[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1611_00, 1, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName1611_01, 0x70110008, NULL},
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName160A_00, 4, NULL},
|
||||
{0x01, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName160A_01, 0x700A0108, NULL},
|
||||
{0x02, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName160A_02, 0x700A0208, NULL},
|
||||
{0x03, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName160A_03, 0x700A0320, NULL},
|
||||
{0x04, DTYPE_UNSIGNED32, 32, ATYPE_RO, acName160A_04, 0x700A0420, NULL},
|
||||
};
|
||||
const _objd SDO1612[] =
|
||||
{
|
||||
@@ -339,7 +283,7 @@ const _objd SDO1C00[] =
|
||||
};
|
||||
const _objd SDO1C12[] =
|
||||
{
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1C12_00, 19, NULL},
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1C12_00, 11, NULL},
|
||||
{0x01, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_01, 0x1600, NULL},
|
||||
{0x02, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_02, 0x1601, NULL},
|
||||
{0x03, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_03, 0x1602, NULL},
|
||||
@@ -351,14 +295,6 @@ const _objd SDO1C12[] =
|
||||
{0x09, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_09, 0x1608, NULL},
|
||||
{0x0a, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_0a, 0x1609, NULL},
|
||||
{0x0b, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_0b, 0x160A, NULL},
|
||||
{0x0c, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_0c, 0x160B, NULL},
|
||||
{0x0d, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_0d, 0x160C, NULL},
|
||||
{0x0e, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_0e, 0x160D, NULL},
|
||||
{0x0f, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_0f, 0x160E, NULL},
|
||||
{0x010, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_010, 0x160F, NULL},
|
||||
{0x11, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_11, 0x1610, NULL},
|
||||
{0x12, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_12, 0x1611, NULL},
|
||||
{0x13, DTYPE_UNSIGNED16, 16, ATYPE_RO, acName1C12_13, 0x1612, NULL},
|
||||
};
|
||||
const _objd SDO1C13[] =
|
||||
{
|
||||
@@ -375,7 +311,39 @@ const _objd SDO1C13[] =
|
||||
};
|
||||
const _objd SDO2000[] =
|
||||
{
|
||||
{0x0, DTYPE_UNSIGNED32, 32, ATYPE_RW, acName2000, 20000, &Obj.BasePeriod},
|
||||
{0x0, DTYPE_UNSIGNED32, 32, ATYPE_RW, acName2000, 10000, &Obj.BasePeriod},
|
||||
};
|
||||
const _objd SDO2001[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RW, acName2001, 0x43480000, &Obj.StepsPerMM1},
|
||||
};
|
||||
const _objd SDO2002[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RW, acName2002, 0x43480000, &Obj.StepsPerMM2},
|
||||
};
|
||||
const _objd SDO2003[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RW, acName2003, 0x43480000, &Obj.StepsPerMM3},
|
||||
};
|
||||
const _objd SDO2004[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RW, acName2004, 0x43480000, &Obj.StepsPerMM4},
|
||||
};
|
||||
const _objd SDO2005[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RW, acName2005, 0x49742400, &Obj.MaxAcceleration1},
|
||||
};
|
||||
const _objd SDO2006[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RW, acName2006, 0x49742400, &Obj.MaxAcceleration2},
|
||||
};
|
||||
const _objd SDO2007[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RW, acName2007, 0x49742400, &Obj.MaxAcceleration3},
|
||||
};
|
||||
const _objd SDO2008[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RW, acName2008, 0x49742400, &Obj.MaxAcceleration4},
|
||||
};
|
||||
const _objd SDO6000[] =
|
||||
{
|
||||
@@ -423,67 +391,43 @@ const _objd SDO7001[] =
|
||||
};
|
||||
const _objd SDO7002[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7002, 0x00000000, &Obj.CommandedPosition1},
|
||||
{0x0, DTYPE_UNSIGNED8, 8, ATYPE_RO | ATYPE_RXPDO, acName7002, 0, &Obj.Enable1},
|
||||
};
|
||||
const _objd SDO7003[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7003, 0x00000000, &Obj.CommandedPosition2},
|
||||
{0x0, DTYPE_UNSIGNED8, 8, ATYPE_RO | ATYPE_RXPDO, acName7003, 0, &Obj.Enable2},
|
||||
};
|
||||
const _objd SDO7004[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7004, 0x00000000, &Obj.CommandedPosition3},
|
||||
{0x0, DTYPE_UNSIGNED8, 8, ATYPE_RO | ATYPE_RXPDO, acName7004, 0, &Obj.Enable3},
|
||||
};
|
||||
const _objd SDO7005[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7005, 0x00000000, &Obj.CommandedPosition4},
|
||||
{0x0, DTYPE_UNSIGNED8, 8, ATYPE_RO | ATYPE_RXPDO, acName7005, 0, &Obj.Enable4},
|
||||
};
|
||||
const _objd SDO7006[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7006, 0x00000000, &Obj.StepsPerMM1},
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7006, 0x00000000, &Obj.CommandedPosition1},
|
||||
};
|
||||
const _objd SDO7007[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7007, 0x00000000, &Obj.StepsPerMM2},
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7007, 0x00000000, &Obj.CommandedPosition2},
|
||||
};
|
||||
const _objd SDO7008[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7008, 0x00000000, &Obj.StepsPerMM3},
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7008, 0x00000000, &Obj.CommandedPosition3},
|
||||
};
|
||||
const _objd SDO7009[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7009, 0x00000000, &Obj.StepsPerMM4},
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName7009, 0x00000000, &Obj.CommandedPosition4},
|
||||
};
|
||||
const _objd SDO700A[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName700A, 0x00000000, &Obj.MaxAcceleration1},
|
||||
};
|
||||
const _objd SDO700B[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName700B, 0x00000000, &Obj.MaxAcceleration2},
|
||||
};
|
||||
const _objd SDO700C[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName700C, 0x00000000, &Obj.MaxAcceleration3},
|
||||
};
|
||||
const _objd SDO700D[] =
|
||||
{
|
||||
{0x0, DTYPE_REAL32, 32, ATYPE_RO | ATYPE_RXPDO, acName700D, 0x00000000, &Obj.MaxAcceleration4},
|
||||
};
|
||||
const _objd SDO700E[] =
|
||||
{
|
||||
{0x0, DTYPE_UNSIGNED8, 8, ATYPE_RO | ATYPE_RXPDO, acName700E, 0, &Obj.Enable1},
|
||||
};
|
||||
const _objd SDO700F[] =
|
||||
{
|
||||
{0x0, DTYPE_UNSIGNED8, 8, ATYPE_RO | ATYPE_RXPDO, acName700F, 0, &Obj.Enable2},
|
||||
};
|
||||
const _objd SDO7010[] =
|
||||
{
|
||||
{0x0, DTYPE_UNSIGNED8, 8, ATYPE_RO | ATYPE_RXPDO, acName7010, 0, &Obj.Enable3},
|
||||
};
|
||||
const _objd SDO7011[] =
|
||||
{
|
||||
{0x0, DTYPE_UNSIGNED8, 8, ATYPE_RO | ATYPE_RXPDO, acName7011, 0, &Obj.Enable4},
|
||||
{0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName700A_00, 4, NULL},
|
||||
{0x01, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName700A_01, 0, &Obj.EncoderIn.IndexStatus},
|
||||
{0x02, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName700A_02, 0, &Obj.EncoderIn.IndexByte},
|
||||
{0x03, DTYPE_REAL32, 32, ATYPE_RO, acName700A_03, 0x00000000, &Obj.EncoderIn.Position},
|
||||
{0x04, DTYPE_REAL32, 32, ATYPE_RO, acName700A_04, 0x00000000, &Obj.EncoderIn.Frequency},
|
||||
};
|
||||
const _objd SDO7012[] =
|
||||
{
|
||||
@@ -507,15 +451,7 @@ const _objectlist SDOobjects[] =
|
||||
{0x1607, OTYPE_RECORD, 1, 0, acName1607, SDO1607},
|
||||
{0x1608, OTYPE_RECORD, 1, 0, acName1608, SDO1608},
|
||||
{0x1609, OTYPE_RECORD, 1, 0, acName1609, SDO1609},
|
||||
{0x160A, OTYPE_RECORD, 1, 0, acName160A, SDO160A},
|
||||
{0x160B, OTYPE_RECORD, 1, 0, acName160B, SDO160B},
|
||||
{0x160C, OTYPE_RECORD, 1, 0, acName160C, SDO160C},
|
||||
{0x160D, OTYPE_RECORD, 1, 0, acName160D, SDO160D},
|
||||
{0x160E, OTYPE_RECORD, 1, 0, acName160E, SDO160E},
|
||||
{0x160F, OTYPE_RECORD, 1, 0, acName160F, SDO160F},
|
||||
{0x1610, OTYPE_RECORD, 1, 0, acName1610, SDO1610},
|
||||
{0x1611, OTYPE_RECORD, 1, 0, acName1611, SDO1611},
|
||||
{0x1612, OTYPE_RECORD, 1, 0, acName1612, SDO1612},
|
||||
{0x160A, OTYPE_RECORD, 4, 0, acName160A, SDO160A},
|
||||
{0x1A00, OTYPE_RECORD, 1, 0, acName1A00, SDO1A00},
|
||||
{0x1A01, OTYPE_RECORD, 1, 0, acName1A01, SDO1A01},
|
||||
{0x1A02, OTYPE_RECORD, 1, 0, acName1A02, SDO1A02},
|
||||
@@ -526,9 +462,17 @@ const _objectlist SDOobjects[] =
|
||||
{0x1A07, OTYPE_RECORD, 1, 0, acName1A07, SDO1A07},
|
||||
{0x1A08, OTYPE_RECORD, 1, 0, acName1A08, SDO1A08},
|
||||
{0x1C00, OTYPE_ARRAY, 4, 0, acName1C00, SDO1C00},
|
||||
{0x1C12, OTYPE_ARRAY, 19, 0, acName1C12, SDO1C12},
|
||||
{0x1C13, OTYPE_ARRAY, 9, 0, acName1C13, SDO1C13},
|
||||
{0x1C12, OTYPE_ARRAY, 11, 0, acName1C12, SDO1C12},
|
||||
{0x1C13, OTYPE_ARRAY, 7, 0, acName1C13, SDO1C13},
|
||||
{0x2000, OTYPE_VAR, 0, 0, acName2000, SDO2000},
|
||||
{0x2001, OTYPE_VAR, 0, 0, acName2001, SDO2001},
|
||||
{0x2002, OTYPE_VAR, 0, 0, acName2002, SDO2002},
|
||||
{0x2003, OTYPE_VAR, 0, 0, acName2003, SDO2003},
|
||||
{0x2004, OTYPE_VAR, 0, 0, acName2004, SDO2004},
|
||||
{0x2005, OTYPE_VAR, 0, 0, acName2005, SDO2005},
|
||||
{0x2006, OTYPE_VAR, 0, 0, acName2006, SDO2006},
|
||||
{0x2007, OTYPE_VAR, 0, 0, acName2007, SDO2007},
|
||||
{0x2008, OTYPE_VAR, 0, 0, acName2008, SDO2008},
|
||||
{0x6000, OTYPE_VAR, 0, 0, acName6000, SDO6000},
|
||||
{0x6001, OTYPE_VAR, 0, 0, acName6001, SDO6001},
|
||||
{0x6002, OTYPE_VAR, 0, 0, acName6002, SDO6002},
|
||||
@@ -548,14 +492,6 @@ const _objectlist SDOobjects[] =
|
||||
{0x7007, OTYPE_VAR, 0, 0, acName7007, SDO7007},
|
||||
{0x7008, OTYPE_VAR, 0, 0, acName7008, SDO7008},
|
||||
{0x7009, OTYPE_VAR, 0, 0, acName7009, SDO7009},
|
||||
{0x700A, OTYPE_VAR, 0, 0, acName700A, SDO700A},
|
||||
{0x700B, OTYPE_VAR, 0, 0, acName700B, SDO700B},
|
||||
{0x700C, OTYPE_VAR, 0, 0, acName700C, SDO700C},
|
||||
{0x700D, OTYPE_VAR, 0, 0, acName700D, SDO700D},
|
||||
{0x700E, OTYPE_VAR, 0, 0, acName700E, SDO700E},
|
||||
{0x700F, OTYPE_VAR, 0, 0, acName700F, SDO700F},
|
||||
{0x7010, OTYPE_VAR, 0, 0, acName7010, SDO7010},
|
||||
{0x7011, OTYPE_VAR, 0, 0, acName7011, SDO7011},
|
||||
{0x7012, OTYPE_VAR, 0, 0, acName7012, SDO7012},
|
||||
{0x700A, OTYPE_RECORD, 4, 0, acName700A, SDO700A},
|
||||
{0xffff, 0xff, 0xff, 0xff, NULL, NULL}
|
||||
};
|
||||
|
||||
@@ -27,10 +27,25 @@ typedef struct
|
||||
|
||||
float EncScale;
|
||||
uint8_t Output4;
|
||||
uint8_t Enable1;
|
||||
uint8_t Enable2;
|
||||
uint8_t Enable3;
|
||||
uint8_t Enable4;
|
||||
float CommandedPosition1;
|
||||
float CommandedPosition2;
|
||||
float CommandedPosition3;
|
||||
float CommandedPosition4;
|
||||
struct
|
||||
{
|
||||
uint8_t IndexStatus;
|
||||
uint8_t IndexByte;
|
||||
float Position;
|
||||
float Frequency;
|
||||
} EncoderIn;
|
||||
|
||||
/* Parameters */
|
||||
|
||||
uint32_t BasePeriod;
|
||||
float StepsPerMM1;
|
||||
float StepsPerMM2;
|
||||
float StepsPerMM3;
|
||||
@@ -39,15 +54,6 @@ typedef struct
|
||||
float MaxAcceleration2;
|
||||
float MaxAcceleration3;
|
||||
float MaxAcceleration4;
|
||||
uint8_t Enable1;
|
||||
uint8_t Enable2;
|
||||
uint8_t Enable3;
|
||||
uint8_t Enable4;
|
||||
uint8_t EncIndexLatchEnable;
|
||||
|
||||
/* Parameters */
|
||||
|
||||
uint32_t BasePeriod;
|
||||
} _Objects;
|
||||
|
||||
extern _Objects Obj;
|
||||
|
||||
@@ -0,0 +1,230 @@
|
||||
# EMC controller parameters for a simulated machine.
|
||||
|
||||
# General note: Comments can either be preceded with a # or ; - either is
|
||||
# acceptable, although # is in keeping with most linux config files.
|
||||
|
||||
# General section -------------------------------------------------------------
|
||||
[EMC]
|
||||
|
||||
# Version of this INI file
|
||||
VERSION = 1.1
|
||||
|
||||
# Name of machine, for use with display, etc.
|
||||
MACHINE = LinuxCNC-HAL-SIM-AXIS
|
||||
|
||||
# Debug level, 0 means no messages. See src/emc/nml_int/emcglb.h for others
|
||||
#DEBUG = 0x7FFFFFFF
|
||||
DEBUG = 0
|
||||
|
||||
# Sections for display options ------------------------------------------------
|
||||
[DISPLAY]
|
||||
|
||||
# Name of display program, e.g., axis
|
||||
DISPLAY = axis
|
||||
|
||||
# Cycle time, in seconds, that display will sleep between polls
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# Path to help file
|
||||
HELP_FILE = doc/help.txt
|
||||
|
||||
# Initial display setting for position, RELATIVE or MACHINE
|
||||
POSITION_OFFSET = RELATIVE
|
||||
|
||||
# Initial display setting for position, COMMANDED or ACTUAL
|
||||
POSITION_FEEDBACK = ACTUAL
|
||||
|
||||
# Highest value that will be allowed for feed override, 1.0 = 100%
|
||||
MAX_FEED_OVERRIDE = 1.2
|
||||
MAX_SPINDLE_OVERRIDE = 1.0
|
||||
|
||||
MAX_LINEAR_VELOCITY = 5
|
||||
DEFAULT_LINEAR_VELOCITY = .25
|
||||
DEFAULT_SPINDLE_SPEED = 200
|
||||
# Prefix to be used
|
||||
PROGRAM_PREFIX = /home/debian/linuxcnc/nc_files
|
||||
|
||||
# Introductory graphic
|
||||
INTRO_GRAPHIC = linuxcnc.gif
|
||||
INTRO_TIME = 5
|
||||
|
||||
#EDITOR = geany
|
||||
TOOL_EDITOR = tooledit
|
||||
|
||||
INCREMENTS = 1 in, 0.1 in, 10 mil, 1 mil, 1mm, .1mm, 1/8000 in
|
||||
|
||||
[FILTER]
|
||||
PROGRAM_EXTENSION = .png,.gif,.jpg Grayscale Depth Image
|
||||
PROGRAM_EXTENSION = .py Python Script
|
||||
|
||||
png = image-to-gcode
|
||||
gif = image-to-gcode
|
||||
jpg = image-to-gcode
|
||||
py = python3
|
||||
|
||||
# Task controller section -----------------------------------------------------
|
||||
[TASK]
|
||||
|
||||
# Name of task controller program, e.g., milltask
|
||||
TASK = milltask
|
||||
|
||||
# Cycle time, in seconds, that task controller will sleep between polls
|
||||
CYCLE_TIME = 0.001
|
||||
|
||||
# Part program interpreter section --------------------------------------------
|
||||
[RS274NGC]
|
||||
|
||||
# File containing interpreter variables
|
||||
PARAMETER_FILE = sim.var
|
||||
|
||||
# Motion control section ------------------------------------------------------
|
||||
[EMCMOT]
|
||||
|
||||
EMCMOT = motmod
|
||||
|
||||
# Timeout for comm to emcmot, in seconds
|
||||
COMM_TIMEOUT = 1.0
|
||||
|
||||
# BASE_PERIOD is unused in this configuration but specified in core_sim.hal
|
||||
BASE_PERIOD = 0
|
||||
# Servo task period, in nano-seconds
|
||||
SERVO_PERIOD = 1000000
|
||||
|
||||
# section for main IO controller parameters -----------------------------------
|
||||
[EMCIO]
|
||||
|
||||
# Name of IO controller program, e.g., io
|
||||
EMCIO = io
|
||||
|
||||
# cycle time, in seconds
|
||||
CYCLE_TIME = 0.100
|
||||
|
||||
# tool table file
|
||||
TOOL_TABLE = sim.tbl
|
||||
TOOL_CHANGE_POSITION = 0 0 0
|
||||
TOOL_CHANGE_QUILL_UP = 1
|
||||
|
||||
# Hardware Abstraction Layer section --------------------------------------------------
|
||||
[HAL]
|
||||
|
||||
# The run script first uses halcmd to execute any HALFILE
|
||||
# files, and then to execute any individual HALCMD commands.
|
||||
#
|
||||
|
||||
# list of hal config files to run through halcmd
|
||||
# files are executed in the order in which they appear
|
||||
HALFILE = e3000.hal
|
||||
#HALFILE = core_sim.hal
|
||||
#HALFILE = sim_spindle_encoder.hal
|
||||
#HALFILE = axis_manualtoolchange.hal
|
||||
#HALFILE = simulated_home.hal
|
||||
#HALFILE = check_xyz_constraints.hal
|
||||
#HALFILE = cooling.hal
|
||||
|
||||
# list of halcmd commands to execute
|
||||
# commands are executed in the order in which they appear
|
||||
#HALCMD = save neta
|
||||
|
||||
# Single file that is executed after the GUI has started. Only supported by
|
||||
# AXIS at this time (only AXIS creates a HAL component of its own)
|
||||
#POSTGUI_HALFILE = test_postgui.hal
|
||||
|
||||
HALUI = halui
|
||||
|
||||
# Trajectory planner section --------------------------------------------------
|
||||
[TRAJ]
|
||||
COORDINATES = X Y Z
|
||||
LINEAR_UNITS = inch
|
||||
ANGULAR_UNITS = degree
|
||||
MAX_LINEAR_VELOCITY = 4
|
||||
DEFAULT_LINEAR_ACCELERATION = 100
|
||||
MAX_LINEAR_ACCELERATION = 100
|
||||
POSITION_FILE = position.txt
|
||||
|
||||
[KINS]
|
||||
KINEMATICS = trivkins
|
||||
JOINTS = 3
|
||||
|
||||
# Axes sections ---------------
|
||||
[AXIS_X]
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 100.0
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
[AXIS_Y]
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 100.0
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
|
||||
[AXIS_Z]
|
||||
MAX_VELOCITY = 4
|
||||
MAX_ACCELERATION = 100.0
|
||||
MIN_LIMIT = -8.0
|
||||
MAX_LIMIT = 0.12
|
||||
|
||||
# Joints sections -------------
|
||||
[JOINT_0]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 5
|
||||
MAX_ACCELERATION = 50.0
|
||||
BACKLASH = 0.000
|
||||
INPUT_SCALE = 4000
|
||||
OUTPUT_SCALE = 1.000
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.010
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME_OFFSET = 0.0
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_LATCH_VEL = 0
|
||||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
HOME_SEQUENCE = 1
|
||||
HOME_IS_SHARED = 1
|
||||
|
||||
[JOINT_1]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.000
|
||||
MAX_VELOCITY = 5
|
||||
MAX_ACCELERATION = 50.0
|
||||
BACKLASH = 0.000
|
||||
INPUT_SCALE = 4000
|
||||
OUTPUT_SCALE = 1.000
|
||||
FERROR = 0.050
|
||||
MIN_FERROR = 0.010
|
||||
MIN_LIMIT = -10.0
|
||||
MAX_LIMIT = 10.0
|
||||
HOME_OFFSET = 0.0
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_LATCH_VEL = 0
|
||||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
HOME_SEQUENCE = 1
|
||||
|
||||
[JOINT_2]
|
||||
TYPE = LINEAR
|
||||
HOME = 0.0
|
||||
MAX_VELOCITY = 5
|
||||
MAX_ACCELERATION = 50.0
|
||||
BACKLASH = 0.000
|
||||
INPUT_SCALE = 4000
|
||||
OUTPUT_SCALE = 1.000
|
||||
MIN_LIMIT = -8.0
|
||||
|
||||
# Normally the Z max should be 0.000!
|
||||
# The only reason it's greater than 0 here is so that the splash screen
|
||||
# gcode will run.
|
||||
MAX_LIMIT = 0.12
|
||||
|
||||
FERROR = 0.50
|
||||
MIN_FERROR = 0.10
|
||||
HOME_OFFSET = 1.0
|
||||
HOME_SEARCH_VEL = 0
|
||||
HOME_LATCH_VEL = 0.0
|
||||
HOME_USE_INDEX = YES
|
||||
HOME_IGNORE_LIMITS = NO
|
||||
HOME_SEQUENCE = 0
|
||||
HOME_IS_SHARED = 1
|
||||
@@ -0,0 +1,36 @@
|
||||
loadrt [KINS]KINEMATICS
|
||||
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS
|
||||
|
||||
loadusr -W lcec_conf ethercat-conf.xml
|
||||
loadrt lcec
|
||||
|
||||
###########################################################
|
||||
# Functions servo-thread
|
||||
###########################################################
|
||||
|
||||
addf lcec.read-all servo-thread
|
||||
|
||||
addf motion-command-handler servo-thread
|
||||
addf motion-controller servo-thread
|
||||
|
||||
addf lcec.write-all servo-thread
|
||||
|
||||
#########################################
|
||||
#nets
|
||||
#########################################
|
||||
net emc-enable => iocontrol.0.emc-enable-in
|
||||
sets emc-enable 1
|
||||
|
||||
net x-enable joint.0.amp-enable-out lcec.0.E3000.enable1-0
|
||||
net x-pos-cmd joint.0.motor-pos-cmd lcec.0.E3000.commandedPosition1
|
||||
net x-pos-fb joint.0.motor-pos-fb lcec.0.E3000.actualPosition1
|
||||
|
||||
net y-enable joint.1.amp-enable-out lcec.0.E3000.enable2-0
|
||||
net y-pos-cmd joint.1.motor-pos-cmd lcec.0.E3000.commandedPosition2
|
||||
net y-pos-fb joint.1.motor-pos-fb lcec.0.E3000.actualPosition2
|
||||
|
||||
net z-enable joint.2.amp-enable-out lcec.0.E3000.enable3-0
|
||||
net z-pos-cmd joint.2.motor-pos-cmd lcec.0.E3000.commandedPosition3
|
||||
net z-pos-fb joint.2.motor-pos-fb lcec.0.E3000.actualPosition3
|
||||
|
||||
|
||||
@@ -0,0 +1,95 @@
|
||||
<masters>
|
||||
<master idx="0" appTimePeriod="1000000" refClockSyncCycles="1000">
|
||||
<slave idx="0" type="generic" vid="0xd0bed1d0" pid="0x00003000" name="E3000" configPdos="true">
|
||||
<!--dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/-->
|
||||
<!--MetalMusings EaserCAT 3000-->
|
||||
<sdoConfig idx="2000" subIdx="0"><sdoDataRaw data ="10 27 00 00"/></sdoConfig> <!-- Base period (ns) 10000 (100 kHz) -->
|
||||
<sdoConfig idx="2001" subIdx="0"><sdoDataRaw data ="00 00 48 43"/></sdoConfig> <!-- Steps per mm stepper 1. 200.0 = 43 48 00 00, use ieee float to hex converter -->
|
||||
<sdoConfig idx="2002" subIdx="0"><sdoDataRaw data ="00 00 96 43"/></sdoConfig> <!-- Steps per mm stepper 2. 300.0 = 43 96 00 00, use ieee float to hex converter -->
|
||||
<sdoConfig idx="2003" subIdx="0"><sdoDataRaw data ="00 00 96 c3"/></sdoConfig> <!-- Steps per mm stepper 3. -300.0 = c3 96 00 00, use ieee float to hex converter -->
|
||||
<sdoConfig idx="2004" subIdx="0"><sdoDataRaw data ="00 00 fa c3"/></sdoConfig> <!-- Steps per mm stepper 4. -500.0 = c3 fa 00 00, use ieee float to hex converter -->
|
||||
<!--MetalMusings EaserCAT 3000-->
|
||||
<syncManager idx="0" dir="in"/>
|
||||
<syncManager idx="1" dir="out"/>
|
||||
<syncManager idx="2" dir="out">
|
||||
<pdo idx="1600">
|
||||
<!--Scale-->
|
||||
<pdoEntry idx="7000" subIdx="00" bitLen="32" halPin="scale" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1601">
|
||||
<!--Output4-->
|
||||
<pdoEntry idx="7001" subIdx="00" bitLen="8" halPin="output4" halType="bit"/>
|
||||
</pdo>
|
||||
<pdo idx="1602">
|
||||
<!--CommandedPosition1-->
|
||||
<pdoEntry idx="7002" subIdx="00" bitLen="8" halPin="enable1" halType="bit"/>
|
||||
</pdo>
|
||||
<pdo idx="1603">
|
||||
<!--CommandedPosition2-->
|
||||
<pdoEntry idx="7003" subIdx="00" bitLen="8" halPin="enable2" halType="bit"/>
|
||||
</pdo>
|
||||
<pdo idx="1604">
|
||||
<!--CommandedPosition3-->
|
||||
<pdoEntry idx="7004" subIdx="00" bitLen="8" halPin="enable3" halType="bit"/>
|
||||
</pdo>
|
||||
<pdo idx="1605">
|
||||
<!--CommandedPosition4-->
|
||||
<pdoEntry idx="7005" subIdx="00" bitLen="8" halPin="enable4" halType="bit"/>
|
||||
</pdo>
|
||||
<pdo idx="1606">
|
||||
<!--Enable1-->
|
||||
<pdoEntry idx="7006" subIdx="00" bitLen="32" halPin="commandedPosition1" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1607">
|
||||
<!--Enable2-->
|
||||
<pdoEntry idx="7007" subIdx="00" bitLen="32" halPin="commandedPosition2" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1608">
|
||||
<!--Enable3-->
|
||||
<pdoEntry idx="7008" subIdx="00" bitLen="32" halPin="commandedPosition3" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1609">
|
||||
<!--Enable4-->
|
||||
<pdoEntry idx="7009" subIdx="00" bitLen="32" halPin="commandedPosition4" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="160a">
|
||||
<!--EncoderIn-->
|
||||
<pdoEntry idx="700a" subIdx="01" bitLen="8" halPin="indexstatus" halType="u32"/>
|
||||
<pdoEntry idx="700a" subIdx="02" bitLen="8" halPin="indexbyte" halType="u32"/>
|
||||
<pdoEntry idx="700a" subIdx="03" bitLen="32" halPin="position" halType="float-ieee"/>
|
||||
<pdoEntry idx="700a" subIdx="04" bitLen="32" halPin="out-frequency" halType="float-ieee"/>
|
||||
</pdo>
|
||||
</syncManager>
|
||||
<syncManager idx="3" dir="in">
|
||||
<pdo idx="1a00">
|
||||
<!--Velocity-->
|
||||
<pdoEntry idx="6000" subIdx="00" bitLen="32" halPin="velocity" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1a01">
|
||||
<!--Frequency-->
|
||||
<pdoEntry idx="6001" subIdx="00" bitLen="32" halPin="in-frequency" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1a02">
|
||||
<!--Input8-->
|
||||
<pdoEntry idx="6002" subIdx="00" bitLen="8" halPin="input8" halType="bit"/>
|
||||
</pdo>
|
||||
<pdo idx="1a03">
|
||||
<!--ActualPosition1-->
|
||||
<pdoEntry idx="6003" subIdx="00" bitLen="32" halPin="actualPosition1" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1a04">
|
||||
<!--ActualPosition2-->
|
||||
<pdoEntry idx="6004" subIdx="00" bitLen="32" halPin="actualPosition2" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1a05">
|
||||
<!--ActualPosition3-->
|
||||
<pdoEntry idx="6005" subIdx="00" bitLen="32" halPin="actualPosition3" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1a06">
|
||||
<!--ActualPosition4-->
|
||||
<pdoEntry idx="6006" subIdx="00" bitLen="32" halPin="actualPosition4" halType="float-ieee"/>
|
||||
</pdo>
|
||||
</syncManager>
|
||||
</slave>
|
||||
</master>
|
||||
</masters>
|
||||
@@ -1,106 +0,0 @@
|
||||
<slave idx="0" name="E3000" type="generic" vid="0xd0bed1d0" pid="0x00003000">
|
||||
<!--MetalMusings EaserCAT 3000-->
|
||||
<dcConf assignActivate="300" sync0Cycle="*1" sync0Shift="0"/>
|
||||
<sdoConfig idx="2000" subIdx="0"><sdoDataRaw data ="10 27 00 00"/></sdoConfig> <!-- Base period (ns) 10000 (100 kHz) -->
|
||||
<syncManager idx="0" dir="in"/>
|
||||
<syncManager idx="1" dir="out"/>
|
||||
<syncManager idx="2" dir="out">
|
||||
<pdo idx="1600">
|
||||
<pdoEntry idx="7000" subIdx="00" bitLen="32" halPin="Scale" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1601">
|
||||
<pdoEntry idx="7001" subIdx="00" bitLen="8" halType="complex">
|
||||
<complexEntry bitLen="1" halPin="out-1" halType="bit"/>
|
||||
<complexEntry bitLen="1" halPin="out-2" halType="bit"/>
|
||||
<complexEntry bitLen="1" halPin="out-3" halType="bit"/>
|
||||
<complexEntry bitLen="1" halPin="out-4" halType="bit"/>
|
||||
</pdoEntry>
|
||||
</pdo>
|
||||
<pdo idx="1602">
|
||||
<pdoEntry idx="7002" subIdx="00" bitLen="32" halPin="CommandedPosition1" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1603">
|
||||
<pdoEntry idx="7003" subIdx="00" bitLen="32" halPin="CommandedPosition2" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1604">
|
||||
<pdoEntry idx="7004" subIdx="00" bitLen="32" halPin="CommandedPosition3" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1605">
|
||||
<pdoEntry idx="7005" subIdx="00" bitLen="32" halPin="CommandedPosition4" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1606">
|
||||
<pdoEntry idx="7006" subIdx="00" bitLen="32" halPin="StepsPerMM1" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1607">
|
||||
<pdoEntry idx="7007" subIdx="00" bitLen="32" halPin="StepsPerMM2" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1608">
|
||||
<pdoEntry idx="7008" subIdx="00" bitLen="32" halPin="StepsPerMM3" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1609">
|
||||
<pdoEntry idx="7009" subIdx="00" bitLen="32" halPin="StepsPerMM4" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="160a">
|
||||
<pdoEntry idx="700a" subIdx="00" bitLen="32" halPin="MaxAcceleration1" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="160b">
|
||||
<pdoEntry idx="700b" subIdx="00" bitLen="32" halPin="MaxAcceleration2" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="160c">
|
||||
<pdoEntry idx="700c" subIdx="00" bitLen="32" halPin="MaxAcceleration3" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="160d">
|
||||
<pdoEntry idx="700d" subIdx="00" bitLen="32" halPin="MaxAcceleration4" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="160e">
|
||||
<pdoEntry idx="700e" subIdx="00" bitLen="8" halPin="Enable1" halType="bit"/>
|
||||
</pdo>
|
||||
<pdo idx="160f">
|
||||
<pdoEntry idx="700f" subIdx="00" bitLen="8" halPin="Enable2" halType="bit"/>
|
||||
</pdo>
|
||||
<pdo idx="1610">
|
||||
<pdoEntry idx="7010" subIdx="00" bitLen="8" halPin="Enable3" halType="bit"/>
|
||||
</pdo>
|
||||
<pdo idx="1611">
|
||||
<pdoEntry idx="7011" subIdx="00" bitLen="8" halPin="Enable4" halType="bit"/>
|
||||
</pdo>
|
||||
</syncManager>
|
||||
<syncManager idx="3" dir="in">
|
||||
<pdo idx="1a00">
|
||||
<pdoEntry idx="6000" subIdx="01" bitLen="32" halPin="Velocity" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1a01">
|
||||
<pdoEntry idx="6001" subIdx="01" bitLen="32" halPin="Frequency" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1a01">
|
||||
<pdoEntry idx="6001" subIdx="01" bitLen="8" halPin="DI1" halType="u32"/>
|
||||
<pdoEntry idx="6001" subIdx="02" bitLen="8" halPin="DI2" halType="u32"/>
|
||||
<pdoEntry idx="6001" subIdx="03" bitLen="8" halPin="DI3" halType="u32"/>
|
||||
<pdoEntry idx="6001" subIdx="04" bitLen="8" halPin="DI4" halType="u32"/>
|
||||
</pdo>
|
||||
<pdo idx="1a02">
|
||||
<pdoEntry idx="6002" subIdx="00" bitLen="8" halType="complex">
|
||||
<complexEntry bitLen="1" halPin="in-1" halType="bit"/>
|
||||
<complexEntry bitLen="1" halPin="in-2" halType="bit"/>
|
||||
<complexEntry bitLen="1" halPin="in-3" halType="bit"/>
|
||||
<complexEntry bitLen="1" halPin="in-4" halType="bit"/>
|
||||
<complexEntry bitLen="1" halPin="in-5" halType="bit"/>
|
||||
<complexEntry bitLen="1" halPin="in-6" halType="bit"/>
|
||||
<complexEntry bitLen="1" halPin="in-7" halType="bit"/>
|
||||
<complexEntry bitLen="1" halPin="in-8" halType="bit"/>
|
||||
</pdoEntry>
|
||||
</pdo>
|
||||
<pdo idx="1a03">
|
||||
<pdoEntry idx="6003" subIdx="01" bitLen="32" halPin="ActualPosition1" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1a04">
|
||||
<pdoEntry idx="6004" subIdx="01" bitLen="32" halPin="ActualPosition2" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1a05">
|
||||
<pdoEntry idx="6005" subIdx="01" bitLen="32" halPin="ActualPosition3" halType="float-ieee"/>
|
||||
</pdo>
|
||||
<pdo idx="1a06">
|
||||
<pdoEntry idx="6006" subIdx="01" bitLen="32" halPin="ActualPosition4" halType="float-ieee"/>
|
||||
</pdo>
|
||||
</syncManager>
|
||||
</slave>
|
||||
Reference in New Issue
Block a user