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 1085f9e..a919a68 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 @@ -710,15 +572,15 @@ DT1C12ARR UINT - 288 + 176 1 - 18 + 11 DT1C12 - 304 + 192 0 Max SubIndex @@ -732,7 +594,7 @@ Elements DT1C12ARR - 288 + 176 16 ro @@ -771,6 +633,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 @@ -933,272 +853,8 @@ #x1602 - CommandedPosition1 - DT1602 - 48 - - - Max SubIndex - - 1 - - - - CommandedPosition1 - - #x70020020 - - - - - - - - #x1603 - CommandedPosition2 - DT1603 - 48 - - - Max SubIndex - - 1 - - - - CommandedPosition2 - - #x70030020 - - - - - - - - #x1604 - CommandedPosition3 - DT1604 - 48 - - - Max SubIndex - - 1 - - - - CommandedPosition3 - - #x70040020 - - - - - - - - #x1605 - CommandedPosition4 - DT1605 - 48 - - - Max SubIndex - - 1 - - - - CommandedPosition4 - - #x70050020 - - - - - - - - #x1606 - StepsPerMM1 - DT1606 - 48 - - - Max SubIndex - - 1 - - - - StepsPerMM1 - - #x70060020 - - - - - - - - #x1607 - StepsPerMM2 - DT1607 - 48 - - - Max SubIndex - - 1 - - - - StepsPerMM2 - - #x70070020 - - - - - - - - #x1608 - StepsPerMM3 - DT1608 - 48 - - - Max SubIndex - - 1 - - - - StepsPerMM3 - - #x70080020 - - - - - - - - #x1609 - StepsPerMM4 - DT1609 - 48 - - - Max SubIndex - - 1 - - - - StepsPerMM4 - - #x70090020 - - - - - - - - #x160A - MaxAcceleration1 - DT160A - 48 - - - Max SubIndex - - 1 - - - - MaxAcceleration1 - - #x700A0020 - - - - - - - - #x160B - MaxAcceleration2 - DT160B - 48 - - - Max SubIndex - - 1 - - - - MaxAcceleration2 - - #x700B0020 - - - - - - - - #x160C - MaxAcceleration3 - DT160C - 48 - - - Max SubIndex - - 1 - - - - MaxAcceleration3 - - #x700C0020 - - - - - - - - #x160D - MaxAcceleration4 - DT160D - 48 - - - Max SubIndex - - 1 - - - - MaxAcceleration4 - - #x700D0020 - - - - - - - - #x160E Enable1 - DT160E + DT1602 48 @@ -1210,7 +866,7 @@ Enable1 - #x700E0008 + #x70020008 @@ -1218,9 +874,9 @@ - #x160F + #x1603 Enable2 - DT160F + DT1603 48 @@ -1232,7 +888,7 @@ Enable2 - #x700F0008 + #x70030008 @@ -1240,9 +896,9 @@ - #x1610 + #x1604 Enable3 - DT1610 + DT1604 48 @@ -1254,7 +910,7 @@ Enable3 - #x70100008 + #x70040008 @@ -1262,9 +918,9 @@ - #x1611 + #x1605 Enable4 - DT1611 + DT1605 48 @@ -1276,7 +932,135 @@ Enable4 - #x70110008 + #x70050008 + + + + + + + + #x1606 + CommandedPosition1 + DT1606 + 48 + + + Max SubIndex + + 1 + + + + CommandedPosition1 + + #x70060020 + + + + + + + + #x1607 + CommandedPosition2 + DT1607 + 48 + + + Max SubIndex + + 1 + + + + CommandedPosition2 + + #x70070020 + + + + + + + + #x1608 + CommandedPosition3 + DT1608 + 48 + + + Max SubIndex + + 1 + + + + CommandedPosition3 + + #x70080020 + + + + + + + + #x1609 + CommandedPosition4 + DT1609 + 48 + + + Max SubIndex + + 1 + + + + CommandedPosition4 + + #x70090020 + + + + + + + + #x160A + EncoderIn + DT160A + 144 + + + Max SubIndex + + 4 + + + + IndexStatus + + #x700A0108 + + + + IndexByte + + #x700A0208 + + + + Position + + #x700A0320 + + + + Frequency + + #x700A0420 @@ -1481,12 +1265,12 @@ #x1C12 Sync Manager 2 PDO Assignment DT1C12 - 304 + 192 Max SubIndex - 18 + 11 @@ -1555,48 +1339,6 @@ #x160A - - PDO Mapping - - #x160B - - - - PDO Mapping - - #x160C - - - - PDO Mapping - - #x160D - - - - PDO Mapping - - #x160E - - - - PDO Mapping - - #x160F - - - - PDO Mapping - - #x1610 - - - - PDO Mapping - - #x1611 - - @@ -1665,7 +1407,103 @@ UDINT 32 - 20000 + 10000 + + + rw + + + + #x2001 + StepsPerMM1 + REAL + 32 + + 200 + + + rw + + + + #x2002 + StepsPerMM2 + REAL + 32 + + 200 + + + rw + + + + #x2003 + StepsPerMM3 + REAL + 32 + + 200 + + + rw + + + + #x2004 + StepsPerMM4 + REAL + 32 + + 200 + + + rw + + + + #x2005 + MaxAcceleration1 + REAL + 32 + + 1000000 + + + rw + + + + #x2006 + MaxAcceleration2 + REAL + 32 + + 1000000 + + + rw + + + + #x2007 + MaxAcceleration3 + REAL + 32 + + 1000000 + + + rw + + + + #x2008 + MaxAcceleration4 + REAL + 32 + + 1000000 rw @@ -1790,162 +1628,6 @@ #x7002 - CommandedPosition1 - REAL - 32 - - 0 - - - ro - R - - - - #x7003 - CommandedPosition2 - REAL - 32 - - 0 - - - ro - R - - - - #x7004 - CommandedPosition3 - REAL - 32 - - 0 - - - ro - R - - - - #x7005 - CommandedPosition4 - REAL - 32 - - 0 - - - ro - R - - - - #x7006 - StepsPerMM1 - REAL - 32 - - 0 - - - ro - R - - - - #x7007 - StepsPerMM2 - REAL - 32 - - 0 - - - ro - R - - - - #x7008 - StepsPerMM3 - REAL - 32 - - 0 - - - ro - R - - - - #x7009 - StepsPerMM4 - REAL - 32 - - 0 - - - ro - R - - - - #x700A - MaxAcceleration1 - REAL - 32 - - 0 - - - ro - R - - - - #x700B - MaxAcceleration2 - REAL - 32 - - 0 - - - ro - R - - - - #x700C - MaxAcceleration3 - REAL - 32 - - 0 - - - ro - R - - - - #x700D - MaxAcceleration4 - REAL - 32 - - 0 - - - ro - R - - - - #x700E Enable1 USINT 8 @@ -1958,7 +1640,7 @@ - #x700F + #x7003 Enable2 USINT 8 @@ -1971,7 +1653,7 @@ - #x7010 + #x7004 Enable3 USINT 8 @@ -1984,7 +1666,7 @@ - #x7011 + #x7005 Enable4 USINT 8 @@ -1996,6 +1678,98 @@ R + + #x7006 + CommandedPosition1 + REAL + 32 + + 0 + + + ro + R + + + + #x7007 + CommandedPosition2 + REAL + 32 + + 0 + + + ro + R + + + + #x7008 + CommandedPosition3 + REAL + 32 + + 0 + + + ro + R + + + + #x7009 + CommandedPosition4 + REAL + 32 + + 0 + + + ro + R + + + + #x700A + EncoderIn + DT700A + 96 + + + Max SubIndex + + 4 + + + + IndexStatus + + 0 + + + + IndexByte + + 0 + + + + Position + + 0 + + + + Frequency + + 0 + + + + + + @@ -2030,141 +1804,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 @@ -2172,10 +1814,10 @@ - #x160F + #x1603 Enable2 - #x700F + #x7003 #x0 8 Enable2 @@ -2183,10 +1825,10 @@ - #x1610 + #x1604 Enable3 - #x7010 + #x7004 #x0 8 Enable3 @@ -2194,16 +1836,92 @@ - #x1611 + #x1605 Enable4 - #x7011 + #x7005 #x0 8 Enable4 USINT + + #x1606 + CommandedPosition1 + + #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 + IndexStatus + USINT + + + #x700A + #x2 + 8 + IndexByte + USINT + + + #x700A + #x3 + 32 + Position + REAL + + + #x700A + #x4 + 32 + Frequency + REAL + + #x1A00 Velocity @@ -2282,7 +2000,7 @@ - + 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 2c142f3..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,7 +33,7 @@ #define SM3_smc 0x20 #define SM3_act 1 -#define MAX_MAPPINGS_SM2 18 +#define MAX_MAPPINGS_SM2 14 #define MAX_MAPPINGS_SM3 7 #define MAX_RXPDO_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 486538f..2f57f35 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", @@ -173,93 +245,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", @@ -270,7 +276,7 @@ "value": "0", "data": "&Obj.Enable3" }, - "7011": { + "7005": { "otype": "VAR", "name": "Enable4", "access": "RO", @@ -281,6 +287,50 @@ "value": "0", "data": "&Obj.Enable4" }, + "7006": { + "otype": "VAR", + "name": "CommandedPosition1", + "access": "RO", + "pdo_mappings": [ + "rxpdo" + ], + "dtype": "REAL32", + "value": "0", + "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", "name": "ActualPosition", @@ -292,70 +342,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" + ] } } }, 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 bc32db7..55db736 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,54 +19,36 @@ static const char acName1600_01[] = "Scale"; 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 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[] = "Velocity"; @@ -107,13 +89,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 acName1C13[] = "Sync Manager 3 PDO Assignment"; static const char acName1C13_00[] = "Max SubIndex"; static const char acName1C13_01[] = "PDO Mapping"; @@ -124,6 +99,14 @@ static const char acName1C13_05[] = "PDO Mapping"; static const char acName1C13_06[] = "PDO Mapping"; static const char acName1C13_07[] = "PDO Mapping"; static const char acName2000[] = "BasePeriod"; +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"; @@ -133,22 +116,20 @@ static const char acName6005[] = "ActualPosition3"; static const char acName6006[] = "ActualPosition4"; static const char acName7000[] = "Scale"; 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 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[] = { @@ -187,22 +168,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[] = { @@ -226,43 +207,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 SDO1A00[] = { @@ -309,7 +258,7 @@ const _objd SDO1C00[] = }; const _objd SDO1C12[] = { - {0x00, DTYPE_UNSIGNED8, 8, ATYPE_RO, acName1C12_00, 18, 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}, @@ -321,13 +270,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}, }; const _objd SDO1C13[] = { @@ -342,7 +284,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[] = { @@ -382,67 +356,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 _objectlist SDOobjects[] = @@ -462,14 +412,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}, + {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}, @@ -478,9 +421,17 @@ const _objectlist SDOobjects[] = {0x1A05, OTYPE_RECORD, 1, 0, acName1A05, SDO1A05}, {0x1A06, OTYPE_RECORD, 1, 0, acName1A06, SDO1A06}, {0x1C00, OTYPE_ARRAY, 4, 0, acName1C00, SDO1C00}, - {0x1C12, OTYPE_ARRAY, 18, 0, acName1C12, SDO1C12}, + {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}, @@ -498,13 +449,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}, + {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 6648589..06857cc 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 @@ -25,10 +25,25 @@ typedef struct float Scale; 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; @@ -37,14 +52,6 @@ typedef struct float MaxAcceleration2; float MaxAcceleration3; float MaxAcceleration4; - uint8_t Enable1; - uint8_t Enable2; - uint8_t Enable3; - uint8_t Enable4; - - /* 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 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -