diff --git a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/MetalMusings_EaserCAT_3000.xml b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/MetalMusings_EaserCAT_3000.xml
index 872a9e8..1172ab6 100755
--- a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/MetalMusings_EaserCAT_3000.xml
+++ b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/MetalMusings_EaserCAT_3000.xml
@@ -138,7 +138,7 @@
1
- CommandedPosition1
+ Enable1
UDINT
32
16
@@ -162,7 +162,7 @@
1
- CommandedPosition2
+ Enable2
UDINT
32
16
@@ -186,7 +186,7 @@
1
- CommandedPosition3
+ Enable3
UDINT
32
16
@@ -210,7 +210,7 @@
1
- CommandedPosition4
+ Enable4
UDINT
32
16
@@ -234,7 +234,7 @@
1
- StepsPerMM1
+ CommandedPosition1
UDINT
32
16
@@ -258,7 +258,7 @@
1
- StepsPerMM2
+ CommandedPosition2
UDINT
32
16
@@ -282,7 +282,7 @@
1
- StepsPerMM3
+ CommandedPosition3
UDINT
32
16
@@ -306,7 +306,7 @@
1
- StepsPerMM4
+ CommandedPosition4
UDINT
32
16
@@ -317,7 +317,7 @@
DT160A
- 48
+ 144
0
Max SubIndex
@@ -330,7 +330,7 @@
1
- MaxAcceleration1
+ IndexStatus
UDINT
32
16
@@ -338,170 +338,32 @@
ro
-
-
- DT160B
- 48
- 0
- Max SubIndex
- USINT
- 8
- 0
-
- ro
-
-
-
- 1
- MaxAcceleration2
+ 2
+ IndexByte
UDINT
32
- 16
-
- ro
-
-
-
-
- DT160C
- 48
-
- 0
- Max SubIndex
- USINT
- 8
- 0
+ 48
ro
- 1
- MaxAcceleration3
+ 3
+ Position
UDINT
32
- 16
-
- ro
-
-
-
-
- DT160D
- 48
-
- 0
- Max SubIndex
- USINT
- 8
- 0
+ 80
ro
- 1
- MaxAcceleration4
+ 4
+ Frequency
UDINT
32
- 16
-
- ro
-
-
-
-
- DT160E
- 48
-
- 0
- Max SubIndex
- USINT
- 8
- 0
-
- ro
-
-
-
- 1
- Enable1
- UDINT
- 32
- 16
-
- ro
-
-
-
-
- DT160F
- 48
-
- 0
- Max SubIndex
- USINT
- 8
- 0
-
- ro
-
-
-
- 1
- Enable2
- UDINT
- 32
- 16
-
- ro
-
-
-
-
- DT1610
- 48
-
- 0
- Max SubIndex
- USINT
- 8
- 0
-
- ro
-
-
-
- 1
- Enable3
- UDINT
- 32
- 16
-
- ro
-
-
-
-
- DT1611
- 48
-
- 0
- Max SubIndex
- USINT
- 8
- 0
-
- ro
-
-
-
- 1
- Enable4
- UDINT
- 32
- 16
+ 112
ro
@@ -782,15 +644,15 @@
DT1C12ARR
UINT
- 304
+ 176
1
- 19
+ 11
DT1C12
- 320
+ 192
0
Max SubIndex
@@ -804,7 +666,7 @@
Elements
DT1C12ARR
- 304
+ 176
16
ro
@@ -843,6 +705,64 @@
+
+ DT700A
+ 96
+
+ 0
+ Max SubIndex
+ USINT
+ 8
+ 0
+
+ ro
+
+
+
+ 1
+ IndexStatus
+ USINT
+ 8
+ 16
+
+ ro
+ R
+
+
+
+ 2
+ IndexByte
+ USINT
+ 8
+ 24
+
+ ro
+ R
+
+
+
+ 3
+ Position
+ REAL
+ 32
+ 32
+
+ ro
+ R
+
+
+
+ 4
+ Frequency
+ REAL
+ 32
+ 64
+
+ ro
+ R
+
+
+
UDINT
32
@@ -1005,272 +925,8 @@
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
-
- PDO Mapping
-
- #x160B
-
-
-
- PDO Mapping
-
- #x160C
-
-
-
- PDO Mapping
-
- #x160D
-
-
-
- PDO Mapping
-
- #x160E
-
-
-
- PDO Mapping
-
- #x160F
-
-
-
- PDO Mapping
-
- #x1610
-
-
-
- PDO Mapping
-
- #x1611
-
-
-
- PDO Mapping
-
- #x1612
-
-
@@ -1821,7 +1557,103 @@
UDINT
32
- 20000
+ 10000
+
+
+ rw
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
@@ -2225,141 +1980,9 @@
#x1602
- CommandedPosition1
-
- #x7002
- #x0
- 32
- CommandedPosition1
- REAL
-
-
-
- #x1603
- CommandedPosition2
-
- #x7003
- #x0
- 32
- CommandedPosition2
- REAL
-
-
-
- #x1604
- CommandedPosition3
-
- #x7004
- #x0
- 32
- CommandedPosition3
- REAL
-
-
-
- #x1605
- CommandedPosition4
-
- #x7005
- #x0
- 32
- CommandedPosition4
- REAL
-
-
-
- #x1606
- StepsPerMM1
-
- #x7006
- #x0
- 32
- StepsPerMM1
- REAL
-
-
-
- #x1607
- StepsPerMM2
-
- #x7007
- #x0
- 32
- StepsPerMM2
- REAL
-
-
-
- #x1608
- StepsPerMM3
-
- #x7008
- #x0
- 32
- StepsPerMM3
- REAL
-
-
-
- #x1609
- StepsPerMM4
-
- #x7009
- #x0
- 32
- StepsPerMM4
- REAL
-
-
-
- #x160A
- MaxAcceleration1
-
- #x700A
- #x0
- 32
- MaxAcceleration1
- REAL
-
-
-
- #x160B
- MaxAcceleration2
-
- #x700B
- #x0
- 32
- MaxAcceleration2
- REAL
-
-
-
- #x160C
- MaxAcceleration3
-
- #x700C
- #x0
- 32
- MaxAcceleration3
- REAL
-
-
-
- #x160D
- MaxAcceleration4
-
- #x700D
- #x0
- 32
- MaxAcceleration4
- REAL
-
-
-
- #x160E
Enable1
- #x700E
+ #x7002
#x0
8
Enable1
@@ -2367,10 +1990,10 @@
- #x160F
+ #x1603
Enable2
- #x700F
+ #x7003
#x0
8
Enable2
@@ -2378,10 +2001,10 @@
- #x1610
+ #x1604
Enable3
- #x7010
+ #x7004
#x0
8
Enable3
@@ -2389,10 +2012,10 @@
- #x1611
+ #x1605
Enable4
- #x7011
+ #x7005
#x0
8
Enable4
@@ -2400,15 +2023,80 @@
- #x1612
- EncIndexLatchEnable
+ #x1606
+ CommandedPosition1
- #x7012
+ #x7006
#x0
+ 32
+ CommandedPosition1
+ REAL
+
+
+
+ #x1607
+ CommandedPosition2
+
+ #x7007
+ #x0
+ 32
+ CommandedPosition2
+ REAL
+
+
+
+ #x1608
+ CommandedPosition3
+
+ #x7008
+ #x0
+ 32
+ CommandedPosition3
+ REAL
+
+
+
+ #x1609
+ CommandedPosition4
+
+ #x7009
+ #x0
+ 32
+ CommandedPosition4
+ REAL
+
+
+
+ #x160A
+ EncoderIn
+
+ #x700A
+ #x1
8
- EncIndexLatchEnable
+ IndexStatus
USINT
+
+ #x700A
+ #x2
+ 8
+ IndexByte
+ USINT
+
+
+ #x700A
+ #x3
+ 32
+ Position
+ REAL
+
+
+ #x700A
+ #x4
+ 32
+ Frequency
+ REAL
+
#x1A00
@@ -2510,7 +2198,7 @@
-
+
@@ -2531,4 +2219,4 @@
-
\ No newline at end of file
+
diff --git a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/ecat_options.h b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/ecat_options.h
index 734c77c..4106ca0 100755
--- a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/ecat_options.h
+++ b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/ecat_options.h
@@ -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
diff --git a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/eeprom.bin b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/eeprom.bin
index e5685d6..619c11a 100755
Binary files a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/eeprom.bin and b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/eeprom.bin differ
diff --git a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/eeprom.hex b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/eeprom.hex
index f7a9cce..2bcb9d2 100755
--- a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/eeprom.hex
+++ b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/eeprom.hex
@@ -4,7 +4,7 @@
:20006000000000000000000000000000000000000000000000000000000000000F00010070
:200080000A001F00040B434E4320636F6E74726F6C0E4D616368696E65436F6E74726F6C8F
:2000A00006494D474342591A4D6574616C4D7573696E677320456173657243415420333021
-:2000C00030301E001000020301040013000000000000000000001100000000000000000064
+:2000C00030301E00100002030104003F000000000000000000001100000000000000000038
:2000E000000000000000280002000102030029001000001000022600010100120002220027
:2001000001020016000024000103001A000020000104FFFFFFFFFFFFFFFFFFFFFFFFFFFF6D
:20012000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDF
diff --git a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/esi.json b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/esi.json
index 0c60ca8..3e7b05f 100755
--- a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/esi.json
+++ b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/esi.json
@@ -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"
}
]
-}
\ No newline at end of file
+}
diff --git a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/objectlist.c b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/objectlist.c
index 4cfac5e..b43910c 100755
--- a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/objectlist.c
+++ b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/objectlist.c
@@ -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}
};
diff --git a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/utypes.h b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/utypes.h
index 0b29590..531027f 100755
--- a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/utypes.h
+++ b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/Firmware/lib/soes-esi/utypes.h
@@ -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;
diff --git a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/linuxcnc/configs/sim.axis/axis.ini b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/linuxcnc/configs/sim.axis/axis.ini
new file mode 100644
index 0000000..145c604
--- /dev/null
+++ b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/linuxcnc/configs/sim.axis/axis.ini
@@ -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
diff --git a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/linuxcnc/configs/sim.axis/e3000.hal b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/linuxcnc/configs/sim.axis/e3000.hal
new file mode 100644
index 0000000..b954f88
--- /dev/null
+++ b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/linuxcnc/configs/sim.axis/e3000.hal
@@ -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
+
+
diff --git a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/linuxcnc/configs/sim.axis/ethercat-conf.xml b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/linuxcnc/configs/sim.axis/ethercat-conf.xml
new file mode 100644
index 0000000..40ce515
--- /dev/null
+++ b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/linuxcnc/configs/sim.axis/ethercat-conf.xml
@@ -0,0 +1,95 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/linuxcnc/ethercat-conf.xml b/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/linuxcnc/ethercat-conf.xml
deleted file mode 100644
index e705856..0000000
--- a/Cards/EaserCAT-3000-Digital-Stepper-Analog-Encoder-Frequency/linuxcnc/ethercat-conf.xml
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-