Saving objects Note: Improper use of the function can result in it no longer being possible to start the controller. Therefore, carefully read the entire chapter before using the function. General Many objects in the object dictionary can be saved and then automatically reloaded the next time the controller is switched on or reset. Furthermore, the saved values are also retained following a firmware update. Only entire collections of objects (referred to in the following as categories) can be saved together; individual objects cannot be saved. An object can be assigned one of the following categories: Communication: Parameters related to external interfaces, such as PDO configuration etc. Application: Parameters related to operating modes. Customer: Parameters that are written and read by the customer/user only and are ignored by the controller firmware. Drive: Parameters related to the motor and the sensors (BLDC/Stepper, Closed/Open Loop…). Some are set and saved by auto setup. Tuning: Parameters related to motor and encoder that are set either by auto setup or that can be found in the data sheets, e.g., pole pairs and maximum current. If an object is not assigned one of these categories, it cannot be saved, e.g., statusword and all objects whose value is dependent on the current state of the controller. The objects in each category are listed below. In chapter Description of the object dictionary, the corresponding category for each object is also specified. Category: communication 1005h: COB-ID Sync 1007h: Synchronous Window Length 100Ch: Guard Time 100Dh: Live Time Factor 1014h: COB-ID EMCY 1017h: Producer Heartbeat Time 1029h: Error Behavior 1400h: Receive PDO 1 Communication Parameter 1401h: Receive PDO 2 Communication Parameter 1402h: Receive PDO 3 Communication Parameter 1403h: Receive PDO 4 Communication Parameter 1404h: Receive PDO 5 Communication Parameter 1405h: Receive PDO 6 Communication Parameter 1406h: Receive PDO 7 Communication Parameter 1407h: Receive PDO 8 Communication Parameter 1600h: Receive PDO 1 Mapping Parameter 1601h: Receive PDO 2 Mapping Parameter 1602h: Receive PDO 3 Mapping Parameter 1603h: Receive PDO 4 Mapping Parameter 1604h: Receive PDO 5 Mapping Parameter 1605h: Receive PDO 6 Mapping Parameter 1606h: Receive PDO 7 Mapping Parameter 1607h: Receive PDO 8 Mapping Parameter 1800h: Transmit PDO 1 Communication Parameter 1801h: Transmit PDO 2 Communication Parameter 1802h: Transmit PDO 3 Communication Parameter 1803h: Transmit PDO 4 Communication Parameter 1804h: Transmit PDO 5 Communication Parameter 1805h: Transmit PDO 6 Communication Parameter 1806h: Transmit PDO 7 Communication Parameter 1807h: Transmit PDO 8 Communication Parameter 1A00h: Transmit PDO 1 Mapping Parameter 1A01h: Transmit PDO 2 Mapping Parameter 1A02h: Transmit PDO 3 Mapping Parameter 1A03h: Transmit PDO 4 Mapping Parameter 1A04h: Transmit PDO 5 Mapping Parameter 1A05h: Transmit PDO 6 Mapping Parameter 1A06h: Transmit PDO 7 Mapping Parameter 1A07h: Transmit PDO 8 Mapping Parameter 2005h: CANopen Baudrate 2006h: CANopen WheelConfig 2007h: CANopen Config 2009h: CANopen NodeID 2102h: Fieldbus Module Control Category: application 2033h: Plunger Block 2034h: Upper Voltage Warning Level 2035h: Lower Voltage Warning Level 2036h: Open Loop Current Reduction Idle Time 2037h: Open Loop Current Reduction Value/factor 203Ah: Homing On Block Configuration 203Dh: Torque Window 203Eh: Torque Window Time 2056h: Limit Switch Tolerance Band 2057h: Clock Direction Multiplier 2058h: Clock Direction Divider 205Bh: Clock Direction Or Clockwise/Counter Clockwise Mode 2060h: Compensate Polepair Count 2061h: Velocity Numerator 2062h: Velocity Denominator 2063h: Acceleration Numerator 2064h: Acceleration Denominator 2065h: Jerk Numerator 2066h: Jerk Denominator 2084h: Bootup Delay 2300h: NanoJ Control 2410h: NanoJ Init Parameters 2800h: Bootloader And Reboot Settings 320Ah: Motor Drive Sensor Display Open Loop 320Bh: Motor Drive Sensor Display Closed Loop 3210h: Motor Drive Parameter Set 3212h: Motor Drive Flags 3221h: Analogue Inputs Control 3240h: Digital Inputs Control 3241h: Digital Input Capture 3242h: Digital Input Routing 3250h: Digital Outputs Control 3252h: Digital Output Routing 3321h: Analogue Input Offset 3322h: Analogue Input Pre-scaling 3700h: Following Error Option Code 4013h: HW Configuration 6040h: Controlword 6042h: Vl Target Velocity 6046h: Vl Velocity Min Max Amount 6048h: Vl Velocity Acceleration 6049h: Vl Velocity Deceleration 604Ah: Vl Velocity Quick Stop 604Ch: Vl Dimension Factor 605Ah: Quick Stop Option Code 605Bh: Shutdown Option Code 605Ch: Disable Option Code 605Dh: Halt Option Code 605Eh: Fault Option Code 6060h: Modes Of Operation 6065h: Following Error Window 6066h: Following Error Time Out 6067h: Position Window 6068h: Position Window Time 606Dh: Velocity Window 606Eh: Velocity Window Time 6071h: Target Torque 6072h: Max Torque 607Ah: Target Position 607Bh: Position Range Limit 607Ch: Home Offset 607Dh: Software Position Limit 607Eh: Polarity 6081h: Profile Velocity 6082h: End Velocity 6083h: Profile Acceleration 6084h: Profile Deceleration 6085h: Quick Stop Deceleration 6086h: Motion Profile Type 6087h: Torque Slope 608Fh: Position Encoder Resolution 6091h: Gear Ratio 6092h: Feed Constant 6098h: Homing Method 6099h: Homing Speed 609Ah: Homing Acceleration 60A4h: Profile Jerk 60C1h: Interpolation Data Record 60C2h: Interpolation Time Period 60C4h: Interpolation Data Configuration 60C5h: Max Acceleration 60C6h: Max Deceleration 60F2h: Positioning Option Code 60FEh: Digital Outputs 60FFh: Target Velocity Category: customer 2701h: Customer Storage Area Category: drive 3202h: Motor Drive Submode Select Category: tuning 2030h: Pole Pair Count 2031h: Maximum Current 2032h: Maximum Speed 203Bh: I2t Parameters 2050h: Encoder Alignment 2051h: Encoder Optimization 2052h: Encoder Resolution 2059h: Encoder Configuration Starting the save process Note: Saving may take a few seconds. Under no circumstances may you interrupt the voltage supply while saving. The state of the saved objects is otherwise undefined. Always wait until the controller has signaled that the save process has been successfully completed with the value "1" in the corresponding subindex in object 1010h. There is a subindex in object 1010h for each category. To save all objects of this category, the value "65766173h" must be written in the subindex. 1 The controller signals the end of the save process by overwriting the value with a "1". The following table shows which subindex of object 1010h is responsible for which category. Subindex Category 01h All categories 02h Communication 03h Application 04h Customer 05h Drive 06h Tuning Discarding the saved data If all objects or one category of saved objects is to be deleted, value "64616F6Ch" must be written in object 1011h. 2 The following subindices correspond to a category here: Subindex Category 01h All categories (reset to factory settings) with the exception of category 06h (Tuning) 02h Communication 03h Application 04h Customer 05h Drive 06h Tuning The saved objects are subsequently discarded. After the data have been deleted, the controller automatically restarts. Note: Objects of category 06h (Tuning) are determined by Auto setup and are not reset when resetting to factory settings with subindex 01h (thereby making it unnecessary to again perform an auto setup). You can reset these objects with subindex 06h. Verifying the configuration Object 1020h can be used to verify the configuration. It acts as a modification marker similar to common text editors: as soon as a file is modified in the editor, a marker (usually an asterisk) is added. The entries of object 1020h can be written with a date and time and then saved together with all other savable objects with 1010h:01. The entries of 1020h are reset to "0" as soon as a savable object (including 1010h:0x,h except for 1010h:01h and 1020h) is written. The following sequence makes verification possible: An external tool or master configures the controller. The tool or master sets the value in object 1020h. The tool or master activates the saving of all objects 1010h:01h = 65766173h. The date and time in object 1020h are also saved. After the controller is restarted, the master can check the value in 1020h:01h and 1020:01h. If one of the values is "0", the object dictionary was changed after the saved values were loaded. If the date or time in 1020 does not correspond to the expected value, objects were probably saved with values other than those that were expected. User memory area 2700h Up to eight 16-bit values can be saved with object 2700h:02 to 09. This range was created especially for NanoJ programs, e.g., to save configurations. Saving is started by writing the value "1" in object 2700h:01. Once saving has been completed, the object is set to "0". Note: Saving may take a few seconds. Under no circumstances may you interrupt the voltage supply while saving. The state of the saved objects is otherwise undefined. Always wait until the controller has signaled that the save process has been successfully completed with the value "0" in the corresponding subindex in object 2700h:01! . 1 This corresponds to the decimal of 1702257011d or the ASCII string save. 2 This corresponds to the decimal of 1684107116d or the ASCII string load.