20 #define EC_MAXERRORNAME 127 62 {0x00000000,
"No error" },
63 {0x05030000,
"Toggle bit not changed" },
64 {0x05040000,
"SDO protocol timeout" },
65 {0x05040001,
"Client/Server command specifier not valid or unknown" },
66 {0x05040005,
"Out of memory" },
67 {0x06010000,
"Unsupported access to an object" },
68 {0x06010001,
"Attempt to read to a write only object" },
69 {0x06010002,
"Attempt to write to a read only object" },
70 {0x06010003,
"Subindex can not be written, SI0 must be 0 for write access" },
71 {0x06010004,
"SDO Complete access not supported for variable length objects" },
72 {0x06010005,
"Object length exceeds mailbox size" },
73 {0x06010006,
"Object mapped to RxPDO, SDO download blocked" },
74 {0x06020000,
"The object does not exist in the object directory" },
75 {0x06040041,
"The object can not be mapped into the PDO" },
76 {0x06040042,
"The number and length of the objects to be mapped would exceed the PDO length" },
77 {0x06040043,
"General parameter incompatibility reason" },
78 {0x06040047,
"General internal incompatibility in the device" },
79 {0x06060000,
"Access failed due to a hardware error" },
80 {0x06070010,
"Data type does not match, length of service parameter does not match" },
81 {0x06070012,
"Data type does not match, length of service parameter too high" },
82 {0x06070013,
"Data type does not match, length of service parameter too low" },
83 {0x06090011,
"Subindex does not exist" },
84 {0x06090030,
"Value range of parameter exceeded (only for write access)" },
85 {0x06090031,
"Value of parameter written too high" },
86 {0x06090032,
"Value of parameter written too low" },
87 {0x06090036,
"Maximum value is less than minimum value" },
88 {0x08000000,
"General error" },
89 {0x08000020,
"Data cannot be transferred or stored to the application" },
90 {0x08000021,
"Data cannot be transferred or stored to the application because of local control" },
91 {0x08000022,
"Data cannot be transferred or stored to the application because of the present device state" },
92 {0x08000023,
"Object dictionary dynamic generation fails or no object dictionary is present" },
93 {0xffffffff,
"Unknown" }
98 {0x0000 ,
"No error" },
99 {0x0001 ,
"Unspecified error" },
100 {0x0002 ,
"No memory" },
101 {0x0011 ,
"Invalid requested state change" },
102 {0x0012 ,
"Unknown requested state" },
103 {0x0013 ,
"Bootstrap not supported" },
104 {0x0014 ,
"No valid firmware" },
105 {0x0015 ,
"Invalid mailbox configuration" },
106 {0x0016 ,
"Invalid mailbox configuration" },
107 {0x0017 ,
"Invalid sync manager configuration" },
108 {0x0018 ,
"No valid inputs available" },
109 {0x0019 ,
"No valid outputs" },
110 {0x001A ,
"Synchronization error" },
111 {0x001B ,
"Sync manager watchdog" },
112 {0x001C ,
"Invalid sync Manager types" },
113 {0x001D ,
"Invalid output configuration" },
114 {0x001E ,
"Invalid input configuration" },
115 {0x001F ,
"Invalid watchdog configuration" },
116 {0x0020 ,
"Slave needs cold start" },
117 {0x0021 ,
"Slave needs INIT" },
118 {0x0022 ,
"Slave needs PREOP" },
119 {0x0023 ,
"Slave needs SAFEOP" },
120 {0x0024 ,
"Invalid input mapping" },
121 {0x0025 ,
"Invalid output mapping" },
122 {0x0026 ,
"Inconsistent settings" },
123 {0x0027 ,
"Freerun not supported" },
124 {0x0028 ,
"Synchronisation not supported" },
125 {0x0029 ,
"Freerun needs 3buffer mode" },
126 {0x002A ,
"Background watchdog" },
127 {0x002B ,
"No valid Inputs and Outputs" },
128 {0x002C ,
"Fatal sync error" },
129 {0x002D ,
"No sync error" },
130 {0x002E ,
"Invalid input FMMU configuration" },
131 {0x0030 ,
"Invalid DC SYNC configuration" },
132 {0x0031 ,
"Invalid DC latch configuration" },
133 {0x0032 ,
"PLL error" },
134 {0x0033 ,
"DC sync IO error" },
135 {0x0034 ,
"DC sync timeout error" },
136 {0x0035 ,
"DC invalid sync cycle time" },
137 {0x0036 ,
"DC invalid sync0 cycle time" },
138 {0x0037 ,
"DC invalid sync1 cycle time" },
139 {0x0041 ,
"MBX_AOE" },
140 {0x0042 ,
"MBX_EOE" },
141 {0x0043 ,
"MBX_COE" },
142 {0x0044 ,
"MBX_FOE" },
143 {0x0045 ,
"MBX_SOE" },
144 {0x004F ,
"MBX_VOE" },
145 {0x0050 ,
"EEPROM no access" },
146 {0x0051 ,
"EEPROM error" },
147 {0x0060 ,
"Slave restarted locally" },
148 {0x0061 ,
"Device identification value updated" },
149 {0x00f0 ,
"Application controller available" },
150 {0xffff ,
"Unknown" }
155 {0x0000,
"No error" },
157 {0x1009,
"Invalid access to element 1" },
158 {0x2001,
"No Name" },
159 {0x2002,
"Name transmission too short" },
160 {0x2003,
"Name transmission too long" },
161 {0x2004,
"Name cannot be changed (read only)" },
162 {0x2005,
"Name is write-protected at this time" },
163 {0x3002,
"Attribute transmission too short" },
164 {0x3003,
"Attribute transmission too long" },
165 {0x3004,
"Attribute cannot be changed (read only)" },
166 {0x3005,
"Attribute is write-protected at this time" },
167 {0x4001,
"No units" },
168 {0x4002,
"Unit transmission too short" },
169 {0x4003,
"Unit transmission too long" },
170 {0x4004,
"Unit cannot be changed (read only)" },
171 {0x4005,
"Unit is write-protected at this time" },
172 {0x5001,
"No minimum input value" },
173 {0x5002,
"Minimum input value transmission too short" },
174 {0x5003,
"Minimum input value transmission too long" },
175 {0x5004,
"Minimum input value cannot be changed (read only)" },
176 {0x5005,
"Minimum input value is write-protected at this time" },
177 {0x6001,
"No maximum input value" },
178 {0x6002,
"Maximum input value transmission too short" },
179 {0x6003,
"Maximum input value transmission too long" },
180 {0x6004,
"Maximum input value cannot be changed (read only)" },
181 {0x6005,
"Maximum input value is write-protected at this time" },
182 {0x7002,
"Operation data transmission too short" },
183 {0x7003,
"Operation data transmission too long" },
184 {0x7004,
"Operation data cannot be changed (read only)" },
185 {0x7005,
"Operation data is write-protected at this time (state)" },
186 {0x7006,
"Operation data is smaller than the minimum input value" },
187 {0x7007,
"Operation data is smaller than the maximum input value" },
188 {0x7008,
"Invalid operation data:Configured IDN will not be supported" },
189 {0x7009,
"Operation data write protected by a password" },
190 {0x700A,
"Operation data is write protected, it is configured cyclically" },
191 {0x700B,
"Invalid indirect addressing: (e.g., data container, list handling)" },
192 {0x700C,
"Operation data is write protected, due to other settings" },
193 {0x700D,
"Reserved" },
194 {0x7010,
"Procedure command already active" },
195 {0x7011,
"Procedure command not interruptible" },
196 {0x7012,
"Procedure command at this time not executable (state)" },
197 {0x7013,
"Procedure command not executable (invalid or false parameters)" },
198 {0x7014,
"No data state" },
199 {0x8001,
"No default value" },
200 {0x8002,
"Default value transmission too long" },
201 {0x8004,
"Default value cannot be changed, read only" },
202 {0x800A,
"Invalid drive number" },
203 {0x800A,
"General error" },
204 {0x800A,
"No element addressed" },
210 {0x0000,
"No error" },
211 {0x0001,
"Syntax of 6 octet Mailbox Header is wrong" },
212 {0x0002,
"The mailbox protocol is not supported" },
213 {0x0003,
"Channel Field contains wrong value"},
214 {0x0004,
"The service is no supported"},
215 {0x0005,
"Invalid mailbox header"},
216 {0x0006,
"Length of received mailbox data is too short"},
217 {0x0007,
"No more memory in slave"},
218 {0x0008,
"The length of data is inconsistent"},
231 while ( (ec_sdoerrorlist[i].errorcode != 0xffffffffUL) &&
232 (ec_sdoerrorlist[i].errorcode != sdoerrorcode) )
249 while ( (ec_ALstatuscodelist[i].ALstatuscode != 0xffff) &&
250 (ec_ALstatuscodelist[i].ALstatuscode != ALstatuscode) )
267 while ( (ec_soeerrorlist[i].errorcode != 0xffff) &&
268 (ec_soeerrorlist[i].errorcode != errorcode) )
285 while ( (ec_mbxerrorlist[i].errorcode != 0xffff) &&
286 (ec_mbxerrorlist[i].errorcode != errorcode) )
302 sprintf(timestr,
"Time:%12.3f", Ec.
Time.
sec + (Ec.
Time.
usec / 1000000.0) );
307 sprintf(
estring,
"%s SDO slave:%d index:%4.4x.%2.2x error:%8.8x %s\n",
313 sprintf(
estring,
"%s EMERGENCY slave:%d error:%4.4x\n",
319 sprintf(
estring,
"%s PACKET slave:%d index:%4.4x.%2.2x error:%d\n",
325 sprintf(
estring,
"%s SDO slave:%d index:%4.4x.%2.2x error:%8.8x %s\n",
331 sprintf(
estring,
"%s SoE slave:%d IDN:%4.4x error:%4.4x %s\n",
337 sprintf(
estring,
"%s MBX slave:%d error:%4.4x %s\n",
343 sprintf(
estring,
"%s error:%8.8x\n",
char * ec_ALstatuscode2string(uint16 ALstatuscode)
char errordescription[EC_MAXERRORNAME+1]
const ec_sdoerrorlist_t ec_sdoerrorlist[]
char * ec_soeerror2string(uint16 errorcode)
char estring[EC_MAXERRORNAME]
char * ec_elist2string(void)
General typedefs and defines for EtherCAT.
char * ecx_elist2string(ecx_contextt *context)
const ec_soeerrorlist_t ec_soeerrorlist[]
char ALstatuscodedescription[EC_MAXERRORNAME+1]
char * ecx_err2string(const ec_errort Ec)
char errordescription[EC_MAXERRORNAME+1]
Headerfile for ethercatmain.c.
boolean ecx_poperror(ecx_contextt *context, ec_errort *Ec)
const char * ec_sdoerror2string(uint32 sdoerrorcode)
char errordescription[EC_MAXERRORNAME+1]
const ec_ALstatuscodelist_t ec_ALstatuscodelist[]
char * ec_mbxerror2string(uint16 errorcode)
const ec_mbxerrorlist_t ec_mbxerrorlist[]