Implemented EMCY objects.
authorluis
Wed, 26 Sep 2007 16:02:00 +0200
changeset 284 24bf3d692993
parent 283 e0b3096230e5
child 285 dbf7695290ae
Implemented EMCY objects.
Added emcy.c and emcy.h
Modified data.h for necessary variables.
Added some EMCY message sendings in TestMasterSlave example.
Modified configure script to define EMCY_MAX_ERRORS.
Modified python scripts to make 1003h object always available (with a callback).
CONTRIBUTORS
configure
doc/manual/en/manual.tex
examples/TestMasterMicroMod/TestMaster.c
examples/TestMasterMicroMod/TestMaster.h
examples/TestMasterSlave/Master.c
examples/TestMasterSlave/Master.h
examples/TestMasterSlave/Slave.c
examples/TestMasterSlave/Slave.h
examples/TestMasterSlave/TestMaster.c
examples/TestMasterSlave/TestMaster.od
examples/TestMasterSlave/TestMasterSlave.c
examples/TestMasterSlave/TestSlave.c
examples/TestMasterSlave/TestSlave.od
include/data.h
include/emcy.h
objdictgen/gen_cfile.py
objdictgen/node.py
src/Makefile.in
src/emcy.c
src/states.c
--- a/CONTRIBUTORS	Tue Sep 25 15:29:37 2007 +0200
+++ b/CONTRIBUTORS	Wed Sep 26 16:02:00 2007 +0200
@@ -11,5 +11,6 @@
 	David DUMINY (sté A6R)
 	Laurent ROMIEUX
 	Zakaria BELAMRI
+	Luis JIMENEZ
 
 Many thanks to the main contributors for their great work.
--- a/configure	Tue Sep 25 15:29:37 2007 +0200
+++ b/configure	Wed Sep 26 16:02:00 2007 +0200
@@ -55,6 +55,9 @@
 # Default to little-endian
 CANOPEN_BIG_ENDIAN=
 
+# Max number of active errors managed in error_data structure.
+EMCY_MAX_ERRORS=8
+
 ###########################################################################
 #                             DEFAULT BUILD OPTIONS                       #
 ###########################################################################
@@ -108,6 +111,7 @@
 	--SDO_TIMEOUT_MS=*)	SDO_TIMEOUT_MS=$1;;
 	--CANOPEN_BIG_ENDIAN=*)	CANOPEN_BIG_ENDIAN=$1;;
 	--MAX_NB_TIMER=*) MAX_NB_TIMER=$1;;
+	--EMCY_MAX_ERRORS=*) EMCY_MAX_ERRORS=$1;;
 	--help)	echo	"Usage: ./configure [options]"
     		echo	"Options:"
     		echo 	" --cc=foo      Use compiler 'foo' instead of defaults ${CC1} or ${CC2}."
@@ -143,6 +147,7 @@
 		echo	" --SDO_MAX_SIMULTANEOUS_TRANSFERTS [=4] Number of SDO that the node can manage concurrently"
 		echo	" --NMT_MAX_NODE_ID [=128] can be reduced to gain memory on small network"
 		echo	" --SDO_TIMEOUT_MS [=3000] Timeout in milliseconds for SDO (None to disable the feature)"
+		echo	" --EMCY_MAX_ERRORS [=8] Max number of active errors managed in error_data structure"
 		exit 0;;
 	*)		echo "Unknown argument ${1}"; exit -1;;
 	esac
@@ -574,7 +579,8 @@
  US_TO_TIMEVAL_FACTOR\
  TIMEVAL\
  TIMEVAL_MAX\
- RTCAN_SOCKET; do
+ RTCAN_SOCKET\
+ EMCY_MAX_ERRORS; do
 if [ "${!i}" = "" ]; then
 echo "/* $i is not defined */" >> include/config.h
 else
@@ -585,7 +591,8 @@
 
 for i in \
  SDO_MAX_SIMULTANEOUS_TRANSFERTS\
- NMT_MAX_NODE_ID; do
+ NMT_MAX_NODE_ID\
+ EMCY_MAX_ERRORS; do
 	echo "#define REPEAT_"$i"_TIMES(repeat)\\">> include/config.h
 	times=${!i}
 	result=""
--- a/doc/manual/en/manual.tex	Tue Sep 25 15:29:37 2007 +0200
+++ b/doc/manual/en/manual.tex	Wed Sep 26 16:02:00 2007 +0200
@@ -198,7 +198,7 @@
 producer or receiver.
 \item NMT NodeGuard implemented : Not fully implemented.
 \item TIME (time Stamp) : Not implemented.
-\item EMCY (emergency objects) : Not implemented.
+\item EMCY (emergency objects) : Sending and reception of EMCY objectos (without manufacturer specific error field).
 \item PDO Mapping bit per bit implemented.
 \end{enumerate}
 {\bfseries\upshape
--- a/examples/TestMasterMicroMod/TestMaster.c	Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterMicroMod/TestMaster.c	Wed Sep 26 16:02:00 2007 +0200
@@ -62,6 +62,23 @@
                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_obj1001 }
                      };
 
+/* index 0x1003 :   Pre-defined Error Field */
+                    UNS8 TestMaster_highestSubIndex_obj1003 = 0; /* number of subindex - 1*/
+                    UNS32 TestMaster_obj1003[] = 
+                    {
+                      0x0	/* 0 */
+                    };
+                    ODCallback_t TestMaster_Index1003_callbacks[] = 
+                     {
+                       NULL,
+                       NULL,
+                     };
+                    subindex TestMaster_Index1003[] = 
+                     {
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1003 },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1003[0] }
+                     };
+
 /* index 0x1005 :   SYNC COB ID. */
                     UNS32 TestMaster_obj1005 = 0x40000080;	/* 1073741952 */
                     ODCallback_t TestMaster_Index1005_callbacks[] = 
@@ -118,13 +135,13 @@
                     UNS8 TestMaster_highestSubIndex_obj1280 = 3; /* number of subindex - 1*/
                     UNS32 TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x640;	/* 1600 */
                     UNS32 TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x5C0;	/* 1472 */
-                    INTEGER32 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x40;	/* 64 */
+                    UNS8 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x40;	/* 64 */
                     subindex TestMaster_Index1280[] = 
                      {
                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1280 },
                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO },
                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO },
-                       { RW, int32, sizeof (INTEGER32), (void*)&TestMaster_obj1280_Node_ID_of_the_SDO_Server }
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1280_Node_ID_of_the_SDO_Server }
                      };
 
 /* index 0x1400 :   Receive PDO 1 Parameter. */
@@ -177,6 +194,15 @@
                     UNS16 TestMaster_obj1800_Inhibit_Time = 0x0;	/* 0 */
                     UNS8 TestMaster_obj1800_Compatibility_Entry = 0x0;	/* 0 */
                     UNS16 TestMaster_obj1800_Event_Timer = 0x0;	/* 0 */
+                    ODCallback_t TestMaster_Index1800_callbacks[] = 
+                     {
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                     };
                     subindex TestMaster_Index1800[] = 
                      {
                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1800 },
@@ -291,7 +317,7 @@
 		case 0x1280: i = 6;break;
 		case 0x1400: i = 7;break;
 		case 0x1600: i = 8;break;
-		case 0x1800: i = 9;break;
+		case 0x1800: i = 9;*callbacks = TestMaster_Index1800_callbacks; break;
 		case 0x1A00: i = 10;break;
 		case 0x2000: i = 11;break;
 		case 0x200F: i = 12;break;
--- a/examples/TestMasterMicroMod/TestMaster.h	Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterMicroMod/TestMaster.h	Wed Sep 26 16:02:00 2007 +0200
@@ -12,6 +12,7 @@
 
 /* Master node data struct */
 extern CO_Data TestMaster_Data;
+extern ODCallback_t Transmit_PDO_1_Parameter_callbacks[];		/* Callbacks of index0x1800 */
 extern UNS8 DO;		/* Mapped at index 0x2000, subindex 0x00*/
 extern UNS8 DI1;		/* Mapped at index 0x200F, subindex 0x00*/
 extern UNS8 DI2;		/* Mapped at index 0x2010, subindex 0x00*/
--- a/examples/TestMasterSlave/Master.c	Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/Master.c	Wed Sep 26 16:02:00 2007 +0200
@@ -180,10 +180,14 @@
 		MasterMap13);
 }
 
+void TestMaster_post_emcy(UNS8 nodeID, UNS16 errCode, UNS8 errReg)
+{
+	eprintf("Master received EMCY message. Node: %2.2x  ErrorCode: %4.4x  ErrorRegister: %2.2x\n", nodeID, errCode, errReg);
+}
+
 char query_result = 0;
 char waiting_answer = 0;
 
-
 static void CheckSDO(CO_Data* d, UNS8 nodeId)
 {
 	UNS32 abortCode;	
--- a/examples/TestMasterSlave/Master.h	Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/Master.h	Wed Sep 26 16:02:00 2007 +0200
@@ -11,3 +11,4 @@
 
 void TestMaster_post_sync(void);
 void TestMaster_post_TPDO(void);
+void TestMaster_post_emcy(UNS8 nodeID, UNS16 errCode, UNS8 errReg);
--- a/examples/TestMasterSlave/Slave.c	Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/Slave.c	Wed Sep 26 16:02:00 2007 +0200
@@ -86,6 +86,13 @@
 {
         SlaveMap13 += 1;
 	eprintf("TestSlave_post_TPDO\n");
+	
+	/* send an error and recover inmediately every 12 cycles */
+	if(SlaveMap13 % 12 == 0)
+	{
+		EMCY_setError(&TestSlave_Data, 0x4200, 0x08);
+		EMCY_errorRecovered(&TestSlave_Data, 0x4200);
+	}
 }
 
 void TestSlave_storeODSubIndex(UNS16 wIndex, UNS8 bSubindex)
@@ -101,3 +108,8 @@
 	 * */
 	eprintf("TestSlave_storeODSubIndex : %4.4x %2.2x\n", wIndex,  bSubindex);
 }
+
+void TestSlave_post_emcy(UNS8 nodeID, UNS16 errCode, UNS8 errReg)
+{
+	eprintf("Slave received EMCY message. Node: %2.2x  ErrorCode: %4.4x  ErrorRegister: %2.2x\n", nodeID, errCode, errReg);
+}
--- a/examples/TestMasterSlave/Slave.h	Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/Slave.h	Wed Sep 26 16:02:00 2007 +0200
@@ -12,3 +12,4 @@
 void TestSlave_post_sync(void);
 void TestSlave_post_TPDO(void);
 void TestSlave_storeODSubIndex(UNS16 wIndex, UNS8 bSubindex);
+void TestSlave_post_emcy(UNS8 nodeID, UNS16 errCode, UNS8 errReg);
--- a/examples/TestMasterSlave/TestMaster.c	Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/TestMaster.c	Wed Sep 26 16:02:00 2007 +0200
@@ -66,6 +66,23 @@
                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_obj1001 }
                      };
 
+/* index 0x1003 :   Pre-defined Error Field */
+                    UNS8 TestMaster_highestSubIndex_obj1003 = 0; /* number of subindex - 1*/
+                    UNS32 TestMaster_obj1003[] = 
+                    {
+                      0x0	/* 0 */
+                    };
+                    ODCallback_t TestMaster_Index1003_callbacks[] = 
+                     {
+                       NULL,
+                       NULL,
+                     };
+                    subindex TestMaster_Index1003[] = 
+                     {
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1003 },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestMaster_obj1003[0] }
+                     };
+
 /* index 0x1005 :   SYNC COB ID. */
                     UNS32 TestMaster_obj1005 = 0x40000080;	/* 1073741952 */
                     ODCallback_t TestMaster_Index1005_callbacks[] = 
@@ -152,13 +169,13 @@
                     UNS8 TestMaster_highestSubIndex_obj1280 = 3; /* number of subindex - 1*/
                     UNS32 TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO = 0x602;	/* 1538 */
                     UNS32 TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO = 0x582;	/* 1410 */
-                    INTEGER32 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x2;	/* 2 */
+                    UNS8 TestMaster_obj1280_Node_ID_of_the_SDO_Server = 0x2;	/* 2 */
                     subindex TestMaster_Index1280[] = 
                      {
                        { RO, uint8, sizeof (UNS8), (void*)&TestMaster_highestSubIndex_obj1280 },
                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Client_to_Server_Transmit_SDO },
                        { RW, uint32, sizeof (UNS32), (void*)&TestMaster_obj1280_COB_ID_Server_to_Client_Receive_SDO },
-                       { RW, int32, sizeof (INTEGER32), (void*)&TestMaster_obj1280_Node_ID_of_the_SDO_Server }
+                       { RW, uint8, sizeof (UNS8), (void*)&TestMaster_obj1280_Node_ID_of_the_SDO_Server }
                      };
 
 /* index 0x1400 :   Receive PDO 1 Parameter. */
--- a/examples/TestMasterSlave/TestMaster.od	Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/TestMaster.od	Wed Sep 26 16:02:00 2007 +0200
@@ -1,18 +1,18 @@
 <?xml version="1.0"?>
 <!DOCTYPE PyObject SYSTEM "PyObjects.dtd">
-<PyObject module="node" class="Node" id="46582816">
-<attr name="Profile" type="dict" id="45421552" >
+<PyObject module="node" class="Node" id="1111003340">
+<attr name="Profile" type="dict" id="1110999764" >
   <entry>
     <key type="numeric" value="24576" />
-    <val type="dict" id="46279792" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46518712" >
-          <item type="dict" id="47325472" >
+    <val type="dict" id="1111000172" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101093228" >
+          <item type="dict" id="1111000580" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -30,7 +30,7 @@
               <val type="string" value="Number of Input 8 bit" />
             </entry>
           </item>
-          <item type="dict" id="46104736" >
+          <item type="dict" id="1111001124" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -66,15 +66,15 @@
   </entry>
   <entry>
     <key type="numeric" value="24832" />
-    <val type="dict" id="45358112" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46519144" >
-          <item type="dict" id="46394368" >
+    <val type="dict" id="1101358324" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101093484" >
+          <item type="dict" id="1111000444" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -92,7 +92,7 @@
               <val type="string" value="Number of Input 16 bit" />
             </entry>
           </item>
-          <item type="dict" id="46284592" >
+          <item type="dict" id="1111000308" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -128,15 +128,15 @@
   </entry>
   <entry>
     <key type="numeric" value="24578" />
-    <val type="dict" id="43954032" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46505712" >
-          <item type="dict" id="45613168" >
+    <val type="dict" id="1101359004" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101094476" >
+          <item type="dict" id="1111001532" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -154,7 +154,7 @@
               <val type="string" value="Number of Input 8 bit" />
             </entry>
           </item>
-          <item type="dict" id="46102848" >
+          <item type="dict" id="1111001804" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -190,15 +190,15 @@
   </entry>
   <entry>
     <key type="numeric" value="24579" />
-    <val type="dict" id="45570224" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46495648" >
-          <item type="dict" id="46401968" >
+    <val type="dict" id="1111000852" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101093580" >
+          <item type="dict" id="1111001940" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -216,7 +216,7 @@
               <val type="string" value="Number of Input 8 bit" />
             </entry>
           </item>
-          <item type="dict" id="46247504" >
+          <item type="dict" id="1111002212" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -252,15 +252,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25604" />
-    <val type="dict" id="44928832" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46505856" >
-          <item type="dict" id="45914656" >
+    <val type="dict" id="1111000988" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101093772" >
+          <item type="dict" id="1111002348" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -278,7 +278,7 @@
               <val type="string" value="Number of Analogue Input" />
             </entry>
           </item>
-          <item type="dict" id="46843712" >
+          <item type="dict" id="1111002620" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -314,15 +314,15 @@
   </entry>
   <entry>
     <key type="numeric" value="24581" />
-    <val type="dict" id="46284880" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46519432" >
-          <item type="dict" id="45392416" >
+    <val type="dict" id="1111001668" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101093100" >
+          <item type="dict" id="1111002756" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -354,15 +354,15 @@
   </entry>
   <entry>
     <key type="numeric" value="24582" />
-    <val type="dict" id="46411968" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46512176" >
-          <item type="dict" id="46412256" >
+    <val type="dict" id="1111011372" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101093804" >
+          <item type="dict" id="1111011780" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -380,7 +380,7 @@
               <val type="string" value="Number of Input 8 bit" />
             </entry>
           </item>
-          <item type="dict" id="46412544" >
+          <item type="dict" id="1111001260" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -416,15 +416,15 @@
   </entry>
   <entry>
     <key type="numeric" value="24583" />
-    <val type="dict" id="46842832" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46512392" >
-          <item type="dict" id="46412832" >
+    <val type="dict" id="1111011644" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101067148" >
+          <item type="dict" id="1111000036" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -442,7 +442,7 @@
               <val type="string" value="Number of Input 8 bit" />
             </entry>
           </item>
-          <item type="dict" id="46413120" >
+          <item type="dict" id="1111012052" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -478,15 +478,15 @@
   </entry>
   <entry>
     <key type="numeric" value="24584" />
-    <val type="dict" id="46154848" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46505784" >
-          <item type="dict" id="45748288" >
+    <val type="dict" id="1111002076" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101066988" >
+          <item type="dict" id="1111012188" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -504,7 +504,7 @@
               <val type="string" value="Number of Input 8 bit" />
             </entry>
           </item>
-          <item type="dict" id="45748624" >
+          <item type="dict" id="1111012460" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -540,15 +540,15 @@
   </entry>
   <entry>
     <key type="numeric" value="24834" />
-    <val type="dict" id="45358400" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46513832" >
-          <item type="dict" id="45358688" >
+    <val type="dict" id="1111002892" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101067404" >
+          <item type="dict" id="1111012596" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -566,7 +566,7 @@
               <val type="string" value="Number of Input 16 bit" />
             </entry>
           </item>
-          <item type="dict" id="46154560" >
+          <item type="dict" id="1111012868" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -602,15 +602,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25616" />
-    <val type="dict" id="45912240" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46513688" >
-          <item type="dict" id="46438752" >
+    <val type="dict" id="1111011916" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1100837548" >
+          <item type="dict" id="1111013004" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -628,7 +628,7 @@
               <val type="string" value="Number of Analogue Input 8 Bit" />
             </entry>
           </item>
-          <item type="dict" id="46439040" >
+          <item type="dict" id="1111013276" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -664,15 +664,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25617" />
-    <val type="dict" id="46350880" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46513544" >
-          <item type="dict" id="46351168" >
+    <val type="dict" id="1111012324" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101076972" >
+          <item type="dict" id="1111013412" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -690,7 +690,7 @@
               <val type="string" value="Number of Analogue Input 16 Bit" />
             </entry>
           </item>
-          <item type="dict" id="45911952" >
+          <item type="dict" id="1111013684" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -726,15 +726,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25618" />
-    <val type="dict" id="46400912" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46513400" >
-          <item type="dict" id="46452128" >
+    <val type="dict" id="1111012732" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101079308" >
+          <item type="dict" id="1111013820" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -752,7 +752,7 @@
               <val type="string" value="Number of Analogue Outputs 32 Bit" />
             </entry>
           </item>
-          <item type="dict" id="46452416" >
+          <item type="dict" id="1111014092" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -788,15 +788,15 @@
   </entry>
   <entry>
     <key type="numeric" value="24835" />
-    <val type="dict" id="45914048" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46512032" >
-          <item type="dict" id="45914336" >
+    <val type="dict" id="1111013140" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101067372" >
+          <item type="dict" id="1111014228" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -814,7 +814,7 @@
               <val type="string" value="Number of Input 16 bit" />
             </entry>
           </item>
-          <item type="dict" id="46400624" >
+          <item type="dict" id="1111014500" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -850,15 +850,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25620" />
-    <val type="dict" id="46446112" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46512752" >
-          <item type="dict" id="46280624" >
+    <val type="dict" id="1111013548" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101062892" >
+          <item type="dict" id="1111014636" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -876,7 +876,7 @@
               <val type="string" value="Number of Analogue Outputs" />
             </entry>
           </item>
-          <item type="dict" id="46417840" >
+          <item type="dict" id="1111014908" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -912,15 +912,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25088" />
-    <val type="dict" id="45347120" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46513040" >
-          <item type="dict" id="46329888" >
+    <val type="dict" id="1111013956" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101093868" >
+          <item type="dict" id="1111015044" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -938,7 +938,7 @@
               <val type="string" value="Number of Output 8 Bit" />
             </entry>
           </item>
-          <item type="dict" id="46444064" >
+          <item type="dict" id="1111015468" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -974,15 +974,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25603" />
-    <val type="dict" id="45341216" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46512824" >
-          <item type="dict" id="45861408" >
+    <val type="dict" id="1111014364" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101064652" >
+          <item type="dict" id="1111015604" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1000,7 +1000,7 @@
               <val type="string" value="Number of Analogue Input Float" />
             </entry>
           </item>
-          <item type="dict" id="45571648" >
+          <item type="dict" id="1111015876" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1036,15 +1036,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25378" />
-    <val type="dict" id="46841872" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46503120" >
-          <item type="dict" id="46842160" >
+    <val type="dict" id="1111034164" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005196" >
+          <item type="dict" id="1111035252" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1062,7 +1062,7 @@
               <val type="string" value="Number of Output 32 Bit" />
             </entry>
           </item>
-          <item type="dict" id="46842448" >
+          <item type="dict" id="1111035524" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -1098,15 +1098,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25344" />
-    <val type="dict" id="46912576" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46503048" >
-          <item type="dict" id="46912864" >
+    <val type="dict" id="1111014772" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1101094028" >
+          <item type="dict" id="1111016012" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1124,7 +1124,7 @@
               <val type="string" value="Number of Output 16 Bit" />
             </entry>
           </item>
-          <item type="dict" id="46913152" >
+          <item type="dict" id="1111016284" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -1160,7 +1160,7 @@
   </entry>
   <entry>
     <key type="numeric" value="24608" />
-    <val type="dict" id="45610288" >
+    <val type="dict" id="1111015180" >
       <entry>
         <key type="string" value="incr" />
         <val type="numeric" value="1" />
@@ -1175,8 +1175,8 @@
       </entry>
       <entry>
         <key type="string" value="values" />
-        <val type="list" id="46518928" >
-          <item type="dict" id="46280128" >
+        <val type="list" id="1111004076" >
+          <item type="dict" id="1111016420" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1194,7 +1194,7 @@
               <val type="string" value="Number of Input 1 bit" />
             </entry>
           </item>
-          <item type="dict" id="45418800" >
+          <item type="dict" id="1111016692" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -1230,15 +1230,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25633" />
-    <val type="dict" id="45500336" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46512464" >
-          <item type="dict" id="45628304" >
+    <val type="dict" id="1111002484" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111003852" >
+          <item type="dict" id="1111016828" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1256,7 +1256,7 @@
               <val type="string" value="Number of Analogue Inputs" />
             </entry>
           </item>
-          <item type="dict" id="46139248" >
+          <item type="dict" id="1111017100" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -1292,15 +1292,15 @@
   </entry>
   <entry>
     <key type="numeric" value="24866" />
-    <val type="dict" id="45558736" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46514120" >
-          <item type="dict" id="45404464" >
+    <val type="dict" id="1111015740" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111003564" >
+          <item type="dict" id="1111017236" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1318,7 +1318,7 @@
               <val type="string" value="Number of Input 32 bit" />
             </entry>
           </item>
-          <item type="dict" id="44824048" >
+          <item type="dict" id="1111017508" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -1354,15 +1354,15 @@
   </entry>
   <entry>
     <key type="numeric" value="24867" />
-    <val type="dict" id="46394080" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46518424" >
-          <item type="dict" id="45093088" >
+    <val type="dict" id="1111016556" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004204" >
+          <item type="dict" id="1111017644" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1380,7 +1380,7 @@
               <val type="string" value="Number of Input 32 bit" />
             </entry>
           </item>
-          <item type="dict" id="45614384" >
+          <item type="dict" id="1111017916" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -1416,15 +1416,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25636" />
-    <val type="dict" id="45419712" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46496296" >
-          <item type="dict" id="46459776" >
+    <val type="dict" id="1111016964" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111003692" >
+          <item type="dict" id="1111018052" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1442,7 +1442,7 @@
               <val type="string" value="Number of Analogue Inputs" />
             </entry>
           </item>
-          <item type="dict" id="46460064" >
+          <item type="dict" id="1111018324" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -1478,15 +1478,15 @@
   </entry>
   <entry>
     <key type="numeric" value="24838" />
-    <val type="dict" id="45509680" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46505064" >
-          <item type="dict" id="45892784" >
+    <val type="dict" id="1111017372" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111003980" >
+          <item type="dict" id="1111018460" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1504,7 +1504,7 @@
               <val type="string" value="Number of Input 16 bit" />
             </entry>
           </item>
-          <item type="dict" id="44927216" >
+          <item type="dict" id="1111018732" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -1540,15 +1540,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25638" />
-    <val type="dict" id="45639808" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46496224" >
-          <item type="dict" id="45880768" >
+    <val type="dict" id="1111017780" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004268" >
+          <item type="dict" id="1111018868" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1566,7 +1566,7 @@
               <val type="string" value="Number of Analogue Inputs" />
             </entry>
           </item>
-          <item type="dict" id="47237920" >
+          <item type="dict" id="1111019140" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -1602,15 +1602,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25383" />
-    <val type="dict" id="47101952" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46511456" >
-          <item type="dict" id="44928544" >
+    <val type="dict" id="1111018188" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004300" >
+          <item type="dict" id="1111019276" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1628,7 +1628,7 @@
               <val type="string" value="Number of Output 32 Bit" />
             </entry>
           </item>
-          <item type="dict" id="47265280" >
+          <item type="dict" id="1111023796" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -1664,15 +1664,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25640" />
-    <val type="dict" id="45532192" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46518568" >
-          <item type="dict" id="47031872" >
+    <val type="dict" id="1111018596" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004332" >
+          <item type="dict" id="1111023932" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1690,7 +1690,7 @@
               <val type="string" value="Number of Analogue Inputs" />
             </entry>
           </item>
-          <item type="dict" id="45757584" >
+          <item type="dict" id="1111024204" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -1726,15 +1726,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25641" />
-    <val type="dict" id="45955552" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46512608" >
-          <item type="dict" id="46898224" >
+    <val type="dict" id="1111019004" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004364" >
+          <item type="dict" id="1111024340" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1752,7 +1752,7 @@
               <val type="string" value="Number of Analogue Inputs" />
             </entry>
           </item>
-          <item type="dict" id="45551376" >
+          <item type="dict" id="1111024612" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -1788,15 +1788,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25642" />
-    <val type="dict" id="46134672" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46511600" >
-          <item type="dict" id="44679392" >
+    <val type="dict" id="1111023660" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004236" >
+          <item type="dict" id="1111024748" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1814,7 +1814,7 @@
               <val type="string" value="Number of Analogue Inputs" />
             </entry>
           </item>
-          <item type="dict" id="45946160" >
+          <item type="dict" id="1111025020" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -1850,15 +1850,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25643" />
-    <val type="dict" id="46973968" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46513256" >
-          <item type="dict" id="46369904" >
+    <val type="dict" id="1111024068" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004428" >
+          <item type="dict" id="1111025156" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1876,7 +1876,7 @@
               <val type="string" value="Number of Analogue Inputs" />
             </entry>
           </item>
-          <item type="dict" id="47189472" >
+          <item type="dict" id="1111025428" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -1912,15 +1912,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25644" />
-    <val type="dict" id="45914944" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46511168" >
-          <item type="dict" id="45331536" >
+    <val type="dict" id="1111024476" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004460" >
+          <item type="dict" id="1111025564" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -1938,7 +1938,7 @@
               <val type="string" value="Number of Analogue Inputs" />
             </entry>
           </item>
-          <item type="dict" id="45331824" >
+          <item type="dict" id="1111025836" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -1974,15 +1974,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25645" />
-    <val type="dict" id="45911168" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46510952" >
-          <item type="dict" id="45911456" >
+    <val type="dict" id="1111024884" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004524" >
+          <item type="dict" id="1111025972" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -2000,7 +2000,7 @@
               <val type="string" value="Number of Analogue Inputs" />
             </entry>
           </item>
-          <item type="dict" id="46328352" >
+          <item type="dict" id="1111026244" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -2036,15 +2036,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25646" />
-    <val type="dict" id="45428176" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46510736" >
-          <item type="dict" id="45428464" >
+    <val type="dict" id="1111025292" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004588" >
+          <item type="dict" id="1111026380" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -2062,7 +2062,7 @@
               <val type="string" value="Number of Analogue Inputs" />
             </entry>
           </item>
-          <item type="dict" id="46265488" >
+          <item type="dict" id="1111026652" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -2098,15 +2098,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25647" />
-    <val type="dict" id="46265824" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46510520" >
-          <item type="dict" id="46338624" >
+    <val type="dict" id="1111025700" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004556" >
+          <item type="dict" id="1111026788" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -2124,7 +2124,7 @@
               <val type="string" value="Number of Analogue Inputs" />
             </entry>
           </item>
-          <item type="dict" id="46338912" >
+          <item type="dict" id="1111027060" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -2160,7 +2160,7 @@
   </entry>
   <entry>
     <key type="numeric" value="24624" />
-    <val type="dict" id="45346336" >
+    <val type="dict" id="1111026108" >
       <entry>
         <key type="string" value="incr" />
         <val type="numeric" value="1" />
@@ -2175,8 +2175,8 @@
       </entry>
       <entry>
         <key type="string" value="values" />
-        <val type="list" id="46510232" >
-          <item type="dict" id="45346624" >
+        <val type="list" id="1111004620" >
+          <item type="dict" id="1111027196" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -2194,7 +2194,7 @@
               <val type="string" value="Number of Input 1 bit" />
             </entry>
           </item>
-          <item type="dict" id="47250976" >
+          <item type="dict" id="1111027468" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -2230,15 +2230,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25352" />
-    <val type="dict" id="47251264" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46505928" >
-          <item type="dict" id="47094672" >
+    <val type="dict" id="1111016148" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111003724" >
+          <item type="dict" id="1111027756" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -2256,7 +2256,7 @@
               <val type="string" value="Number of Output 16 Bit" />
             </entry>
           </item>
-          <item type="dict" id="47094960" >
+          <item type="dict" id="1111028028" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -2292,15 +2292,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25650" />
-    <val type="dict" id="47232800" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46505208" >
-          <item type="dict" id="47233088" >
+    <val type="dict" id="1111026516" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004652" >
+          <item type="dict" id="1111028164" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -2318,7 +2318,7 @@
               <val type="string" value="Number of Analogue Inputs" />
             </entry>
           </item>
-          <item type="dict" id="47248160" >
+          <item type="dict" id="1111028436" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -2354,15 +2354,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25090" />
-    <val type="dict" id="46781216" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46502544" >
-          <item type="dict" id="46781504" >
+    <val type="dict" id="1111030340" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005036" >
+          <item type="dict" id="1111036220" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -2380,7 +2380,7 @@
               <val type="string" value="Number of Output 8 Bit" />
             </entry>
           </item>
-          <item type="dict" id="46781792" >
+          <item type="dict" id="1111036492" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -2416,15 +2416,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25096" />
-    <val type="dict" id="47326048" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46505352" >
-          <item type="dict" id="47326336" >
+    <val type="dict" id="1111026924" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004748" >
+          <item type="dict" id="1111029388" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -2442,7 +2442,7 @@
               <val type="string" value="Number of Output 8 Bit" />
             </entry>
           </item>
-          <item type="dict" id="46368576" >
+          <item type="dict" id="1111029660" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -2478,7 +2478,7 @@
   </entry>
   <entry>
     <key type="numeric" value="24632" />
-    <val type="dict" id="46368912" >
+    <val type="dict" id="1111028300" >
       <entry>
         <key type="string" value="incr" />
         <val type="numeric" value="1" />
@@ -2493,8 +2493,8 @@
       </entry>
       <entry>
         <key type="string" value="values" />
-        <val type="list" id="46512248" >
-          <item type="dict" id="46369200" >
+        <val type="list" id="1111004780" >
+          <item type="dict" id="1111029796" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -2512,7 +2512,7 @@
               <val type="string" value="Number of Input 1 bit" />
             </entry>
           </item>
-          <item type="dict" id="46402304" >
+          <item type="dict" id="1111030068" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -2548,15 +2548,15 @@
   </entry>
   <entry>
     <key type="numeric" value="24871" />
-    <val type="dict" id="46917632" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46504848" >
-          <item type="dict" id="46917920" >
+    <val type="dict" id="1111041268" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004492" >
+          <item type="dict" id="1111042356" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -2574,7 +2574,7 @@
               <val type="string" value="Number of Input 32 bit" />
             </entry>
           </item>
-          <item type="dict" id="46918208" >
+          <item type="dict" id="1111042628" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -2609,70 +2609,8 @@
     </val>
   </entry>
   <entry>
-    <key type="numeric" value="25351" />
-    <val type="dict" id="46907360" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46495864" >
-          <item type="dict" id="46907648" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Output 16 Bit" />
-            </entry>
-          </item>
-          <item type="dict" id="46907984" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="rw" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="True" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="6" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Error Value Outputs 0x%X to 0x%X[(sub*16-15,sub*16)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Error Value Outputs 16 Bit" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
     <key type="numeric" value="25152" />
-    <val type="dict" id="47263552" >
+    <val type="dict" id="1111029524" >
       <entry>
         <key type="string" value="incr" />
         <val type="numeric" value="1" />
@@ -2687,8 +2625,8 @@
       </entry>
       <entry>
         <key type="string" value="values" />
-        <val type="list" id="46504272" >
-          <item type="dict" id="47263840" >
+        <val type="list" id="1111004876" >
+          <item type="dict" id="1111031020" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -2706,7 +2644,7 @@
               <val type="string" value="Number of Output 1 Bit" />
             </entry>
           </item>
-          <item type="dict" id="47264176" >
+          <item type="dict" id="1111031292" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -2742,15 +2680,15 @@
   </entry>
   <entry>
     <key type="numeric" value="24864" />
-    <val type="dict" id="46269200" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46504128" >
-          <item type="dict" id="46844832" >
+    <val type="dict" id="1111011508" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004908" >
+          <item type="dict" id="1111031428" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -2768,7 +2706,7 @@
               <val type="string" value="Number of Input 32 bit" />
             </entry>
           </item>
-          <item type="dict" id="46845168" >
+          <item type="dict" id="1111031852" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -2804,15 +2742,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25666" />
-    <val type="dict" id="46845456" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46503984" >
-          <item type="dict" id="46845744" >
+    <val type="dict" id="1111029932" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004940" >
+          <item type="dict" id="1111031988" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -2830,7 +2768,7 @@
               <val type="string" value="Number of Analogue Outputs" />
             </entry>
           </item>
-          <item type="dict" id="46846080" >
+          <item type="dict" id="1111032260" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -2866,15 +2804,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25667" />
-    <val type="dict" id="46765072" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46503840" >
-          <item type="dict" id="46765360" >
+    <val type="dict" id="1111031156" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004972" >
+          <item type="dict" id="1111032396" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -2892,7 +2830,7 @@
               <val type="string" value="Number of Analogue Outputs" />
             </entry>
           </item>
-          <item type="dict" id="46765696" >
+          <item type="dict" id="1111032668" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -2928,15 +2866,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25668" />
-    <val type="dict" id="46765984" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46503696" >
-          <item type="dict" id="46766272" >
+    <val type="dict" id="1111031564" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005004" >
+          <item type="dict" id="1111032804" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -2954,7 +2892,7 @@
               <val type="string" value="Number of Analogue Outputs" />
             </entry>
           </item>
-          <item type="dict" id="46766608" >
+          <item type="dict" id="1111033076" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -2990,15 +2928,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25669" />
-    <val type="dict" id="46766944" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46503552" >
-          <item type="dict" id="47134240" >
+    <val type="dict" id="1111032124" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005100" >
+          <item type="dict" id="1111033212" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -3016,7 +2954,7 @@
               <val type="string" value="Number of Analogue Outputs" />
             </entry>
           </item>
-          <item type="dict" id="47134528" >
+          <item type="dict" id="1111033484" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -3052,15 +2990,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25665" />
-    <val type="dict" id="47134816" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46497520" >
-          <item type="dict" id="47135104" >
+    <val type="dict" id="1111032532" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005068" >
+          <item type="dict" id="1111033620" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -3078,7 +3016,7 @@
               <val type="string" value="Number of Analogue Outputs" />
             </entry>
           </item>
-          <item type="dict" id="47135392" >
+          <item type="dict" id="1111033892" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -3114,15 +3052,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25648" />
-    <val type="dict" id="47135728" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46503264" >
-          <item type="dict" id="47136016" >
+    <val type="dict" id="1111032940" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005132" >
+          <item type="dict" id="1111034028" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -3140,7 +3078,7 @@
               <val type="string" value="Number of Analogue Inputs" />
             </entry>
           </item>
-          <item type="dict" id="47136304" >
+          <item type="dict" id="1111034300" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -3176,7 +3114,7 @@
   </entry>
   <entry>
     <key type="numeric" value="24672" />
-    <val type="dict" id="46790576" >
+    <val type="dict" id="1111038668" >
       <entry>
         <key type="string" value="incr" />
         <val type="numeric" value="1" />
@@ -3191,8 +3129,8 @@
       </entry>
       <entry>
         <key type="string" value="values" />
-        <val type="list" id="46502184" >
-          <item type="dict" id="46790864" >
+        <val type="list" id="1111005612" >
+          <item type="dict" id="1111039756" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -3210,7 +3148,7 @@
               <val type="string" value="Number of Input 1 bit" />
             </entry>
           </item>
-          <item type="dict" id="46791200" >
+          <item type="dict" id="1111040180" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -3246,15 +3184,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25094" />
-    <val type="dict" id="46840960" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44121552" >
-          <item type="dict" id="46841248" >
+    <val type="dict" id="1111033756" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005228" >
+          <item type="dict" id="1111034844" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -3272,7 +3210,7 @@
               <val type="string" value="Number of Output 8 Bit" />
             </entry>
           </item>
-          <item type="dict" id="46841536" >
+          <item type="dict" id="1111035116" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -3307,16 +3245,78 @@
     </val>
   </entry>
   <entry>
+    <key type="numeric" value="25680" />
+    <val type="dict" id="1111037852" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005740" >
+          <item type="dict" id="1111040316" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Analogue Outputs" />
+            </entry>
+          </item>
+          <item type="dict" id="1111040588" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="rw" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="True" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="7" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Analogue Output %d[(sub)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Analogue Output SI Unit" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
     <key type="numeric" value="25634" />
-    <val type="dict" id="46840048" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46503336" >
-          <item type="dict" id="46840336" >
+    <val type="dict" id="1111033348" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004396" >
+          <item type="dict" id="1111034436" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -3334,7 +3334,7 @@
               <val type="string" value="Number of Interrupt Source Bank" />
             </entry>
           </item>
-          <item type="dict" id="46840624" >
+          <item type="dict" id="1111034708" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -3370,15 +3370,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25384" />
-    <val type="dict" id="46908320" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44207856" >
-          <item type="dict" id="46908608" >
+    <val type="dict" id="1111042492" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005772" >
+          <item type="dict" id="1111043580" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -3396,7 +3396,7 @@
               <val type="string" value="Number of Output 32 Bit" />
             </entry>
           </item>
-          <item type="dict" id="46908896" >
+          <item type="dict" id="1111043852" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -3431,234 +3431,8 @@
     </val>
   </entry>
   <entry>
-    <key type="numeric" value="25680" />
-    <val type="dict" id="46780352" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46513976" >
-          <item type="dict" id="46780640" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Analogue Outputs" />
-            </entry>
-          </item>
-          <item type="dict" id="46780928" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="rw" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="True" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="7" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Analogue Output %d[(sub)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Analogue Output SI Unit" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25350" />
-    <val type="dict" id="47248496" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46505568" >
-          <item type="dict" id="47240992" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Output 16 Bit" />
-            </entry>
-          </item>
-          <item type="dict" id="47241280" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="rw" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="True" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="6" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Error Mode Outputs 0x%X to 0x%X[(sub*16-15,sub*16)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Error Mode Outputs 16 Bit" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25635" />
-    <val type="dict" id="46782128" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46495432" >
-          <item type="dict" id="46782416" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="rw" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="True" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="1" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Analogue Input Global Interrupt Enable" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Analogue Input Global Interrupt Enable" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="1" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="24870" />
-    <val type="dict" id="46918496" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46495792" >
-          <item type="dict" id="46906736" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Input 32 bit" />
-            </entry>
-          </item>
-          <item type="dict" id="46907072" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="rw" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="True" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="7" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Interrupt Any Change Input 0x%X to 0x%X[(sub*32-31,sub*32)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Interrupt Mask Input Any Change 32 Bit" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25120" />
-    <val type="dict" id="46783664" >
+    <key type="numeric" value="24656" />
+    <val type="dict" id="1111029116" >
       <entry>
         <key type="string" value="incr" />
         <val type="numeric" value="1" />
@@ -3673,26 +3447,26 @@
       </entry>
       <entry>
         <key type="string" value="values" />
-        <val type="list" id="46502328" >
-          <item type="dict" id="46783952" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Output 1 Bit" />
-            </entry>
-          </item>
-          <item type="dict" id="46413408" >
+        <val type="list" id="1111004844" >
+          <item type="dict" id="1111030612" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Input 1 bit" />
+            </entry>
+          </item>
+          <item type="dict" id="1111030884" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -3707,7 +3481,7 @@
             </entry>
             <entry>
               <key type="string" value="name" />
-              <val type="string" value="Write Outputs 0x%X[((idx-1)*128+sub)]" />
+              <val type="string" value="Interrupt Mask Any Change Input bit 0x%X[((idx-1)*128+sub)]" />
             </entry>
             <entry>
               <key type="string" value="nbmax" />
@@ -3722,83 +3496,21 @@
       </entry>
       <entry>
         <key type="string" value="name" />
-        <val type="string" value="Write Outputs Bit %d to %d[(idx*128-127,idx*128)]" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25600" />
-    <val type="dict" id="46414480" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44208000" >
-          <item type="dict" id="46414768" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Analogue Input 8 Bit" />
-            </entry>
-          </item>
-          <item type="dict" id="46415104" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="True" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="2" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Analogue Input %d[(sub)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Read Analogue Input 8 Bit" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25346" />
-    <val type="dict" id="46417088" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46511744" >
-          <item type="dict" id="46788128" >
+        <val type="string" value="Interrupt Mask Input Any Change Bit 0x%X to 0x%X[(idx*128-127,idx*128)]" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25350" />
+    <val type="dict" id="1111027332" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004684" >
+          <item type="dict" id="1111028572" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -3816,7 +3528,7 @@
               <val type="string" value="Number of Output 16 Bit" />
             </entry>
           </item>
-          <item type="dict" id="46788464" >
+          <item type="dict" id="1111028844" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -3831,152 +3543,130 @@
             </entry>
             <entry>
               <key type="string" value="name" />
-              <val type="string" value="Change Polarity Outputs 0x%X to 0x%X[(sub*16-15,sub*16)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Change Polarity Outputs 16 Bit" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25670" />
-    <val type="dict" id="46788800" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46502040" >
-          <item type="dict" id="46789088" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Analogue Outputs" />
-            </entry>
-          </item>
-          <item type="dict" id="46789376" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="rw" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="True" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="4" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Analogue Output %d[(sub)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Analogue Output Offset Integer" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25376" />
-    <val type="dict" id="46789712" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46497736" >
-          <item type="dict" id="46790000" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Output 32 Bit" />
-            </entry>
-          </item>
-          <item type="dict" id="46790288" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="rw" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="True" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="7" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Write Outputs 0x%X to 0x%X[(sub*32-31,sub*32)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Write Output 32 Bit" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25184" />
-    <val type="dict" id="46415440" >
+              <val type="string" value="Error Mode Outputs 0x%X to 0x%X[(sub*16-15,sub*16)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Error Mode Outputs 16 Bit" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25635" />
+    <val type="dict" id="1111034980" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005356" >
+          <item type="dict" id="1111036628" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="rw" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="True" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="1" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Analogue Input Global Interrupt Enable" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Analogue Input Global Interrupt Enable" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="1" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25351" />
+    <val type="dict" id="1111042084" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005836" >
+          <item type="dict" id="1111043172" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Output 16 Bit" />
+            </entry>
+          </item>
+          <item type="dict" id="1111043444" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="rw" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="True" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="6" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Error Value Outputs 0x%X to 0x%X[(sub*16-15,sub*16)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Error Value Outputs 16 Bit" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25120" />
+    <val type="dict" id="1111037172" >
       <entry>
         <key type="string" value="incr" />
         <val type="numeric" value="1" />
@@ -3991,8 +3681,8 @@
       </entry>
       <entry>
         <key type="string" value="values" />
-        <val type="list" id="46511888" >
-          <item type="dict" id="46415728" >
+        <val type="list" id="1111005420" >
+          <item type="dict" id="1111035388" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -4010,7 +3700,7 @@
               <val type="string" value="Number of Output 1 Bit" />
             </entry>
           </item>
-          <item type="dict" id="46416016" >
+          <item type="dict" id="1111037580" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -4025,7 +3715,7 @@
             </entry>
             <entry>
               <key type="string" value="name" />
-              <val type="string" value="Error Value Outputs 0x%X[((idx-1)*128+sub)]" />
+              <val type="string" value="Write Outputs 0x%X[((idx-1)*128+sub)]" />
             </entry>
             <entry>
               <key type="string" value="nbmax" />
@@ -4040,13 +3730,261 @@
       </entry>
       <entry>
         <key type="string" value="name" />
-        <val type="string" value="Error Value Outputs Lines %d to %d[(idx*128-127,idx*128)]" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="24656" />
-    <val type="dict" id="46792272" >
+        <val type="string" value="Write Outputs Bit %d to %d[(idx*128-127,idx*128)]" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25600" />
+    <val type="dict" id="1111037036" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005388" >
+          <item type="dict" id="1111037716" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Analogue Input 8 Bit" />
+            </entry>
+          </item>
+          <item type="dict" id="1111037988" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="True" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="2" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Analogue Input %d[(sub)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Read Analogue Input 8 Bit" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25346" />
+    <val type="dict" id="1111036764" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005452" >
+          <item type="dict" id="1111038532" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Output 16 Bit" />
+            </entry>
+          </item>
+          <item type="dict" id="1111038804" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="rw" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="True" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="6" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Change Polarity Outputs 0x%X to 0x%X[(sub*16-15,sub*16)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Change Polarity Outputs 16 Bit" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25670" />
+    <val type="dict" id="1111037444" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005484" >
+          <item type="dict" id="1111038940" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Analogue Outputs" />
+            </entry>
+          </item>
+          <item type="dict" id="1111039212" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="rw" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="True" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="4" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Analogue Output %d[(sub)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Analogue Output Offset Integer" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25376" />
+    <val type="dict" id="1111038260" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005516" >
+          <item type="dict" id="1111039348" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Output 32 Bit" />
+            </entry>
+          </item>
+          <item type="dict" id="1111039620" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="rw" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="True" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="7" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Write Outputs 0x%X to 0x%X[(sub*32-31,sub*32)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Write Output 32 Bit" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25184" />
+    <val type="dict" id="1111035948" >
       <entry>
         <key type="string" value="incr" />
         <val type="numeric" value="1" />
@@ -4061,26 +3999,26 @@
       </entry>
       <entry>
         <key type="string" value="values" />
-        <val type="list" id="46502832" >
-          <item type="dict" id="46792560" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Input 1 bit" />
-            </entry>
-          </item>
-          <item type="dict" id="46792896" >
+        <val type="list" id="1111003596" >
+          <item type="dict" id="1111038124" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Output 1 Bit" />
+            </entry>
+          </item>
+          <item type="dict" id="1111038396" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -4095,7 +4033,7 @@
             </entry>
             <entry>
               <key type="string" value="name" />
-              <val type="string" value="Interrupt Mask Any Change Input bit 0x%X[((idx-1)*128+sub)]" />
+              <val type="string" value="Error Value Outputs 0x%X[((idx-1)*128+sub)]" />
             </entry>
             <entry>
               <key type="string" value="nbmax" />
@@ -4110,385 +4048,13 @@
       </entry>
       <entry>
         <key type="string" value="name" />
-        <val type="string" value="Interrupt Mask Input Any Change Bit 0x%X to 0x%X[(idx*128-127,idx*128)]" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25602" />
-    <val type="dict" id="46793184" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46497088" >
-          <item type="dict" id="46914224" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Analogue Input 32 Bit" />
-            </entry>
-          </item>
-          <item type="dict" id="46914560" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="True" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="4" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Analogue Input %d[(sub)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Read Analogue Input 32 Bit" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25382" />
-    <val type="dict" id="46914896" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46496872" >
-          <item type="dict" id="46915184" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Output 32 Bit" />
-            </entry>
-          </item>
-          <item type="dict" id="46915472" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="rw" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="True" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="7" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Error Mode Outputs 0x%X to 0x%X[(sub*32-31,sub*32)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Error Mode Outputs 32 Bit" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25649" />
-    <val type="dict" id="46915808" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46496728" >
-          <item type="dict" id="46916096" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Analogue Inputs" />
-            </entry>
-          </item>
-          <item type="dict" id="46916384" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="rw" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="True" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="4" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Analogue Input %d[(sub)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Analogue Input Offset Integer" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25095" />
-    <val type="dict" id="46916720" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46496152" >
-          <item type="dict" id="46917008" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Output 8 Bit" />
-            </entry>
-          </item>
-          <item type="dict" id="46917296" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="rw" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="True" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Error Value Outputs 0x%X to 0x%X[(sub*8-7,sub*8)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Error Value Outputs 8 Bit" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25639" />
-    <val type="dict" id="46402592" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46504632" >
-          <item type="dict" id="46402880" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Analogue Inputs" />
-            </entry>
-          </item>
-          <item type="dict" id="47097376" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="rw" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="True" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="7" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Analogue Input %d[(sub)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Analogue Input Interrupt Negative Delta Unsigned" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25601" />
-    <val type="dict" id="46782704" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46502400" >
-          <item type="dict" id="46782992" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Analogue Input 16 Bit" />
-            </entry>
-          </item>
-          <item type="dict" id="46783328" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="True" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="3" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Analogue Input %d[(sub)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Read Analogue Input 16 Bit" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25200" />
-    <val type="dict" id="47234848" >
+        <val type="string" value="Error Value Outputs Lines %d to %d[(idx*128-127,idx*128)]" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25168" />
+    <val type="dict" id="1111034572" >
       <entry>
         <key type="string" value="incr" />
         <val type="numeric" value="1" />
@@ -4503,8 +4069,8 @@
       </entry>
       <entry>
         <key type="string" value="values" />
-        <val type="list" id="46502760" >
-          <item type="dict" id="47235136" >
+        <val type="list" id="1111005292" >
+          <item type="dict" id="1111035660" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -4522,7 +4088,7 @@
               <val type="string" value="Number of Output 1 Bit" />
             </entry>
           </item>
-          <item type="dict" id="47325760" >
+          <item type="dict" id="1111036084" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -4537,7 +4103,7 @@
             </entry>
             <entry>
               <key type="string" value="name" />
-              <val type="string" value="Filter Constant Outputs 0x%X[((idx-1)*128+sub)]" />
+              <val type="string" value="Error Mode Outputs 0x%X[((idx-1)*128+sub)]" />
             </entry>
             <entry>
               <key type="string" value="nbmax" />
@@ -4552,21 +4118,83 @@
       </entry>
       <entry>
         <key type="string" value="name" />
-        <val type="string" value="Filter Constant Outputs Lines %d to %d[(idx*128-127,idx*128)]" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="24872" />
-    <val type="dict" id="47097712" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46504416" >
-          <item type="dict" id="47098000" >
+        <val type="string" value="Error Mode Outputs Lines %d to %d[(idx*128-127,idx*128)]" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25602" />
+    <val type="dict" id="1111039076" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005548" >
+          <item type="dict" id="1111040724" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Analogue Input 32 Bit" />
+            </entry>
+          </item>
+          <item type="dict" id="1111040996" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="True" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="4" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Analogue Input %d[(sub)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Read Analogue Input 32 Bit" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="24870" />
+    <val type="dict" id="1111040044" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005644" >
+          <item type="dict" id="1111041132" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -4584,7 +4212,7 @@
               <val type="string" value="Number of Input 32 bit" />
             </entry>
           </item>
-          <item type="dict" id="47263264" >
+          <item type="dict" id="1111041404" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -4599,90 +4227,276 @@
             </entry>
             <entry>
               <key type="string" value="name" />
-              <val type="string" value="Interrupt High to Low Input 0x%X to 0x%X[(sub*32-31,sub*32)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Interrupt Mask Input High to Low 32 Bit" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25619" />
-    <val type="dict" id="46909232" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46505424" >
-          <item type="dict" id="46909520" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="ro" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="False" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="5" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Number of Analogue Outputs Float" />
-            </entry>
-          </item>
-          <item type="dict" id="46909808" >
-            <entry>
-              <key type="string" value="access" />
-              <val type="string" value="rw" />
-            </entry>
-            <entry>
-              <key type="string" value="pdo" />
-              <val type="True" value="" />
-            </entry>
-            <entry>
-              <key type="string" value="type" />
-              <val type="numeric" value="8" />
-            </entry>
-            <entry>
-              <key type="string" value="name" />
-              <val type="string" value="Analogue Output %d[(sub)]" />
-            </entry>
-            <entry>
-              <key type="string" value="nbmax" />
-              <val type="numeric" value="254" />
-            </entry>
-          </item>
-        </val>
-      </entry>
-      <entry>
-        <key type="string" value="name" />
-        <val type="string" value="Write Analogue Output Float" />
-      </entry>
-      <entry>
-        <key type="string" value="struct" />
-        <val type="numeric" value="7" />
-      </entry>
-    </val>
-  </entry>
-  <entry>
-    <key type="numeric" value="25168" />
-    <val type="dict" id="46910144" >
+              <val type="string" value="Interrupt Any Change Input 0x%X to 0x%X[(sub*32-31,sub*32)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Interrupt Mask Input Any Change 32 Bit" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25649" />
+    <val type="dict" id="1111040452" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005580" >
+          <item type="dict" id="1111041540" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Analogue Inputs" />
+            </entry>
+          </item>
+          <item type="dict" id="1111041812" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="rw" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="True" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="4" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Analogue Input %d[(sub)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Analogue Input Offset Integer" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25095" />
+    <val type="dict" id="1111040860" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005708" >
+          <item type="dict" id="1111041948" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Output 8 Bit" />
+            </entry>
+          </item>
+          <item type="dict" id="1111042220" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="rw" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="True" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Error Value Outputs 0x%X to 0x%X[(sub*8-7,sub*8)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Error Value Outputs 8 Bit" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25639" />
+    <val type="dict" id="1111028708" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111004812" >
+          <item type="dict" id="1111030204" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Analogue Inputs" />
+            </entry>
+          </item>
+          <item type="dict" id="1111030476" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="rw" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="True" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="7" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Analogue Input %d[(sub)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Analogue Input Interrupt Negative Delta Unsigned" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25601" />
+    <val type="dict" id="1111041676" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005324" >
+          <item type="dict" id="1111042764" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Analogue Input 16 Bit" />
+            </entry>
+          </item>
+          <item type="dict" id="1111043036" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="True" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="3" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Analogue Input %d[(sub)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Read Analogue Input 16 Bit" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25200" />
+    <val type="dict" id="1111027892" >
       <entry>
         <key type="string" value="incr" />
         <val type="numeric" value="1" />
@@ -4697,8 +4511,8 @@
       </entry>
       <entry>
         <key type="string" value="values" />
-        <val type="list" id="44128376" >
-          <item type="dict" id="46910432" >
+        <val type="list" id="1111004716" >
+          <item type="dict" id="1111028980" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -4716,7 +4530,7 @@
               <val type="string" value="Number of Output 1 Bit" />
             </entry>
           </item>
-          <item type="dict" id="46910720" >
+          <item type="dict" id="1111029252" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -4731,7 +4545,7 @@
             </entry>
             <entry>
               <key type="string" value="name" />
-              <val type="string" value="Error Mode Outputs 0x%X[((idx-1)*128+sub)]" />
+              <val type="string" value="Filter Constant Outputs 0x%X[((idx-1)*128+sub)]" />
             </entry>
             <entry>
               <key type="string" value="nbmax" />
@@ -4746,21 +4560,207 @@
       </entry>
       <entry>
         <key type="string" value="name" />
-        <val type="string" value="Error Mode Outputs Lines %d to %d[(idx*128-127,idx*128)]" />
+        <val type="string" value="Filter Constant Outputs Lines %d to %d[(idx*128-127,idx*128)]" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="24872" />
+    <val type="dict" id="1111036900" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005260" >
+          <item type="dict" id="1111037308" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Input 32 bit" />
+            </entry>
+          </item>
+          <item type="dict" id="1111030748" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="rw" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="True" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="7" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Interrupt High to Low Input 0x%X to 0x%X[(sub*32-31,sub*32)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Interrupt Mask Input High to Low 32 Bit" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25619" />
+    <val type="dict" id="1111042900" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005932" >
+          <item type="dict" id="1111052332" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Analogue Outputs Float" />
+            </entry>
+          </item>
+          <item type="dict" id="1111052604" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="rw" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="True" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="8" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Analogue Output %d[(sub)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Write Analogue Output Float" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
+      </entry>
+    </val>
+  </entry>
+  <entry>
+    <key type="numeric" value="25382" />
+    <val type="dict" id="1111043308" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005676" >
+          <item type="dict" id="1111052740" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="ro" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="False" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="5" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Number of Output 32 Bit" />
+            </entry>
+          </item>
+          <item type="dict" id="1111053012" >
+            <entry>
+              <key type="string" value="access" />
+              <val type="string" value="rw" />
+            </entry>
+            <entry>
+              <key type="string" value="pdo" />
+              <val type="True" value="" />
+            </entry>
+            <entry>
+              <key type="string" value="type" />
+              <val type="numeric" value="7" />
+            </entry>
+            <entry>
+              <key type="string" value="name" />
+              <val type="string" value="Error Mode Outputs 0x%X to 0x%X[(sub*32-31,sub*32)]" />
+            </entry>
+            <entry>
+              <key type="string" value="nbmax" />
+              <val type="numeric" value="254" />
+            </entry>
+          </item>
+        </val>
+      </entry>
+      <entry>
+        <key type="string" value="name" />
+        <val type="string" value="Error Mode Outputs 32 Bit" />
+      </entry>
+      <entry>
+        <key type="string" value="struct" />
+        <val type="numeric" value="7" />
       </entry>
     </val>
   </entry>
   <entry>
     <key type="numeric" value="24839" />
-    <val type="dict" id="46911792" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46496008" >
-          <item type="dict" id="46912080" >
+    <val type="dict" id="1111043716" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005964" >
+          <item type="dict" id="1111053148" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -4778,7 +4778,7 @@
               <val type="string" value="Number of Input 16 bit" />
             </entry>
           </item>
-          <item type="dict" id="46405376" >
+          <item type="dict" id="1111053420" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -4814,15 +4814,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25671" />
-    <val type="dict" id="46405712" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46504776" >
-          <item type="dict" id="46406000" >
+    <val type="dict" id="1111052468" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005804" >
+          <item type="dict" id="1111053556" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -4840,7 +4840,7 @@
               <val type="string" value="Number of Analogue Outputs" />
             </entry>
           </item>
-          <item type="dict" id="46406288" >
+          <item type="dict" id="1111053828" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -4876,15 +4876,15 @@
   </entry>
   <entry>
     <key type="numeric" value="25637" />
-    <val type="dict" id="46406624" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46497304" >
-          <item type="dict" id="46406912" >
+    <val type="dict" id="1111052876" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111006060" >
+          <item type="dict" id="1111053964" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -4902,7 +4902,7 @@
               <val type="string" value="Number of Analogue Inputs" />
             </entry>
           </item>
-          <item type="dict" id="46407200" >
+          <item type="dict" id="1111054236" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -4938,7 +4938,7 @@
   </entry>
   <entry>
     <key type="numeric" value="24688" />
-    <val type="dict" id="46407536" >
+    <val type="dict" id="1111053284" >
       <entry>
         <key type="string" value="incr" />
         <val type="numeric" value="1" />
@@ -4953,8 +4953,8 @@
       </entry>
       <entry>
         <key type="string" value="values" />
-        <val type="list" id="46513472" >
-          <item type="dict" id="46407824" >
+        <val type="list" id="1111006028" >
+          <item type="dict" id="1111054372" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -4972,7 +4972,7 @@
               <val type="string" value="Number of Input 1 bit" />
             </entry>
           </item>
-          <item type="dict" id="46408112" >
+          <item type="dict" id="1111054644" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5007,8 +5007,8 @@
     </val>
   </entry>
 </attr>
-<attr name="Description" type="string"></attr>
-<attr name="Dictionary" type="dict" id="46409184" >
+<attr name="Description" type="string" value="" />
+<attr name="Dictionary" type="dict" id="1111036356" >
   <entry>
     <key type="numeric" value="4096" />
     <val type="numeric" value="301" />
@@ -5063,7 +5063,7 @@
   </entry>
   <entry>
     <key type="numeric" value="5122" />
-    <val type="list" id="46522024" >
+    <val type="list" id="1101093676" >
       <item type="numeric" value="1025" />
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
@@ -5073,7 +5073,7 @@
   </entry>
   <entry>
     <key type="numeric" value="4112" />
-    <val type="list" id="46521016" >
+    <val type="list" id="1101092716" >
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
@@ -5082,7 +5082,7 @@
   </entry>
   <entry>
     <key type="numeric" value="4113" />
-    <val type="list" id="46520944" >
+    <val type="list" id="1111006092" >
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
@@ -5091,7 +5091,7 @@
   </entry>
   <entry>
     <key type="numeric" value="5123" />
-    <val type="list" id="46520872" >
+    <val type="list" id="1111005900" >
       <item type="numeric" value="1154" />
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
@@ -5101,13 +5101,13 @@
   </entry>
   <entry>
     <key type="numeric" value="4118" />
-    <val type="list" id="46520656" >
+    <val type="list" id="1111006156" >
       <item type="numeric" value="132572" />
     </val>
   </entry>
   <entry>
     <key type="numeric" value="4120" />
-    <val type="list" id="46520728" >
+    <val type="list" id="1111006124" >
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
@@ -5116,7 +5116,7 @@
   </entry>
   <entry>
     <key type="numeric" value="4736" />
-    <val type="list" id="46520800" >
+    <val type="list" id="1111006444" >
       <item type="numeric" value="1538" />
       <item type="numeric" value="1410" />
       <item type="numeric" value="2" />
@@ -5128,7 +5128,7 @@
   </entry>
   <entry>
     <key type="numeric" value="7970" />
-    <val type="list" id="46520584" >
+    <val type="list" id="1111006252" >
       <item type="string" value="" />
       <item type="string" value="\x01\x00\x00\x00\x17\x10\x00\x02\x00\x00\x00\xe8\x03" />
     </val>
@@ -5143,7 +5143,7 @@
   </entry>
   <entry>
     <key type="numeric" value="5120" />
-    <val type="list" id="46520512" >
+    <val type="list" id="1111006316" >
       <item type="string" value="{True:self.ID+(base+2)*0x100,False:0}[base&lt;4]" />
       <item type="numeric" value="1" />
       <item type="numeric" value="0" />
@@ -5153,7 +5153,7 @@
   </entry>
   <entry>
     <key type="numeric" value="5632" />
-    <val type="list" id="46520440" >
+    <val type="list" id="1111006412" >
       <item type="numeric" value="536870913" />
       <item type="numeric" value="536936449" />
       <item type="numeric" value="537001985" />
@@ -5172,7 +5172,7 @@
   </entry>
   <entry>
     <key type="numeric" value="5121" />
-    <val type="list" id="46520368" >
+    <val type="list" id="1111003532" >
       <item type="string" value="{True:self.ID+(base+2)*0x100,False:0}[base&lt;4]" />
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
@@ -5182,27 +5182,27 @@
   </entry>
   <entry>
     <key type="numeric" value="5633" />
-    <val type="list" id="46520296" >
+    <val type="list" id="1111006348" >
       <item type="numeric" value="537526288" />
     </val>
   </entry>
   <entry>
     <key type="numeric" value="5635" />
-    <val type="list" id="46520224" >
+    <val type="list" id="1111006508" >
       <item type="numeric" value="537657360" />
     </val>
   </entry>
   <entry>
     <key type="numeric" value="5634" />
-    <val type="list" id="46520008" >
+    <val type="list" id="1111006284" >
       <item type="numeric" value="537591824" />
     </val>
   </entry>
 </attr>
-<attr name="SpecificMenu" type="list" id="46520080" >
-  <item type="tuple" id="42137936" >
+<attr name="SpecificMenu" type="list" id="1101093388" >
+  <item type="tuple" id="1111003660" >
     <item type="string" value="Read Input Bit" />
-    <item type="list" id="46519936" >
+    <item type="list" id="1111006188" >
       <item type="numeric" value="24608" />
       <item type="numeric" value="24624" />
       <item type="numeric" value="24632" />
@@ -5211,9 +5211,9 @@
       <item type="numeric" value="24688" />
     </item>
   </item>
-  <item type="tuple" id="42135992" >
+  <item type="tuple" id="1111003948" >
     <item type="string" value="Write Output Bit" />
-    <item type="list" id="46520152" >
+    <item type="list" id="1111006476" >
       <item type="numeric" value="25120" />
       <item type="numeric" value="25152" />
       <item type="numeric" value="25168" />
@@ -5222,20 +5222,20 @@
     </item>
   </item>
 </attr>
-<attr name="ParamsDictionary" type="dict" id="45635056" >
+<attr name="ParamsDictionary" type="dict" id="1111171116" >
 </attr>
-<attr name="UserMapping" type="dict" id="46409840" >
+<attr name="UserMapping" type="dict" id="1111054100" >
   <entry>
     <key type="numeric" value="8192" />
-    <val type="dict" id="46410128" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46519864" >
-          <item type="dict" id="46410416" >
+    <val type="dict" id="1111053692" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111006732" >
+          <item type="dict" id="1111055596" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5267,15 +5267,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8193" />
-    <val type="dict" id="46410752" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46519792" >
-          <item type="dict" id="46411040" >
+    <val type="dict" id="1111039484" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005868" >
+          <item type="dict" id="1111055324" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5307,15 +5307,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8194" />
-    <val type="dict" id="46411328" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46519648" >
-          <item type="dict" id="47330224" >
+    <val type="dict" id="1111055052" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111006828" >
+          <item type="dict" id="1111054508" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5347,15 +5347,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8195" />
-    <val type="dict" id="47330560" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46519720" >
-          <item type="dict" id="47330848" >
+    <val type="dict" id="1111055868" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111005996" >
+          <item type="dict" id="1111055732" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5387,15 +5387,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8196" />
-    <val type="dict" id="47331184" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46519576" >
-          <item type="dict" id="47331472" >
+    <val type="dict" id="1111056140" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111006636" >
+          <item type="dict" id="1111056004" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5427,15 +5427,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8197" />
-    <val type="dict" id="47331936" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46519360" >
-          <item type="dict" id="47332224" >
+    <val type="dict" id="1111056564" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111006860" >
+          <item type="dict" id="1111056428" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5467,15 +5467,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8198" />
-    <val type="dict" id="47333472" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46519504" >
-          <item type="dict" id="47333760" >
+    <val type="dict" id="1111056836" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111006796" >
+          <item type="dict" id="1111056700" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5507,15 +5507,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8199" />
-    <val type="dict" id="46767408" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46519072" >
-          <item type="dict" id="46767696" >
+    <val type="dict" id="1111057108" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111007180" >
+          <item type="dict" id="1111056972" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5547,15 +5547,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8200" />
-    <val type="dict" id="46768160" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46519000" >
-          <item type="dict" id="46768448" >
+    <val type="dict" id="1111057380" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111007020" >
+          <item type="dict" id="1111057244" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5587,15 +5587,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8201" />
-    <val type="dict" id="46768912" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46518856" >
-          <item type="dict" id="46769200" >
+    <val type="dict" id="1111057652" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111006956" >
+          <item type="dict" id="1111057516" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5627,15 +5627,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8202" />
-    <val type="dict" id="46769664" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46518496" >
-          <item type="dict" id="46769952" >
+    <val type="dict" id="1111057924" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111006988" >
+          <item type="dict" id="1111057788" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5667,15 +5667,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8203" />
-    <val type="dict" id="46770416" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46518640" >
-          <item type="dict" id="46770704" >
+    <val type="dict" id="1111058196" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111007116" >
+          <item type="dict" id="1111058060" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5707,15 +5707,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8204" />
-    <val type="dict" id="46771104" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46518352" >
-          <item type="dict" id="46771392" >
+    <val type="dict" id="1111058468" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111060524" >
+          <item type="dict" id="1111058332" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5746,18 +5746,18 @@
     </val>
   </entry>
 </attr>
-<attr name="DS302" type="dict" id="46772576" >
+<attr name="DS302" type="dict" id="1111058740" >
   <entry>
     <key type="numeric" value="7968" />
-    <val type="dict" id="46772864" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46519216" >
-          <item type="dict" id="46773152" >
+    <val type="dict" id="1111055188" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111060652" >
+          <item type="dict" id="1111059420" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -5775,7 +5775,7 @@
               <val type="string" value="Number of Entries" />
             </entry>
           </item>
-          <item type="dict" id="46773488" >
+          <item type="dict" id="1111059284" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5811,15 +5811,15 @@
   </entry>
   <entry>
     <key type="numeric" value="7969" />
-    <val type="dict" id="46773824" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="46522240" >
-          <item type="dict" id="46774112" >
+    <val type="dict" id="1111058876" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111060620" >
+          <item type="dict" id="1111054916" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -5837,7 +5837,7 @@
               <val type="string" value="Number of Entries" />
             </entry>
           </item>
-          <item type="dict" id="46774400" >
+          <item type="dict" id="1111059692" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -5873,15 +5873,15 @@
   </entry>
   <entry>
     <key type="numeric" value="7970" />
-    <val type="dict" id="46774736" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44204832" >
-          <item type="dict" id="46775024" >
+    <val type="dict" id="1111055460" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111060684" >
+          <item type="dict" id="1111059828" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="ro" />
@@ -5899,7 +5899,7 @@
               <val type="string" value="Number of Entries" />
             </entry>
           </item>
-          <item type="dict" id="46775312" >
+          <item type="dict" id="1111060100" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
--- a/examples/TestMasterSlave/TestMasterSlave.c	Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/TestMasterSlave.c	Wed Sep 26 16:02:00 2007 +0200
@@ -193,7 +193,8 @@
 		TestSlave_Data.stopped = TestSlave_stopped;
 		TestSlave_Data.post_sync = TestSlave_post_sync;
 		TestSlave_Data.post_TPDO = TestSlave_post_TPDO;
-		TestSlave_Data.storeODSubIndex = TestSlave_storeODSubIndex;		
+		TestSlave_Data.storeODSubIndex = TestSlave_storeODSubIndex;
+		TestSlave_Data.post_emcy = TestSlave_post_emcy;
 
 		if(!canOpen(&SlaveBoard,&TestSlave_Data)){
 			eprintf("Cannot open Slave Board (%s,%s)\n",SlaveBoard.busname, SlaveBoard.baudrate);
@@ -209,6 +210,7 @@
 		TestMaster_Data.stopped = TestMaster_stopped;
 		TestMaster_Data.post_sync = TestMaster_post_sync;
 		TestMaster_Data.post_TPDO = TestMaster_post_TPDO;
+		TestMaster_Data.post_emcy = TestMaster_post_emcy;
 		
 		if(!canOpen(&MasterBoard,&TestMaster_Data)){
 			eprintf("Cannot open Master Board (%s,%s)\n",MasterBoard.busname, MasterBoard.baudrate);
--- a/examples/TestMasterSlave/TestSlave.c	Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/TestSlave.c	Wed Sep 26 16:02:00 2007 +0200
@@ -66,6 +66,44 @@
                        { RO, uint8, sizeof (UNS8), (void*)&TestSlave_obj1001 }
                      };
 
+/* index 0x1003 :   Pre-defined Error Field. */
+                    UNS8 TestSlave_highestSubIndex_obj1003 = 8; /* number of subindex - 1*/
+                    UNS32 TestSlave_obj1003[] = 
+                    {
+                      0x0,	/* 0 */
+                      0x0,	/* 0 */
+                      0x0,	/* 0 */
+                      0x0,	/* 0 */
+                      0x0,	/* 0 */
+                      0x0,	/* 0 */
+                      0x0,	/* 0 */
+                      0x0	/* 0 */
+                    };
+                    ODCallback_t TestSlave_Index1003_callbacks[] = 
+                     {
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                       NULL,
+                     };
+                    subindex TestSlave_Index1003[] = 
+                     {
+                       { RW, uint8, sizeof (UNS8), (void*)&TestSlave_highestSubIndex_obj1003 },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[0] },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[1] },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[2] },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[3] },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[4] },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[5] },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[6] },
+                       { RO, uint32, sizeof (UNS32), (void*)&TestSlave_obj1003[7] }
+                     };
+
 /* index 0x1005 :   SYNC COB ID. */
                     UNS32 TestSlave_obj1005 = 0x80;	/* 128 */
                     ODCallback_t TestSlave_Index1005_callbacks[] = 
@@ -465,6 +503,7 @@
 {
   { (subindex*)TestSlave_Index1000,sizeof(TestSlave_Index1000)/sizeof(TestSlave_Index1000[0]), 0x1000},
   { (subindex*)TestSlave_Index1001,sizeof(TestSlave_Index1001)/sizeof(TestSlave_Index1001[0]), 0x1001},
+  { (subindex*)TestSlave_Index1003,sizeof(TestSlave_Index1003)/sizeof(TestSlave_Index1003[0]), 0x1003},
   { (subindex*)TestSlave_Index1005,sizeof(TestSlave_Index1005)/sizeof(TestSlave_Index1005[0]), 0x1005},
   { (subindex*)TestSlave_Index1006,sizeof(TestSlave_Index1006)/sizeof(TestSlave_Index1006[0]), 0x1006},
   { (subindex*)TestSlave_Index1010,sizeof(TestSlave_Index1010)/sizeof(TestSlave_Index1010[0]), 0x1010},
@@ -504,36 +543,37 @@
 	switch(wIndex){
 		case 0x1000: i = 0;break;
 		case 0x1001: i = 1;break;
-		case 0x1005: i = 2;*callbacks = TestSlave_Index1005_callbacks; break;
-		case 0x1006: i = 3;*callbacks = TestSlave_Index1006_callbacks; break;
-		case 0x1010: i = 4;*callbacks = TestSlave_Index1010_callbacks; break;
-		case 0x1011: i = 5;*callbacks = TestSlave_Index1011_callbacks; break;
-		case 0x1017: i = 6;*callbacks = TestSlave_Index1017_callbacks; break;
-		case 0x1018: i = 7;break;
-		case 0x1200: i = 8;break;
-		case 0x1800: i = 9;*callbacks = TestSlave_Index1800_callbacks; break;
-		case 0x1801: i = 10;*callbacks = TestSlave_Index1801_callbacks; break;
-		case 0x1802: i = 11;*callbacks = TestSlave_Index1802_callbacks; break;
-		case 0x1803: i = 12;*callbacks = TestSlave_Index1803_callbacks; break;
-		case 0x1804: i = 13;*callbacks = TestSlave_Index1804_callbacks; break;
-		case 0x1A00: i = 14;break;
-		case 0x1A01: i = 15;break;
-		case 0x1A02: i = 16;break;
-		case 0x1A03: i = 17;break;
-		case 0x1A04: i = 18;break;
-		case 0x2000: i = 19;break;
-		case 0x2001: i = 20;break;
-		case 0x2002: i = 21;break;
-		case 0x2003: i = 22;break;
-		case 0x2004: i = 23;break;
-		case 0x2005: i = 24;break;
-		case 0x2006: i = 25;break;
-		case 0x2007: i = 26;break;
-		case 0x2008: i = 27;break;
-		case 0x2009: i = 28;break;
-		case 0x200A: i = 29;break;
-		case 0x200B: i = 30;break;
-		case 0x200C: i = 31;break;
+		case 0x1003: i = 2;*callbacks = TestSlave_Index1003_callbacks; break;
+		case 0x1005: i = 3;*callbacks = TestSlave_Index1005_callbacks; break;
+		case 0x1006: i = 4;*callbacks = TestSlave_Index1006_callbacks; break;
+		case 0x1010: i = 5;*callbacks = TestSlave_Index1010_callbacks; break;
+		case 0x1011: i = 6;*callbacks = TestSlave_Index1011_callbacks; break;
+		case 0x1017: i = 7;*callbacks = TestSlave_Index1017_callbacks; break;
+		case 0x1018: i = 8;break;
+		case 0x1200: i = 9;break;
+		case 0x1800: i = 10;*callbacks = TestSlave_Index1800_callbacks; break;
+		case 0x1801: i = 11;*callbacks = TestSlave_Index1801_callbacks; break;
+		case 0x1802: i = 12;*callbacks = TestSlave_Index1802_callbacks; break;
+		case 0x1803: i = 13;*callbacks = TestSlave_Index1803_callbacks; break;
+		case 0x1804: i = 14;*callbacks = TestSlave_Index1804_callbacks; break;
+		case 0x1A00: i = 15;break;
+		case 0x1A01: i = 16;break;
+		case 0x1A02: i = 17;break;
+		case 0x1A03: i = 18;break;
+		case 0x1A04: i = 19;break;
+		case 0x2000: i = 20;break;
+		case 0x2001: i = 21;break;
+		case 0x2002: i = 22;break;
+		case 0x2003: i = 23;break;
+		case 0x2004: i = 24;break;
+		case 0x2005: i = 25;break;
+		case 0x2006: i = 26;break;
+		case 0x2007: i = 27;break;
+		case 0x2008: i = 28;break;
+		case 0x2009: i = 29;break;
+		case 0x200A: i = 30;break;
+		case 0x200B: i = 31;break;
+		case 0x200C: i = 32;break;
 		default:
 			*errorCode = OD_NO_SUCH_OBJECT;
 			return NULL;
@@ -550,21 +590,21 @@
 s_PDO_status TestSlave_PDO_status[5] = {s_PDO_staus_Initializer,s_PDO_staus_Initializer,s_PDO_staus_Initializer,s_PDO_staus_Initializer,s_PDO_staus_Initializer};
 
 quick_index TestSlave_firstIndex = {
-  8, /* SDO_SVR */
+  9, /* SDO_SVR */
   0, /* SDO_CLT */
   0, /* PDO_RCV */
   0, /* PDO_RCV_MAP */
-  9, /* PDO_TRS */
-  14 /* PDO_TRS_MAP */
+  10, /* PDO_TRS */
+  15 /* PDO_TRS_MAP */
 };
 
 quick_index TestSlave_lastIndex = {
-  8, /* SDO_SVR */
+  9, /* SDO_SVR */
   0, /* SDO_CLT */
   0, /* PDO_RCV */
   0, /* PDO_RCV_MAP */
-  13, /* PDO_TRS */
-  18 /* PDO_TRS_MAP */
+  14, /* PDO_TRS */
+  19 /* PDO_TRS_MAP */
 };
 
 UNS16 TestSlave_ObjdictSize = sizeof(TestSlave_objdict)/sizeof(TestSlave_objdict[0]); 
--- a/examples/TestMasterSlave/TestSlave.od	Tue Sep 25 15:29:37 2007 +0200
+++ b/examples/TestMasterSlave/TestSlave.od	Wed Sep 26 16:02:00 2007 +0200
@@ -1,10 +1,10 @@
 <?xml version="1.0"?>
 <!DOCTYPE PyObject SYSTEM "PyObjects.dtd">
-<PyObject module="node" class="Node" id="44190968">
-<attr name="Profile" type="dict" id="45532192" >
+<PyObject module="node" class="Node" id="1111185676">
+<attr name="Profile" type="dict" id="1111312828" >
 </attr>
 <attr name="Name" type="string">TestSlave</attr>
-<attr name="Dictionary" type="dict" id="46134672" >
+<attr name="Dictionary" type="dict" id="1111382324" >
   <entry>
     <key type="numeric" value="4096" />
     <val type="numeric" value="301" />
@@ -59,7 +59,7 @@
   </entry>
   <entry>
     <key type="numeric" value="6146" />
-    <val type="list" id="44160208" >
+    <val type="list" id="1111185772" >
       <item type="string" value="{True:self.ID+(base+1)*0x100+0x80,False:0}[base&lt;4]" />
       <item type="numeric" value="255" />
       <item type="numeric" value="5000" />
@@ -69,7 +69,7 @@
   </entry>
   <entry>
     <key type="numeric" value="4112" />
-    <val type="list" id="44204760" >
+    <val type="list" id="1111186764" >
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
@@ -78,7 +78,7 @@
   </entry>
   <entry>
     <key type="numeric" value="4113" />
-    <val type="list" id="44204112" >
+    <val type="list" id="1111185420" >
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
@@ -87,13 +87,13 @@
   </entry>
   <entry>
     <key type="numeric" value="6658" />
-    <val type="list" id="44159992" >
+    <val type="list" id="1111184332" >
       <item type="numeric" value="537591824" />
     </val>
   </entry>
   <entry>
     <key type="numeric" value="6147" />
-    <val type="list" id="44190680" >
+    <val type="list" id="1111186412" >
       <item type="string" value="{True:self.ID+(base+1)*0x100+0x80,False:0}[base&lt;4]" />
       <item type="numeric" value="252" />
       <item type="numeric" value="0" />
@@ -103,7 +103,7 @@
   </entry>
   <entry>
     <key type="numeric" value="4608" />
-    <val type="list" id="44204472" >
+    <val type="list" id="1111185580" >
       <item type="numeric" value="1537" />
       <item type="numeric" value="1409" />
     </val>
@@ -114,7 +114,7 @@
   </entry>
   <entry>
     <key type="numeric" value="4120" />
-    <val type="list" id="44204832" >
+    <val type="list" id="1111377772" >
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
@@ -123,7 +123,7 @@
   </entry>
   <entry>
     <key type="numeric" value="6148" />
-    <val type="list" id="44191688" >
+    <val type="list" id="1111186220" >
       <item type="numeric" value="1025" />
       <item type="numeric" value="253" />
       <item type="numeric" value="0" />
@@ -145,7 +145,7 @@
   </entry>
   <entry>
     <key type="numeric" value="6659" />
-    <val type="list" id="44204976" >
+    <val type="list" id="1111184492" >
       <item type="numeric" value="537657360" />
     </val>
   </entry>
@@ -155,7 +155,7 @@
   </entry>
   <entry>
     <key type="numeric" value="6144" />
-    <val type="list" id="44191616" >
+    <val type="list" id="1111184652" >
       <item type="string" value="{True:self.ID+(base+1)*0x100+0x80,False:0}[base&lt;4]" />
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
@@ -165,13 +165,13 @@
   </entry>
   <entry>
     <key type="numeric" value="6660" />
-    <val type="list" id="44191040" >
+    <val type="list" id="1111184460" >
       <item type="numeric" value="537657360" />
     </val>
   </entry>
   <entry>
     <key type="numeric" value="6656" />
-    <val type="list" id="44205120" >
+    <val type="list" id="1111186860" >
       <item type="numeric" value="536870913" />
       <item type="numeric" value="536936449" />
       <item type="numeric" value="537001985" />
@@ -185,8 +185,21 @@
     </val>
   </entry>
   <entry>
+    <key type="numeric" value="4099" />
+    <val type="list" id="1111186380" >
+      <item type="numeric" value="0" />
+      <item type="numeric" value="0" />
+      <item type="numeric" value="0" />
+      <item type="numeric" value="0" />
+      <item type="numeric" value="0" />
+      <item type="numeric" value="0" />
+      <item type="numeric" value="0" />
+      <item type="numeric" value="0" />
+    </val>
+  </entry>
+  <entry>
     <key type="numeric" value="6145" />
-    <val type="list" id="44205048" >
+    <val type="list" id="1111213196" >
       <item type="string" value="{True:self.ID+(base+1)*0x100+0x80,False:0}[base&lt;4]" />
       <item type="numeric" value="0" />
       <item type="numeric" value="0" />
@@ -196,17 +209,17 @@
   </entry>
   <entry>
     <key type="numeric" value="6657" />
-    <val type="list" id="44204904" >
+    <val type="list" id="1111215276" >
       <item type="numeric" value="537526288" />
     </val>
   </entry>
 </attr>
-<attr name="SpecificMenu" type="list" id="44204688" >
+<attr name="SpecificMenu" type="list" id="1111215180" >
 </attr>
-<attr name="ParamsDictionary" type="dict" id="44502560" >
+<attr name="ParamsDictionary" type="dict" id="1102931324" >
   <entry>
     <key type="numeric" value="8192" />
-    <val type="dict" id="46323360" >
+    <val type="dict" id="1111381644" >
       <entry>
         <key type="string" value="callback" />
         <val type="False" value="" />
@@ -215,10 +228,10 @@
   </entry>
   <entry>
     <key type="numeric" value="6144" />
-    <val type="dict" id="46134064" >
+    <val type="dict" id="1111382460" >
       <entry>
         <key type="numeric" value="2" />
-        <val type="dict" id="45517376" >
+        <val type="dict" id="1111381372" >
           <entry>
             <key type="string" value="save" />
             <val type="True" value="" />
@@ -227,7 +240,7 @@
       </entry>
       <entry>
         <key type="numeric" value="3" />
-        <val type="dict" id="45486528" >
+        <val type="dict" id="1102938428" >
           <entry>
             <key type="string" value="save" />
             <val type="True" value="" />
@@ -238,10 +251,10 @@
   </entry>
   <entry>
     <key type="numeric" value="6146" />
-    <val type="dict" id="45550400" >
+    <val type="dict" id="1111252068" >
       <entry>
         <key type="numeric" value="2" />
-        <val type="dict" id="45424304" >
+        <val type="dict" id="1111381780" >
           <entry>
             <key type="string" value="comment" />
             <val type="string">EVENT</val>
@@ -250,7 +263,7 @@
       </entry>
       <entry>
         <key type="numeric" value="3" />
-        <val type="dict" id="44825120" >
+        <val type="dict" id="1111381916" >
           <entry>
             <key type="string" value="comment" />
             <val type="string">5000*100 µC = 500 ms</val>
@@ -259,7 +272,7 @@
       </entry>
       <entry>
         <key type="numeric" value="4" />
-        <val type="dict" id="45946192" >
+        <val type="dict" id="1111251932" >
           <entry>
             <key type="string" value="comment" />
             <val type="string" value="" />
@@ -268,7 +281,7 @@
       </entry>
       <entry>
         <key type="numeric" value="5" />
-        <val type="dict" id="45558240" >
+        <val type="dict" id="1111381508" >
           <entry>
             <key type="string" value="comment" />
             <val type="string">1000 ms</val>
@@ -279,10 +292,10 @@
   </entry>
   <entry>
     <key type="numeric" value="6147" />
-    <val type="dict" id="45381152" >
+    <val type="dict" id="1111382052" >
       <entry>
         <key type="numeric" value="2" />
-        <val type="dict" id="44869008" >
+        <val type="dict" id="1111382188" >
           <entry>
             <key type="string" value="comment" />
             <val type="string">RTR_SYNC</val>
@@ -293,10 +306,10 @@
   </entry>
   <entry>
     <key type="numeric" value="6148" />
-    <val type="dict" id="45645664" >
+    <val type="dict" id="1111382596" >
       <entry>
         <key type="numeric" value="2" />
-        <val type="dict" id="45619920" >
+        <val type="dict" id="1111382732" >
           <entry>
             <key type="string" value="comment" />
             <val type="string">RTR</val>
@@ -307,7 +320,7 @@
   </entry>
   <entry>
     <key type="numeric" value="4112" />
-    <val type="dict" id="45559424" >
+    <val type="dict" id="1111382868" >
       <entry>
         <key type="string" value="callback" />
         <val type="True" value="" />
@@ -316,7 +329,7 @@
   </entry>
   <entry>
     <key type="numeric" value="4113" />
-    <val type="dict" id="45758656" >
+    <val type="dict" id="1111383004" >
       <entry>
         <key type="string" value="callback" />
         <val type="True" value="" />
@@ -324,27 +337,36 @@
     </val>
   </entry>
   <entry>
-    <key type="numeric" value="4119" />
-    <val type="dict" id="45945616" >
+    <key type="numeric" value="4099" />
+    <val type="dict" id="1111387644" >
       <entry>
         <key type="string" value="callback" />
         <val type="True" value="" />
       </entry>
     </val>
   </entry>
+  <entry>
+    <key type="numeric" value="4119" />
+    <val type="dict" id="1111383140" >
+      <entry>
+        <key type="string" value="callback" />
+        <val type="True" value="" />
+      </entry>
+    </val>
+  </entry>
 </attr>
-<attr name="UserMapping" type="dict" id="45618240" >
+<attr name="UserMapping" type="dict" id="1111383276" >
   <entry>
     <key type="numeric" value="8192" />
-    <val type="dict" id="46144528" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44204544" >
-          <item type="dict" id="46103712" >
+    <val type="dict" id="1111383412" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111214412" >
+          <item type="dict" id="1111383548" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -376,15 +398,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8193" />
-    <val type="dict" id="45619296" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44204400" >
-          <item type="dict" id="46103424" >
+    <val type="dict" id="1111383684" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111213516" >
+          <item type="dict" id="1111383820" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -416,15 +438,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8194" />
-    <val type="dict" id="46142672" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44204328" >
-          <item type="dict" id="45529040" >
+    <val type="dict" id="1111384108" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111213612" >
+          <item type="dict" id="1111384244" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -456,15 +478,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8195" />
-    <val type="dict" id="45620208" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44204256" >
-          <item type="dict" id="46323648" >
+    <val type="dict" id="1111384380" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111214860" >
+          <item type="dict" id="1111384516" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -496,15 +518,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8196" />
-    <val type="dict" id="46100416" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44204184" >
-          <item type="dict" id="45805232" >
+    <val type="dict" id="1111384652" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111212716" >
+          <item type="dict" id="1111384788" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -536,15 +558,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8197" />
-    <val type="dict" id="46092800" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44191544" >
-          <item type="dict" id="45757584" >
+    <val type="dict" id="1111384924" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111212748" >
+          <item type="dict" id="1111385060" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -576,15 +598,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8198" />
-    <val type="dict" id="46132560" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44191472" >
-          <item type="dict" id="45619008" >
+    <val type="dict" id="1111385196" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111305356" >
+          <item type="dict" id="1111385332" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -616,15 +638,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8199" />
-    <val type="dict" id="46093776" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44191400" >
-          <item type="dict" id="46135248" >
+    <val type="dict" id="1111385468" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111303532" >
+          <item type="dict" id="1111385604" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -656,15 +678,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8200" />
-    <val type="dict" id="45524512" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44190896" >
-          <item type="dict" id="46092448" >
+    <val type="dict" id="1111385740" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111306124" >
+          <item type="dict" id="1111385876" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -696,15 +718,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8201" />
-    <val type="dict" id="46139744" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44191112" >
-          <item type="dict" id="46093376" >
+    <val type="dict" id="1111386012" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111302572" >
+          <item type="dict" id="1111386148" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -736,15 +758,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8202" />
-    <val type="dict" id="46140816" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44191328" >
-          <item type="dict" id="46098560" >
+    <val type="dict" id="1111386284" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111305228" >
+          <item type="dict" id="1111386420" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -776,15 +798,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8203" />
-    <val type="dict" id="45438400" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44191256" >
-          <item type="dict" id="43876288" >
+    <val type="dict" id="1111386556" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111304524" >
+          <item type="dict" id="1111386692" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -816,15 +838,15 @@
   </entry>
   <entry>
     <key type="numeric" value="8204" />
-    <val type="dict" id="45591984" >
-      <entry>
-        <key type="string" value="need" />
-        <val type="False" value="" />
-      </entry>
-      <entry>
-        <key type="string" value="values" />
-        <val type="list" id="44128664" >
-          <item type="dict" id="45889536" >
+    <val type="dict" id="1111386828" >
+      <entry>
+        <key type="string" value="need" />
+        <val type="False" value="" />
+      </entry>
+      <entry>
+        <key type="string" value="values" />
+        <val type="list" id="1111305484" >
+          <item type="dict" id="1111386964" >
             <entry>
               <key type="string" value="access" />
               <val type="string" value="rw" />
@@ -855,10 +877,10 @@
     </val>
   </entry>
 </attr>
-<attr name="DS302" type="dict" id="45646224" >
+<attr name="DS302" type="dict" id="1111387100" >
 </attr>
 <attr name="ProfileName" type="string" value="DS-301" />
 <attr name="Type" type="string">slave</attr>
 <attr name="ID" type="numeric" value="2" />
-<attr name="Description" type="string"></attr>
+<attr name="Description" type="string" value="" />
 </PyObject>
--- a/include/data.h	Tue Sep 25 15:29:37 2007 +0200
+++ b/include/data.h	Wed Sep 26 16:02:00 2007 +0200
@@ -43,6 +43,7 @@
 #include "lifegrd.h"
 #include "sync.h"
 #include "nmtMaster.h"
+#include "emcy.h"
 
 /* This structurs contains all necessary information for a CanOpen node */
 struct struct_CO_Data {
@@ -95,6 +96,15 @@
 	UNS8* dcf_cursor;
 	UNS32 dcf_count_targets;
 	
+	/* EMCY */
+	e_errorState error_state;
+	UNS8 error_history_size;
+	UNS8* error_number;
+	UNS32* error_first_element;
+	UNS8* error_register;
+	s_errors error_data[EMCY_MAX_ERRORS];
+	post_emcy_t post_emcy;
+	
 };
 
 #define NMTable_Initializer Unknown_state,
@@ -115,6 +125,13 @@
 		NULL        /* Callback */\
 	  },
 
+#define ERROR_DATA_INITIALIZER \
+	{\
+	0, /* errCode */\
+	0, /* errRegMask */\
+	0 /* active */\
+	},
+
 /* A macro to initialize the data in client app.*/
 /* CO_Data structure */
 #define CANOPEN_NODE_DATA_INITIALIZER(NODE_PREFIX) {\
@@ -174,7 +191,19 @@
 	NODE_PREFIX ## _scanIndexOD,                /* scanIndexOD */\
 	_storeODSubIndex,                /* storeODSubIndex */\
 	NULL,		/*dcf_cursor*/\
-	1		/*dcf_count_targets*/\
+	1,		/*dcf_count_targets*/\
+	\
+	/* EMCY */\
+	Error_free,                      /* error_state */\
+	sizeof(NODE_PREFIX ## _obj1003) / sizeof(NODE_PREFIX ## _obj1003[0]),      /* error_history_size */\
+	& NODE_PREFIX ## _highestSubIndex_obj1003,    /* error_number */\
+	& NODE_PREFIX ## _obj1003[0],    /* error_first_element */\
+	& NODE_PREFIX ## _obj1001,       /* error_register */\
+	/* error_data: structure s_errors */\
+	{\
+	REPEAT_EMCY_MAX_ERRORS_TIMES(ERROR_DATA_INITIALIZER)\
+	},\
+	_post_emcy              /* post_emcy */\
 }
 
 #ifdef __cplusplus
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/include/emcy.h	Wed Sep 26 16:02:00 2007 +0200
@@ -0,0 +1,83 @@
+/*
+This file is part of CanFestival, a library implementing CanOpen Stack. 
+
+Copyright (C): Edouard TISSERANT and Francis DUPIN
+
+See COPYING file for copyrights details.
+
+This library is free software; you can redistribute it and/or
+modify it under the terms of the GNU Lesser General Public
+License as published by the Free Software Foundation; either
+version 2.1 of the License, or (at your option) any later version.
+
+This library is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+Lesser General Public License for more details.
+
+You should have received a copy of the GNU Lesser General Public
+License along with this library; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
+*/
+
+/*!
+** @file   emcy.h
+** @author Luis Jimenez
+** @date   Wed Sep 26 2007
+**
+** @brief Declarations of the functions that manage EMCY (emergency) messages
+**
+**
+*/
+
+#ifndef __emcy_h__
+#define __emcy_h__
+
+
+#include <applicfg.h>
+
+/* The error states 
+ * ----------------- */
+typedef enum enum_errorState {
+  Error_free		= 0x00, 
+  Error_occurred	= 0x01
+} e_errorState;
+
+typedef struct {
+	UNS16 errCode;
+	UNS8 errRegMask;
+	UNS8 active;
+} s_errors;
+
+#include "data.h"
+
+
+typedef void (*post_emcy_t)(UNS8 nodeID, UNS16 errCode, UNS8 errReg);
+void _post_emcy(UNS8 nodeID, UNS16 errCode, UNS8 errReg);
+
+/*************************************************************************
+ * Functions
+ *************************************************************************/
+
+/** Sets a new error with code errCode. Also sets corresponding bits in Error register (1001h)
+ */
+UNS8 EMCY_setError(CO_Data* d, UNS16 errCode, UNS8 errRegMask);
+
+/** Indicates it has recovered from error errCode. Also clears corresponding bits in Error register (1001h)
+ */
+void EMCY_errorRecovered(CO_Data* d, UNS16 errCode);
+
+/** Start EMCY consumer and producer
+ */
+void emergencyInit(CO_Data* d);
+
+/** Stop EMCY producer and consumer 
+ */
+void emergencyStop(CO_Data* d);
+
+/** This function is responsible to process an EMCY canopen-message 
+ *  \param Message The CAN-message which has to be analysed.
+ */
+void proceedEMCY(CO_Data* d, Message* m);
+
+#endif /*__emcy_h__ */
--- a/objdictgen/gen_cfile.py	Tue Sep 25 15:29:37 2007 +0200
+++ b/objdictgen/gen_cfile.py	Wed Sep 26 16:02:00 2007 +0200
@@ -317,6 +317,27 @@
 #                     Declaration of Particular Parameters
 #-------------------------------------------------------------------------------
 
+    if 0x1003 not in communicationlist:
+        entry_infos = Node.GetEntryInfos(0x1003)
+        texts["EntryName"] = entry_infos["name"]
+        indexContents[0x1003] = """\n/* index 0x1003 :   %(EntryName)s */
+                    UNS8 %(NodeName)s_highestSubIndex_obj1003 = 0; /* number of subindex - 1*/
+                    UNS32 %(NodeName)s_obj1003[] = 
+                    {
+                      0x0	/* 0 */
+                    };
+                    ODCallback_t %(NodeName)s_Index1003_callbacks[] = 
+                     {
+                       NULL,
+                       NULL,
+                     };
+                    subindex %(NodeName)s_Index1003[] = 
+                     {
+                       { RW, uint8, sizeof (UNS8), (void*)&%(NodeName)s_highestSubIndex_obj1003 },
+                       { RO, uint32, sizeof (UNS32), (void*)&%(NodeName)s_obj1003[0] }
+                     };
+"""%texts
+
     if 0x1005 not in communicationlist:
         entry_infos = Node.GetEntryInfos(0x1005)
         texts["EntryName"] = entry_infos["name"]
--- a/objdictgen/node.py	Tue Sep 25 15:29:37 2007 +0200
+++ b/objdictgen/node.py	Wed Sep 26 16:02:00 2007 +0200
@@ -104,7 +104,7 @@
                 [{"name" : "Error Register", "type" : 0x05, "access": 'ro', "pdo" : True}]},
     0x1002 : {"name" : "Manufacturer Status Register", "struct" : var, "need" : False,  "values" :
                 [{"name" : "Manufacturer Status Register", "type" : 0x07, "access" : 'ro', "pdo" : True}]},
-    0x1003 : {"name" : "Pre-defined Error Field", "struct" : rec, "need" : False,  "values" :
+    0x1003 : {"name" : "Pre-defined Error Field", "struct" : rec, "need" : False, "callback" : True,  "values" :
                 [{"name" : "Number of Errors", "type" : 0x05, "access" : 'rw', "pdo" : False},
                  {"name" : "Standard Error Field", "type" : 0x07, "access" : 'ro', "pdo" : False, "nbmax" : 0xFE}]},
     0x1005 : {"name" : "SYNC COB ID", "struct" : var, "need" : False, "callback" : True, "values" :
--- a/src/Makefile.in	Tue Sep 25 15:29:37 2007 +0200
+++ b/src/Makefile.in	Wed Sep 26 16:02:00 2007 +0200
@@ -34,7 +34,7 @@
 INCLUDES = -I../include -I../include/$(TARGET) -I../include/$(TIMERS_DRIVER) -I../drivers/$(TARGET)
 
 OBJS = $(TARGET)_objacces.o $(TARGET)_lifegrd.o $(TARGET)_sdo.o\
-	    $(TARGET)_pdo.o $(TARGET)_sync.o $(TARGET)_nmtSlave.o $(TARGET)_nmtMaster.o $(TARGET)_states.o $(TARGET)_timer.o $(TARGET)_dcf.o
+	    $(TARGET)_pdo.o $(TARGET)_sync.o $(TARGET)_nmtSlave.o $(TARGET)_nmtMaster.o $(TARGET)_states.o $(TARGET)_timer.o $(TARGET)_dcf.o $(TARGET)_emcy.o
 
 # # # # Target specific paramters # # # #
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/emcy.c	Wed Sep 26 16:02:00 2007 +0200
@@ -0,0 +1,247 @@
+/*
+  This file is part of CanFestival, a library implementing CanOpen
+  Stack.
+
+  Copyright (C): Edouard TISSERANT and Francis DUPIN
+
+  See COPYING file for copyrights details.
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Lesser General Public
+  License as published by the Free Software Foundation; either
+  version 2.1 of the License, or (at your option) any later version.
+
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  Lesser General Public License for more details.
+
+  You should have received a copy of the GNU Lesser General Public
+  License along with this library; if not, write to the Free Software
+  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307
+  USA
+*/
+
+/*!
+** @file   emcy.c
+** @author Luis Jimenez
+** @date   Wed Sep 26 2007
+**
+** @brief Definitions of the functions that manage EMCY (emergency) messages
+**
+**
+*/
+
+#include <data.h>
+#include "emcy.h"
+#include "canfestival.h"
+
+
+
+UNS32 OnNumberOfErrorsUpdate(CO_Data* d, const indextable * unsused_indextable, UNS8 unsused_bSubindex);
+UNS8 sendEMCY(CO_Data* d, UNS32 cob_id, UNS16 errCode, UNS8 errRegister);
+
+
+/*! This is called when Index 0x1003 is updated.
+**
+**
+** @param d
+** @param unsused_indextable
+** @param unsused_bSubindex
+**
+** @return
+**/
+UNS32 OnNumberOfErrorsUpdate(CO_Data* d, const indextable * unsused_indextable, UNS8 unsused_bSubindex)
+{
+	UNS8 index;
+  // if 0, reset Pre-defined Error Field
+  // else, don't change and give an abort message (eeror code: 0609 0030h)
+	if (*d->error_number == 0)
+		for (index = 0; index < d->error_history_size; ++index)
+			*(d->error_first_element + index) = 0;		/* clear all the fields in Pre-defined Error Field (1003h) */
+	else
+		;// abort message
+  return 0;
+}
+
+/*! start the EMCY mangagement.
+**
+**
+** @param d
+**/
+void emergencyInit(CO_Data* d)
+{
+  RegisterSetODentryCallBack(d, 0x1003, 0x00, &OnNumberOfErrorsUpdate);
+
+  *d->error_number = 0;
+}
+
+/*!
+**
+**
+** @param d
+**/
+void emergencyStop(CO_Data* d)
+{
+  
+}
+
+/*!                                                                                                
+ **                                                                                                 
+ **                                                                                                 
+ ** @param d                                                                                        
+ ** @param cob_id                                                                                   
+ **                                                                                                 
+ ** @return                                                                                         
+ **/  
+UNS8 sendEMCY(CO_Data* d, UNS32 cob_id, UNS16 errCode, UNS8 errRegister)
+{
+	Message m;
+  
+	MSG_WAR(0xA001, "sendEMCY", 0);
+  
+	m.cob_id.w = cob_id ;
+	m.rtr = NOT_A_REQUEST;
+	m.len = 8;
+	m.data[0] = errCode & 0xFF;        /* LSB */
+	m.data[1] = (errCode >> 8) & 0xFF; /* MSB */
+	m.data[2] = errRegister;
+	m.data[3] = 0;		/* Manufacturer specific Error Field still not implemented */
+	m.data[4] = 0;
+	m.data[5] = 0;
+	m.data[6] = 0;
+	m.data[7] = 0;
+  
+	return canSend(d->canHandle,&m);
+}
+
+/*! Sets a new error with code errCode. Also sets corresponding bits in Error register (1001h)
+ **                                                                                                 
+ **  
+ ** @param d
+ ** @param errCode Code of the error                                                                                        
+ ** @param errRegister Bits of Error register (1001h) to be set.
+ ** @return 1 if error, 0 if successful
+ */
+UNS8 EMCY_setError(CO_Data* d, UNS16 errCode, UNS8 errRegMask)
+{
+	UNS8 index;
+	UNS8 errRegister_tmp;
+	
+	for (index = 0; index < EMCY_MAX_ERRORS; ++index)
+	{
+		if (d->error_data[index].errCode == errCode)		/* error already registered */
+		{
+			if (d->error_data[index].active)
+			{
+				MSG_WAR(0xA002, "EMCY message already sent", 0);
+				return 0;
+			} else d->error_data[index].active = 1;		/* set as active error */
+			break;
+		}
+	}
+	
+	if (index == EMCY_MAX_ERRORS)		/* if errCode not already registered */
+		for (index = 0; index < EMCY_MAX_ERRORS; ++index) if (d->error_data[index].active == 0) break;	/* find first inactive error */
+	
+	if (index == EMCY_MAX_ERRORS)		/* error_data full */
+	{
+		MSG_ERR(0xA003, "error_data full", 0);
+		return 1;
+	}
+	
+	d->error_data[index].errCode = errCode;
+	d->error_data[index].errRegMask = 1;
+	d->error_data[index].active = 1;
+	
+	/* set the new state in the error state machine */
+	d->error_state = Error_occurred;
+
+	/* set Error Register (1001h) */
+	for (index = 0, errRegister_tmp = 0; index < EMCY_MAX_ERRORS; ++index)
+		if (d->error_data[index].active == 1) errRegister_tmp |= d->error_data[index].errRegMask;
+	*d->error_register = errRegister_tmp;
+	
+	/* set Pre-defined Error Field (1003h) */
+	for (index = d->error_history_size - 1; index > 0; --index)
+		*(d->error_first_element + index) = *(d->error_first_element + index - 1);
+	*(d->error_first_element) = (UNS32)errCode;
+	if(*d->error_number < d->error_history_size) ++(*d->error_number);
+	
+	/* send EMCY message */
+	if (d->CurrentCommunicationState.csEmergency)
+		return sendEMCY(d, *d->bDeviceNodeId + 0x080, errCode, *d->error_register);
+	else return 1;
+}
+
+/*! Deletes error errCode. Also clears corresponding bits in Error register (1001h)
+ **                                                                                                 
+ **  
+ ** @param d
+ ** @param errCode Code of the error                                                                                        
+ ** @param errRegister Bits of Error register (1001h) to be set.
+ ** @return 1 if error, 0 if successful
+ */
+void EMCY_errorRecovered(CO_Data* d, UNS16 errCode)
+{
+	UNS8 index;
+	UNS8 errRegister_tmp;
+	UNS8 anyActiveError = 0;
+	
+	for (index = 0; index < EMCY_MAX_ERRORS; ++index)
+		if (d->error_data[index].errCode == errCode) break;		/* find the position of the error */
+
+	
+	if ((index != EMCY_MAX_ERRORS) && (d->error_data[index].active == 1))
+	{
+		d->error_data[index].active = 0;
+		
+		/* set Error Register (1001h) and check error state machine */
+		for (index = 0, errRegister_tmp = 0; index < EMCY_MAX_ERRORS; ++index)
+			if (d->error_data[index].active == 1)
+			{
+				anyActiveError = 1;
+				errRegister_tmp |= d->error_data[index].errRegMask;
+			}
+		if(anyActiveError == 0)
+		{
+			d->error_state = Error_free;
+			/* send a EMCY message with code "Error Reset or No Error" */
+			if (d->CurrentCommunicationState.csEmergency)
+				sendEMCY(d, *d->bDeviceNodeId + 0x080, 0x0000, 0x00);
+		}
+		*d->error_register = errRegister_tmp;
+	}
+	else
+		MSG_WAR(0xA004, "recovered error was not active", 0);
+}
+
+/*! This function is responsible to process an EMCY canopen-message.
+ **
+ **
+ ** @param d
+ ** @param m The CAN-message which has to be analysed.
+ **
+ **/
+void proceedEMCY(CO_Data* d, Message* m)
+{
+	UNS8 nodeID;
+	UNS16 errCode;
+	UNS8 errReg;
+	
+	MSG_WAR(0xA005, "EMCY received. Proceed. ", 0);
+  
+	/* Test if the size of the EMCY is ok */
+	if ( m->len != 8) {
+		MSG_ERR(0xA006, "Error size EMCY. CobId  : ", m->cob_id.w);
+		return;
+	}
+	
+	/* post the received EMCY */
+	nodeID = m->cob_id.w & 0x7F;
+	errCode = m->data[0] | ((UNS16)m->data[1] << 8);
+	errReg = m->data[2];
+	(*d->post_emcy)(nodeID, errCode, errReg);
+}
+
+void _post_emcy(UNS8 nodeID, UNS16 errCode, UNS8 errReg){}
--- a/src/states.c	Tue Sep 25 15:29:37 2007 +0200
+++ b/src/states.c	Wed Sep 26 16:02:00 2007 +0200
@@ -33,6 +33,7 @@
 #include "def.h"
 #include "dcf.h"
 #include "nmtSlave.h"
+#include "emcy.h"
 
 /** Prototypes for internals functions */
 /*!                                                                                                
@@ -66,9 +67,14 @@
 {
 	 switch(m->cob_id.w >> 7)
 	{
-		case SYNC:
-			if(d->CurrentCommunicationState.csSYNC)
-				proceedSYNC(d);
+		case SYNC:		/* can be a SYNC or a EMCY message */
+			if(m->cob_id.w == 0x080)	/* SYNC */
+			{
+				if(d->CurrentCommunicationState.csSYNC)
+					proceedSYNC(d);
+			} else 		/* EMCY */
+				if(d->CurrentCommunicationState.csEmergency)
+					proceedEMCY(d,m);
 			break;
 		/* case TIME_STAMP: */
 		case PDO1tx:
@@ -122,7 +128,7 @@
 	StartOrStop(csSDO,	None,		resetSDO(d))
 	StartOrStop(csSYNC,	startSYNC(d),		stopSYNC(d))
 	StartOrStop(csHeartbeat,	heartbeatInit(d),	heartbeatStop(d))
-/*	StartOrStop(Emergency,,) */
+	StartOrStop(csEmergency,	emergencyInit(d),	emergencyStop(d)) 
 	StartOrStop(csPDO,	PDOInit(d),	PDOStop(d))
 	StartOrStop(csBoot_Up,	None,	slaveSendBootUp(d))
 }