You are here: Annexes > List of Projects > Hole Punch Project > Drive Fault UDFB

Drive Fault UDFB

(*
PLS UDFB"User Defined Function Block"
UDFB can be used as a sub-function block in another program of the application. It is described using FBD, LD, ST or IL language. Input / output parameters of a UDFB (as well as private variables) are declared in the variable editor as local variables of the UDFB: FAULT output turns TRUE when the selected Axis goes into a Fault State.
            The function block also outputs the total number of faults, and the
            fault number and message for the last 3 drive faults.
Inputs:
   1. EtherCat_ID (DINT) - Ethercat address desired AKD DriveControl device for regulating the speed, torque and position of a motor ex. 1001 or AKD_1
   2. ResetFaultHistory (BOOL) - When input is TRUE, clears all Faults saved to drives history
Outputs:
   1. FAULT (BOOL) - TRUE if selected drive currently has a Fault
   2. NumberFaults (DINT) - Number of faults saved in the Drive's history
   3. FirstFaultNumber (DINT) - Three digit AKD Fault identifier
   4. FirstFaultMessage (STRING) - Description of the Fault
   5. SecondFaultNumber (DINT) - Three digit AKD Fault identifier
   6. SecondFaultMessage (STRING) - Description of the Fault
   7. ThirdFaultNumber (DINT) - Three digit AKD Fault identifier
   8. ThirdFaultMessage (STRING) - Description of the Fault
*)
Status := ECATGetStatus( any_to_dint(EtherCat_ID ));
IF Status.3 THEN //If Drive has a Fault, Set FAULT output to TRUE and check the total number of faults
   FAULT := TRUE;
ELSE //If no fault reported in drive, set FAULT output to False and number of faults to zero
   FAULT := FALSE;
END_IF;
IF Inst_r_trig1( ResetFaultHistory) THEN//Resets the fault history of the drive, sets the number of faults to zero
   Inst_ECATWriteSdo( TRUE, 4099, 0, 1, EtherCATEtherCAT is an open, high-performance Ethernet-based fieldbus system. The development goal of EtherCAT was to apply Ethernet to automation applications which require short data update times (also called cycle times) with low communication jitter (for synchronization purposes) and low hardware costs_ID, 0 ); //Clear fault history
ELSE
   Inst_ECATWriteSdo( FALSE, 4099, 0, 1, EtherCAT_ID, 0 );
END_IF;
ON Inst_ECATWriteSdo.Done DO
   Inst_ECATReadSdo( TRUE, 4099, 0, 1, EtherCAT_ID );//Check the number of faults in the history of the drive
END_DO;
IF Status.3 THEN
   Inst_TON( TRUE, DelayTime );
ELSE
   Inst_TON( FALSE, DelayTime );
END_IF;
IF Inst_r_trig(Inst_TON.Q) THEN
   Inst_ECATReadSdo( TRUE, 4099, 0, 1, EtherCAT_ID );//Check the number of faults in the history of the drive
   Inst_ECATReadSdo1( TRUE, 4099, 1, 4, EtherCAT_ID );
   Inst_ECATReadSdo2( TRUE, 4099, 2, 4, EtherCAT_ID );
   Inst_ECATReadSdo3( TRUE, 4099, 3, 4, EtherCAT_ID );
ELSE
   Inst_ECATReadSdo( FALSE, 4099, 0, 1, EtherCAT_ID );
   Inst_ECATReadSdo1( FALSE, 4099, 0, 1, EtherCAT_ID );
   Inst_ECATReadSdo2( FALSE, 4099, 0, 1, EtherCAT_ID );
   Inst_ECATReadSdo3( FALSE, 4099, 0, 1, EtherCAT_ID );
END_IF;
NumberFaults := Inst_ECATReadSdo.Value;
IF NumberFaults > 0 THEN //If a fault exists, return the CANopen fault number, convert and output 3 digit AKD fault number, and fault description
   IF Inst_ECATReadSdo1.Value <> 0 THEN
      FirstFault := Inst_ECATReadSdo1.Value;
      IF FirstFault = 78096 THEN
         FirstFaultNumber := 523;
         FirstFaultMessage := 'Bus over voltage FPGA"Field-Programmable Gate Array"
FPGA is a semiconductor device that can be configured by the customer or designer after manufacturing; hence the name "field-programmable"';
      ELSIF FirstFault = 78128 THEN
         FirstFaultNumber := 503;
         FirstFaultMessage := 'Bus capacitor overload';
      ELSIF FirstFault = 78352 THEN
         FirstFaultNumber := 501;
         FirstFaultMessage := 'Bus over voltage';
      ELSIF FirstFault = 78368 THEN
         FirstFaultNumber := 502;
         FirstFaultMessage := 'Bus under voltage';
      ELSIF FirstFault = 82448 THEN
         FirstFaultNumber := 234;
         FirstFaultMessage := 'Control temperature sensorA sensor is a type of transducer that converts one type of energy into another for various purposes including measurement or information transfer 1 high';
      ELSIF FirstFault = 82704 THEN
         FirstFaultNumber := 235;
         FirstFaultMessage := 'Power temperature sensor 1, 2, or 3 high';
      ELSIF FirstFault = 86291 THEN
         FirstFaultNumber := 512;
         FirstFaultMessage := '5V0 under voltage';
      ELSIF FirstFault = 86292 THEN
         FirstFaultNumber := 505;
         FirstFaultMessage := '1V2 under voltage';
      ELSIF FirstFault = 86293 THEN
         FirstFaultNumber := 507;
         FirstFaultMessage := '2V5 under voltage';
      ELSIF FirstFault = 86294 THEN
         FirstFaultNumber := 509;
         FirstFaultMessage := '3V3 under voltage';
      ELSIF FirstFault = 86295 THEN
         FirstFaultNumber := 514;
         FirstFaultMessage := '+12V0 under voltage';
      ELSIF FirstFault = 86296 THEN
         FirstFaultNumber := 516;
         FirstFaultMessage := '-12V0 under voltage';
      ELSIF FirstFault = 86297 THEN
         FirstFaultNumber := 518;
         FirstFaultMessage := 'Analog 3V3 under voltage';
      ELSIF FirstFault = 86400 THEN
         FirstFaultNumber := 504;
         FirstFaultMessage := '1V2 over voltage';
      ELSIF FirstFault = 86401 THEN
         FirstFaultNumber := 506;
         FirstFaultMessage := '2V5 over voltage';
      ELSIF FirstFault = 86402 THEN
         FirstFaultNumber := 508;
         FirstFaultMessage := '3V3 over voltage';
      ELSIF FirstFault = 86403 THEN
         FirstFaultNumber := 510;
         FirstFaultMessage := '5V0 over voltage';
      ELSIF FirstFault = 86404 THEN
         FirstFaultNumber := 513;
         FirstFaultMessage := '+12V0 over voltage';
      ELSIF FirstFault = 86405 THEN
         FirstFaultNumber := 104;
         FirstFaultMessage := 'Operational FPGA failed';
      ELSIF FirstFault = 86406 THEN
         FirstFaultNumber := 517;
         FirstFaultMessage := 'Analog 3V3 over voltage';
      ELSIF FirstFault = 87312 THEN
         FirstFaultNumber := 201;
         FirstFaultMessage := 'Internal RAM failed';
      ELSIF FirstFault = 87344 THEN
         FirstFaultNumber := 105;
         FirstFaultMessage := 'NV memory stamp invalid';
      ELSIF FirstFault = 87424 THEN
         FirstFaultNumber := 106;
         FirstFaultMessage := 'NV memory data invalid';
      ELSIF FirstFault = 87425 THEN
         FirstFaultNumber := 202;
         FirstFaultMessage := 'External RAM failed';
      ELSIF FirstFault = 87426 THEN
         FirstFaultNumber := 203;
         FirstFaultMessage := 'Code integrity failed';
      ELSIF FirstFault = 87427 THEN
         FirstFaultNumber := 102;
         FirstFaultMessage := 'Resident firmware failed';
      ELSIF FirstFault = 87428 THEN
         FirstFaultNumber := 103;
         FirstFaultMessage := 'Resident FPGA failed';
      ELSIF FirstFault = 87429 THEN
         FirstFaultNumber := 104;
         FirstFaultMessage := 'Operational FPGA failed';
      ELSIF FirstFault = 94592 THEN
         FirstFaultNumber := 301;
         FirstFaultMessage := 'Motor overheated';
      ELSIF FirstFault = 94594 THEN
         FirstFaultNumber := 305;
         FirstFaultMessage := 'Brake open circuit';
      ELSIF FirstFault = 94595 THEN
         FirstFaultNumber := 306;
         FirstFaultMessage := 'Brake short circuit';
      ELSIF FirstFault = 94596 THEN
         FirstFaultNumber := 307;
         FirstFaultMessage := 'Brake closed during enable state';
      ELSIF FirstFault = 94597 THEN
         FirstFaultNumber := 436;
         FirstFaultMessage := 'Motor EnDat overheat'; //Change Description ??
      ELSIF FirstFault = 94979 THEN
         FirstFaultNumber := 426;
         FirstFaultMessage := 'Resolver error';
      ELSIF FirstFault = 94981 THEN
         FirstFaultNumber := 417;
         FirstFaultMessage := 'Broken wire in primary feedback';
      ELSIF FirstFault = 95104 THEN
         FirstFaultNumber := 402;
         FirstFaultMessage := 'Analog signal amplitude fault';
      ELSIF FirstFault = 95105 THEN
         FirstFaultNumber := 403;
         FirstFaultMessage := 'EnDat communication fault';
      ELSIF FirstFault = 95106 THEN
         FirstFaultNumber := 404;
         FirstFaultMessage := 'Hall error';
      ELSIF FirstFault = 95107 THEN
         FirstFaultNumber := 405;
         FirstFaultMessage := 'BiSS"Bi-directional Serial Synchronous interface"
An open-source communication protocol for feedback devices. With BiSS, all of the computation for interpolation in regard to position occurs on the ASIC directly in the encoder watchdog';
      ELSIF FirstFault = 95108 THEN
         FirstFaultNumber := 406;
         FirstFaultMessage := 'BiSS multi cycle';
      ELSIF FirstFault = 95109 THEN
         FirstFaultNumber := 407;
         FirstFaultMessage := 'BiSS sensor';
      ELSIF FirstFault = 95110 THEN
         FirstFaultNumber := 408;
         FirstFaultMessage := 'SFDSmart Feedback Device configuration';
      ELSIF FirstFault = 95111 THEN
         FirstFaultNumber := 409;
         FirstFaultMessage := 'SFD UART overrun';
      ELSIF FirstFault = 95112 THEN
         FirstFaultNumber := 410;
         FirstFaultMessage := 'SFD UART frame';
      ELSIF FirstFault = 95113 THEN
         FirstFaultNumber := 412;
         FirstFaultMessage := 'SFD UART parity';
      ELSIF FirstFault = 95114 THEN
         FirstFaultNumber := 413;
         FirstFaultMessage := 'SFD transfer timeout';
      ELSIF FirstFault = 95116 THEN
         FirstFaultNumber := 415;
         FirstFaultMessage := 'SFD multiple corrupt position';
      ELSIF FirstFault = 95117 THEN
         FirstFaultNumber := 416;
         FirstFaultMessage := 'SFD Transfer incomplete';
      ELSIF FirstFault = 95118 THEN
         FirstFaultNumber := 418;
         FirstFaultMessage := 'Primary feedback power supply';
      ELSIF FirstFault = 95119 THEN
         FirstFaultNumber := 401;
         FirstFaultMessage := 'Failed to set feedback type';
      ELSIF FirstFault = 95136 THEN
         FirstFaultNumber := 424;
         FirstFaultMessage := 'Resolver amplitude low';
      ELSIF FirstFault = 95137 THEN
         FirstFaultNumber := 425;
         FirstFaultMessage := 'Resolver amplitude high';
      ELSIF FirstFault = 95138 THEN
         FirstFaultNumber := 425;
         FirstFaultMessage := 'Resolver amplitude high';
      ELSIF FirstFault = 95139 THEN
         FirstFaultNumber := 427;
         FirstFaultMessage := 'Analog low';
      ELSIF FirstFault = 95140 THEN
         FirstFaultNumber := 428;
         FirstFaultMessage := 'Analog high';
      ELSIF FirstFault = 95141 THEN
         FirstFaultNumber := 429;
         FirstFaultMessage := 'Incremental low';
      ELSIF FirstFault = 95142 THEN
         FirstFaultNumber := 430;
         FirstFaultMessage := 'Incremental high';
      ELSIF FirstFault = 95143 THEN
         FirstFaultNumber := 431;
         FirstFaultMessage := 'Secondary feedback Hall error';
      ELSIF FirstFault = 95144 THEN
         FirstFaultNumber := 432;
         FirstFaultMessage := 'Communication fault: Secondary Feedback';
      ELSIF FirstFault = 95145 THEN
         FirstFaultNumber := 999;
         FirstFaultMessage := 'Reserved';
      ELSIF FirstFault = 95146 THEN
         FirstFaultNumber := 999;
         FirstFaultMessage := 'Reserved';
      ELSIF FirstFault = 98608 THEN
         FirstFaultNumber := 129;
         FirstFaultMessage := 'Heartbeat lost';
      ELSIF FirstFault = 99089 THEN
         FirstFaultNumber := 304;
         FirstFaultMessage := 'Motor foldback';
      ELSIF FirstFault = 99121 THEN
         FirstFaultNumber := 524;
         FirstFaultMessage := 'Drive foldback';
      ELSIF FirstFault = 99456 THEN
         FirstFaultNumber := 302;
         FirstFaultMessage := 'Over speed';
      ELSIF FirstFault = 99712 THEN
         FirstFaultNumber := 107;
         FirstFaultMessage := 'Clockwise limit switch exceeded';
      ELSIF FirstFault = 99713 THEN
         FirstFaultNumber := 108;
         FirstFaultMessage := 'Counterclockwise limit switch exceeded';
      ELSIF FirstFault = 99857 THEN
         FirstFaultNumber := 439;
         FirstFaultMessage := 'Following error (user)';
      ELSIF FirstFault = 100224 THEN
         FirstFaultNumber := 125;
         FirstFaultMessage := 'FieldbusA Fieldbus is an industrial network system for real-time distributed control (e.g. CAN or Profibus). It is a way of connecting instruments in a plant design synchronization lost';
      ELSIF FirstFault = 130816 THEN
         FirstFaultNumber := 701;
         FirstFaultMessage := 'Fieldbus runtimeIn computer science, runtime (or run-time) describes the operation of a computer program, the duration of its execution, from beginning to termination (compare compile time).
Within KAS, runtime also refers to the virtual machine that manage the program written in a computer language while it is running';
      ELSIF FirstFault = 130817 THEN
         FirstFaultNumber := 702;
         FirstFaultMessage := 'Fieldbus communication lost';
      ELSIF FirstFault = 130818 THEN
         FirstFaultNumber := 529;
         FirstFaultMessage := 'Iu current offset limit exceeded';
      ELSIF FirstFault = 130819 THEN
         FirstFaultNumber := 530;
         FirstFaultMessage := 'Iv current offset limit exceeded';
      ELSIF FirstFault = 130820 THEN
         FirstFaultNumber := 521;
         FirstFaultMessage := 'Regen over power';
      ELSIF FirstFault = 130821 THEN
         FirstFaultNumber := 527;
         FirstFaultMessage := 'Iu current AD converter stuck';
      ELSIF FirstFault = 130822 THEN
         FirstFaultNumber := 528;
         FirstFaultMessage := 'Iv current AD converter stuck';
      ELSIF FirstFault = 130823 THEN
         FirstFaultNumber := 525;
         FirstFaultMessage := 'Control output over current';
      ELSIF FirstFault = 130824 THEN
         FirstFaultNumber := 526;
         FirstFaultMessage := 'Current sensor short circuit';
      ELSIF FirstFault = 130825 THEN
         FirstFaultNumber := 128;
         FirstFaultMessage := 'MPOLES/FPOLES not an integer';
      ELSIF FirstFault = 130826 THEN
         FirstFaultNumber := 531;
         FirstFaultMessage := 'Power stage fault';
      ELSIF FirstFault = 130827 THEN
         FirstFaultNumber := 602;
         FirstFaultMessage := 'Safe torqueTorque is the tendency of a force to rotate an object about an axis. Just as a force is a push or a pull, a torque can be thought of as a twist off';
      ELSIF FirstFault = 130832 THEN
         FirstFaultNumber := 414;
         FirstFaultMessage := 'SFD single corrupted position';
      ELSIF FirstFault = 130833 THEN
         FirstFaultNumber := 524;
         FirstFaultMessage := 'Warning: Drive foldback';
      ELSIF FirstFault = 130834 THEN
         FirstFaultNumber := 304;
         FirstFaultMessage := 'Warning: Motor foldback';
      ELSIF FirstFault = 130835 THEN
         FirstFaultNumber := 438;
         FirstFaultMessage := 'Warning: Control position deviation';
      ELSIF FirstFault = 130836 THEN
         FirstFaultNumber := 107;
         FirstFaultMessage := 'Warning: Clockwise software position limit is exceeded';
      ELSIF FirstFault = 130837 THEN
         FirstFaultNumber := 108;
         FirstFaultMessage := 'Warning: Counterclockwise software position limit is exceeded';
      ELSIF FirstFault = 130838 THEN
         FirstFaultNumber := 123;
         FirstFaultMessage := 'Warning: Counterclockwise software position limit is exceeded';
      ELSIF FirstFault = 130839 THEN
         FirstFaultNumber := 301;
         FirstFaultMessage := 'Warning: Motor overheated';
      ELSIF FirstFault = 130840 THEN
         FirstFaultNumber := 234;
         FirstFaultMessage := 'Warning: Control temperature sensor 1 high';
      ELSIF FirstFault = 130841 THEN
         FirstFaultNumber := 235;
         FirstFaultMessage := 'Warning: Power temperature sensor 1 high';
      ELSIF FirstFault = 130842 THEN
         FirstFaultNumber := 236;
         FirstFaultMessage := 'Warning: Power temperature sensor 2 high';
      ELSIF FirstFault = 130843 THEN
         FirstFaultNumber := 237;
         FirstFaultMessage := 'Warning: Power temperature sensor 3 high';
      ELSIF FirstFault = 130844 THEN
         FirstFaultNumber := 240;
         FirstFaultMessage := 'Warning: Control temperature sensor 1 low';
      ELSIF FirstFault = 130845 THEN
         FirstFaultNumber := 241;
         FirstFaultMessage := 'Warning: Control temperature sensor 1 low';
      ELSIF FirstFault = 130846 THEN
         FirstFaultNumber := 242;
         FirstFaultMessage := 'Warning: Power temperature sensor 2 low';
      ELSIF FirstFault = 130847 THEN
         FirstFaultNumber := 243;
         FirstFaultMessage := 'Warning: Power temperature sensor 3 low';
      ELSIF FirstFault = 130848 THEN
         FirstFaultNumber := 502;
         FirstFaultMessage := 'Warning: Bus under voltage';
      ELSIF FirstFault = 130849 THEN
         FirstFaultNumber := 503;
         FirstFaultMessage := 'Warning: Input phase loss.';
      ELSIF FirstFault = 130850 THEN
         FirstFaultNumber := 521;
         FirstFaultMessage := 'Warning: Regen I2T';
      ELSIF FirstFault = 130851 THEN
         FirstFaultNumber := 125;
         FirstFaultMessage := 'Warning: Fieldbus PLL unlocked';
      ELSE
         FirstFaultNumber := FirstFault;
         FirstFaultMessage := 'Unknown Fault';
      END_IF;
   END_IF;
ELSE //If no faults in drive, reset outputs
   FirstFault := 0;
   FirstFaultNumber := 0;
   FirstFaultMessage := 'No Fault';
END_IF;
IF NumberFaults > 1 THEN //If more than one faults exist, return the CANopen fault number, convert and output 3 digit AKD fault number, and fault description
   IF Inst_ECATReadSdo2.Value <> 0 THEN
      SecondFault := Inst_ECATReadSdo2.Value;
      IF SecondFault = 78096 THEN
         SecondFaultNumber := 523;
         SecondFaultMessage := 'Bus over voltage FPGA';
      ELSIF SecondFault = 78128 THEN
         SecondFaultNumber := 503;
         SecondFaultMessage := 'Bus capacitor overload';
      ELSIF SecondFault = 78352 THEN
         SecondFaultNumber := 501;
         SecondFaultMessage := 'Bus over voltage';
      ELSIF SecondFault = 78368 THEN
         SecondFaultNumber := 502;
         SecondFaultMessage := 'Bus under voltage';
      ELSIF SecondFault = 82448 THEN
         SecondFaultNumber := 234;
         SecondFaultMessage := 'Control temperature sensor 1 high';
      ELSIF SecondFault = 82704 THEN
         SecondFaultNumber := 235;
         SecondFaultMessage := 'Power temperature sensor 1, 2, or 3 high';
      ELSIF SecondFault = 86291 THEN
         SecondFaultNumber := 512;
         SecondFaultMessage := '5V0 under voltage';
      ELSIF SecondFault = 86292 THEN
         SecondFaultNumber := 505;
         SecondFaultMessage := '1V2 under voltage';
      ELSIF SecondFault = 86293 THEN
         SecondFaultNumber := 507;
         SecondFaultMessage := '2V5 under voltage';
      ELSIF SecondFault = 86294 THEN
         SecondFaultNumber := 509;
         SecondFaultMessage := '3V3 under voltage';
      ELSIF SecondFault = 86295 THEN
         SecondFaultNumber := 514;
         SecondFaultMessage := '+12V0 under voltage';
      ELSIF SecondFault = 86296 THEN
         SecondFaultNumber := 516;
         SecondFaultMessage := '-12V0 under voltage';
      ELSIF SecondFault = 86297 THEN
         SecondFaultNumber := 518;
         SecondFaultMessage := 'Analog 3V3 under voltage';
      ELSIF SecondFault = 86400 THEN
         SecondFaultNumber := 504;
         SecondFaultMessage := '1V2 over voltage';
      ELSIF SecondFault = 86401 THEN
         SecondFaultNumber := 506;
         SecondFaultMessage := '2V5 over voltage';
      ELSIF SecondFault = 86402 THEN
         SecondFaultNumber := 508;
         SecondFaultMessage := '3V3 over voltage';
      ELSIF SecondFault = 86403 THEN
         SecondFaultNumber := 510;
         SecondFaultMessage := '5V0 over voltage';
      ELSIF SecondFault = 86404 THEN
         SecondFaultNumber := 513;
         SecondFaultMessage := '+12V0 over voltage';
      ELSIF SecondFault = 86405 THEN
         SecondFaultNumber := 104;
         SecondFaultMessage := 'Operational FPGA failed';
      ELSIF SecondFault = 86406 THEN
         SecondFaultNumber := 517;
         SecondFaultMessage := 'Analog 3V3 over voltage';
      ELSIF SecondFault = 87312 THEN
         SecondFaultNumber := 201;
         SecondFaultMessage := 'Internal RAM failed';
      ELSIF SecondFault = 87344 THEN
         SecondFaultNumber := 105;
         SecondFaultMessage := 'NV memory stamp invalid';
      ELSIF SecondFault = 87424 THEN
         SecondFaultNumber := 106;
         SecondFaultMessage := 'NV memory data invalid';
      ELSIF SecondFault = 87425 THEN
         SecondFaultNumber := 202;
         SecondFaultMessage := 'External RAM failed';
      ELSIF SecondFault = 87426 THEN
         SecondFaultNumber := 203;
         SecondFaultMessage := 'Code integrity failed';
      ELSIF SecondFault = 87427 THEN
         SecondFaultNumber := 102;
         SecondFaultMessage := 'Resident firmware failed';
      ELSIF SecondFault = 87428 THEN
         SecondFaultNumber := 103;
         SecondFaultMessage := 'Resident FPGA failed';
      ELSIF SecondFault = 87429 THEN
         SecondFaultNumber := 104;
         SecondFaultMessage := 'Operational FPGA failed';
      ELSIF SecondFault = 94592 THEN
         SecondFaultNumber := 301;
         SecondFaultMessage := 'Motor overheated';
      ELSIF SecondFault = 94594 THEN
         SecondFaultNumber := 305;
         SecondFaultMessage := 'Brake open circuit';
      ELSIF SecondFault = 94595 THEN
         SecondFaultNumber := 306;
         SecondFaultMessage := 'Brake short circuit';
      ELSIF SecondFault = 94596 THEN
         SecondFaultNumber := 307;
         SecondFaultMessage := 'Brake closed during enable state';
      ELSIF SecondFault = 94597 THEN
         SecondFaultNumber := 436;
         SecondFaultMessage := 'Motor EnDat overheat'; //Change Description ??
      ELSIF SecondFault = 94979 THEN
         SecondFaultNumber := 426;
         SecondFaultMessage := 'Resolver error';
      ELSIF SecondFault = 94981 THEN
         SecondFaultNumber := 417;
         SecondFaultMessage := 'Broken wire in primary feedback';
      ELSIF SecondFault = 95104 THEN
         SecondFaultNumber := 402;
         SecondFaultMessage := 'Analog signal amplitude fault';
      ELSIF SecondFault = 95105 THEN
         SecondFaultNumber := 403;
         SecondFaultMessage := 'EnDat communication fault';
      ELSIF SecondFault = 95106 THEN
         SecondFaultNumber := 404;
         SecondFaultMessage := 'Hall error';
      ELSIF SecondFault = 95107 THEN
         SecondFaultNumber := 405;
         SecondFaultMessage := 'BiSS watchdog';
      ELSIF SecondFault = 95108 THEN
         SecondFaultNumber := 406;
         SecondFaultMessage := 'BiSS multi cycle';
      ELSIF SecondFault = 95109 THEN
         SecondFaultNumber := 407;
         SecondFaultMessage := 'BiSS sensor';
      ELSIF SecondFault = 95110 THEN
         SecondFaultNumber := 408;
         SecondFaultMessage := 'SFD configuration';
      ELSIF SecondFault = 95111 THEN
         SecondFaultNumber := 409;
         SecondFaultMessage := 'SFD UART overrun';
      ELSIF SecondFault = 95112 THEN
         SecondFaultNumber := 410;
         SecondFaultMessage := 'SFD UART frame';
      ELSIF SecondFault = 95113 THEN
         SecondFaultNumber := 412;
         SecondFaultMessage := 'SFD UART parity';
      ELSIF SecondFault = 95114 THEN
         SecondFaultNumber := 413;
         SecondFaultMessage := 'SFD transfer timeout';
      ELSIF SecondFault = 95116 THEN
         SecondFaultNumber := 415;
         SecondFaultMessage := 'SFD multiple corrupt position';
      ELSIF SecondFault = 95117 THEN
         SecondFaultNumber := 416;
         SecondFaultMessage := 'SFD Transfer incomplete';
      ELSIF SecondFault = 95118 THEN
         SecondFaultNumber := 418;
         SecondFaultMessage := 'Primary feedback power supply';
      ELSIF SecondFault = 95119 THEN
         SecondFaultNumber := 401;
         SecondFaultMessage := 'Failed to set feedback type';
      ELSIF SecondFault = 95136 THEN
         SecondFaultNumber := 424;
         SecondFaultMessage := 'Resolver amplitude low';
      ELSIF SecondFault = 95137 THEN
         SecondFaultNumber := 425;
         SecondFaultMessage := 'Resolver amplitude high';
      ELSIF SecondFault = 95138 THEN
         SecondFaultNumber := 425;
         SecondFaultMessage := 'Resolver amplitude high';
      ELSIF SecondFault = 95139 THEN
         SecondFaultNumber := 427;
         SecondFaultMessage := 'Analog low';
      ELSIF SecondFault = 95140 THEN
         SecondFaultNumber := 428;
         SecondFaultMessage := 'Analog high';
      ELSIF SecondFault = 95141 THEN
         SecondFaultNumber := 429;
         SecondFaultMessage := 'Incremental low';
      ELSIF SecondFault = 95142 THEN
         SecondFaultNumber := 430;
         SecondFaultMessage := 'Incremental high';
      ELSIF SecondFault = 95143 THEN
         SecondFaultNumber := 431;
         SecondFaultMessage := 'Secondary feedback Hall error';
      ELSIF SecondFault = 95144 THEN
         SecondFaultNumber := 432;
         SecondFaultMessage := 'Communication fault: Secondary Feedback';
      ELSIF SecondFault = 95145 THEN
         SecondFaultNumber := 999;
         SecondFaultMessage := 'Reserved';
      ELSIF SecondFault = 95146 THEN
         SecondFaultNumber := 999;
         SecondFaultMessage := 'Reserved';
      ELSIF SecondFault = 98608 THEN
         SecondFaultNumber := 129;
         SecondFaultMessage := 'Heartbeat lost';
      ELSIF SecondFault = 99089 THEN
         SecondFaultNumber := 304;
         SecondFaultMessage := 'Motor foldback';
      ELSIF SecondFault = 99121 THEN
         SecondFaultNumber := 524;
         SecondFaultMessage := 'Drive foldback';
      ELSIF SecondFault = 99456 THEN
         SecondFaultNumber := 302;
         SecondFaultMessage := 'Over speed';
      ELSIF SecondFault = 99712 THEN
         SecondFaultNumber := 107;
         SecondFaultMessage := 'Clockwise limit switch exceeded';
      ELSIF SecondFault = 99713 THEN
         SecondFaultNumber := 108;
         SecondFaultMessage := 'Counterclockwise limit switch exceeded';
      ELSIF SecondFault = 99857 THEN
         SecondFaultNumber := 439;
         SecondFaultMessage := 'Following error (user)';
      ELSIF SecondFault = 100224 THEN
         SecondFaultNumber := 125;
         SecondFaultMessage := 'Fieldbus synchronization lost';
      ELSIF SecondFault = 130816 THEN
         SecondFaultNumber := 701;
         SecondFaultMessage := 'Fieldbus runtime';
      ELSIF SecondFault = 130817 THEN
         SecondFaultNumber := 702;
         SecondFaultMessage := 'Fieldbus communication lost';
      ELSIF SecondFault = 130818 THEN
         SecondFaultNumber := 529;
         SecondFaultMessage := 'Iu current offset limit exceeded';
      ELSIF SecondFault = 130819 THEN
         SecondFaultNumber := 530;
         SecondFaultMessage := 'Iv current offset limit exceeded';
      ELSIF SecondFault = 130820 THEN
         SecondFaultNumber := 521;
         SecondFaultMessage := 'Regen over power';
      ELSIF SecondFault = 130821 THEN
         SecondFaultNumber := 527;
         SecondFaultMessage := 'Iu current AD converter stuck';
      ELSIF SecondFault = 130822 THEN
         SecondFaultNumber := 528;
         SecondFaultMessage := 'Iv current AD converter stuck';
      ELSIF SecondFault = 130823 THEN
         SecondFaultNumber := 525;
         SecondFaultMessage := 'Control output over current';
      ELSIF SecondFault = 130824 THEN
         SecondFaultNumber := 526;
         SecondFaultMessage := 'Current sensor short circuit';
      ELSIF SecondFault = 130825 THEN
         SecondFaultNumber := 128;
         SecondFaultMessage := 'MPOLES/FPOLES not an integer';
      ELSIF SecondFault = 130826 THEN
         SecondFaultNumber := 531;
         SecondFaultMessage := 'Power stage fault';
      ELSIF SecondFault = 130827 THEN
         SecondFaultNumber := 602;
         SecondFaultMessage := 'Safe torque off';
      ELSIF SecondFault = 130832 THEN
         SecondFaultNumber := 414;
         SecondFaultMessage := 'SFD single corrupted position';
      ELSIF SecondFault = 130833 THEN
         SecondFaultNumber := 524;
         SecondFaultMessage := 'Warning: Drive foldback';
      ELSIF SecondFault = 130834 THEN
         SecondFaultNumber := 304;
         SecondFaultMessage := 'Warning: Motor foldback';
      ELSIF SecondFault = 130835 THEN
         SecondFaultNumber := 438;
         SecondFaultMessage := 'Warning: Control position deviation';
      ELSIF SecondFault = 130836 THEN
         SecondFaultNumber := 107;
         SecondFaultMessage := 'Warning: Clockwise software position limit is exceeded';
      ELSIF SecondFault = 130837 THEN
         SecondFaultNumber := 108;
         SecondFaultMessage := 'Warning: Counterclockwise software position limit is exceeded';
      ELSIF SecondFault = 130838 THEN
         SecondFaultNumber := 123;
         SecondFaultMessage := 'Warning: Counterclockwise software position limit is exceeded';
      ELSIF SecondFault = 130839 THEN
         SecondFaultNumber := 301;
         SecondFaultMessage := 'Warning: Motor overheated';
      ELSIF SecondFault = 130840 THEN
         SecondFaultNumber := 234;
         SecondFaultMessage := 'Warning: Control temperature sensor 1 high';
      ELSIF SecondFault = 130841 THEN
         SecondFaultNumber := 235;
         SecondFaultMessage := 'Warning: Power temperature sensor 1 high';
      ELSIF SecondFault = 130842 THEN
         SecondFaultNumber := 236;
         SecondFaultMessage := 'Warning: Power temperature sensor 2 high';
      ELSIF SecondFault = 130843 THEN
         SecondFaultNumber := 237;
         SecondFaultMessage := 'Warning: Power temperature sensor 3 high';
      ELSIF SecondFault = 130844 THEN
         SecondFaultNumber := 240;
         SecondFaultMessage := 'Warning: Control temperature sensor 1 low';
      ELSIF SecondFault = 130845 THEN
         SecondFaultNumber := 241;
         SecondFaultMessage := 'Warning: Control temperature sensor 1 low';
      ELSIF SecondFault = 130846 THEN
         SecondFaultNumber := 242;
         SecondFaultMessage := 'Warning: Power temperature sensor 2 low';
      ELSIF SecondFault = 130847 THEN
         SecondFaultNumber := 243;
         SecondFaultMessage := 'Warning: Power temperature sensor 3 low';
      ELSIF SecondFault = 130848 THEN
         SecondFaultNumber := 502;
         SecondFaultMessage := 'Warning: Bus under voltage';
      ELSIF SecondFault = 130849 THEN
         SecondFaultNumber := 503;
         SecondFaultMessage := 'Warning: Input phase loss.';
      ELSIF SecondFault = 130850 THEN
         SecondFaultNumber := 521;
         SecondFaultMessage := 'Warning: Regen I2T';
      ELSIF SecondFault = 130851 THEN
         SecondFaultNumber := 125;
         SecondFaultMessage := 'Warning: Fieldbus PLL unlocked';
      ELSE
         SecondFaultNumber := SecondFault;
         SecondFaultMessage := 'Unknown Fault';
      END_IF;
   END_IF;
ELSE //If two faults do not exist, clear second fault outputs
   SecondFault := 0;
   SecondFaultNumber := 0;
   SecondFaultMessage := 'No Fault';
END_IF;
IF NumberFaults > 2 THEN //If 3 faults exist, return the CANopen fault number, convert and output 3 digit AKD fault number, and fault description
   IF Inst_ECATReadSdo3.Value <> 0 THEN
      ThirdFault := Inst_ECATReadSdo3.Value;
      IF ThirdFault = 78096 THEN
         ThirdFaultNumber := 523;
         ThirdFaultMessage := 'Bus over voltage FPGA';
      ELSIF ThirdFault = 78128 THEN
         ThirdFaultNumber := 503;
         ThirdFaultMessage := 'Bus capacitor overload';
      ELSIF ThirdFault = 78352 THEN
         ThirdFaultNumber := 501;
         ThirdFaultMessage := 'Bus over voltage';
      ELSIF ThirdFault = 78368 THEN
         ThirdFaultNumber := 502;
         ThirdFaultMessage := 'Bus under voltage';
      ELSIF ThirdFault = 82448 THEN
         ThirdFaultNumber := 234;
         ThirdFaultMessage := 'Control temperature sensor 1 high';
      ELSIF ThirdFault = 82704 THEN
         ThirdFaultNumber := 235;
         ThirdFaultMessage := 'Power temperature sensor 1, 2, or 3 high';
      ELSIF ThirdFault = 86291 THEN
         ThirdFaultNumber := 512;
         ThirdFaultMessage := '5V0 under voltage';
      ELSIF ThirdFault = 86292 THEN
         ThirdFaultNumber := 505;
         ThirdFaultMessage := '1V2 under voltage';
      ELSIF ThirdFault = 86293 THEN
         ThirdFaultNumber := 507;
         ThirdFaultMessage := '2V5 under voltage';
      ELSIF ThirdFault = 86294 THEN
         ThirdFaultNumber := 509;
         ThirdFaultMessage := '3V3 under voltage';
      ELSIF ThirdFault = 86295 THEN
         ThirdFaultNumber := 514;
         ThirdFaultMessage := '+12V0 under voltage';
      ELSIF ThirdFault = 86296 THEN
         ThirdFaultNumber := 516;
         ThirdFaultMessage := '-12V0 under voltage';
      ELSIF ThirdFault = 86297 THEN
         ThirdFaultNumber := 518;
         ThirdFaultMessage := 'Analog 3V3 under voltage';
      ELSIF ThirdFault = 86400 THEN
         ThirdFaultNumber := 504;
         ThirdFaultMessage := '1V2 over voltage';
      ELSIF ThirdFault = 86401 THEN
         ThirdFaultNumber := 506;
         ThirdFaultMessage := '2V5 over voltage';
      ELSIF ThirdFault = 86402 THEN
         ThirdFaultNumber := 508;
         ThirdFaultMessage := '3V3 over voltage';
      ELSIF ThirdFault = 86403 THEN
         ThirdFaultNumber := 510;
         ThirdFaultMessage := '5V0 over voltage';
      ELSIF ThirdFault = 86404 THEN
         ThirdFaultNumber := 513;
         ThirdFaultMessage := '+12V0 over voltage';
      ELSIF ThirdFault = 86405 THEN
         ThirdFaultNumber := 104;
         ThirdFaultMessage := 'Operational FPGA failed';
      ELSIF ThirdFault = 86406 THEN
         ThirdFaultNumber := 517;
         ThirdFaultMessage := 'Analog 3V3 over voltage';
      ELSIF ThirdFault = 87312 THEN
         ThirdFaultNumber := 201;
         ThirdFaultMessage := 'Internal RAM failed';
      ELSIF ThirdFault = 87344 THEN
         ThirdFaultNumber := 105;
         ThirdFaultMessage := 'NV memory stamp invalid';
      ELSIF ThirdFault = 87424 THEN
         ThirdFaultNumber := 106;
         ThirdFaultMessage := 'NV memory data invalid';
      ELSIF ThirdFault = 87425 THEN
         ThirdFaultNumber := 202;
         ThirdFaultMessage := 'External RAM failed';
      ELSIF ThirdFault = 87426 THEN
         ThirdFaultNumber := 203;
         ThirdFaultMessage := 'Code integrity failed';
      ELSIF ThirdFault = 87427 THEN
         ThirdFaultNumber := 102;
         ThirdFaultMessage := 'Resident firmware failed';
      ELSIF ThirdFault = 87428 THEN
         ThirdFaultNumber := 103;
         ThirdFaultMessage := 'Resident FPGA failed';
      ELSIF ThirdFault = 87429 THEN
         ThirdFaultNumber := 104;
         ThirdFaultMessage := 'Operational FPGA failed';
      ELSIF ThirdFault = 94592 THEN
         ThirdFaultNumber := 301;
         ThirdFaultMessage := 'Motor overheated';
      ELSIF ThirdFault = 94594 THEN
         ThirdFaultNumber := 305;
         ThirdFaultMessage := 'Brake open circuit';
      ELSIF ThirdFault = 94595 THEN
         ThirdFaultNumber := 306;
         ThirdFaultMessage := 'Brake short circuit';
      ELSIF ThirdFault = 94596 THEN
         ThirdFaultNumber := 307;
         ThirdFaultMessage := 'Brake closed during enable state';
      ELSIF ThirdFault = 94597 THEN
         ThirdFaultNumber := 436;
         ThirdFaultMessage := 'Motor EnDat overheat'; //Change Description ??
      ELSIF ThirdFault = 94979 THEN
         ThirdFaultNumber := 426;
         ThirdFaultMessage := 'Resolver error';
      ELSIF ThirdFault = 94981 THEN
         ThirdFaultNumber := 417;
         ThirdFaultMessage := 'Broken wire in primary feedback';
      ELSIF ThirdFault = 95104 THEN
         ThirdFaultNumber := 402;
         ThirdFaultMessage := 'Analog signal amplitude fault';
      ELSIF ThirdFault = 95105 THEN
         ThirdFaultNumber := 403;
         ThirdFaultMessage := 'EnDat communication fault';
      ELSIF ThirdFault = 95106 THEN
         ThirdFaultNumber := 404;
         ThirdFaultMessage := 'Hall error';
      ELSIF ThirdFault = 95107 THEN
         ThirdFaultNumber := 405;
         ThirdFaultMessage := 'BiSS watchdog';
      ELSIF ThirdFault = 95108 THEN
         ThirdFaultNumber := 406;
         ThirdFaultMessage := 'BiSS multi cycle';
      ELSIF ThirdFault = 95109 THEN
         ThirdFaultNumber := 407;
         ThirdFaultMessage := 'BiSS sensor';
      ELSIF ThirdFault = 95110 THEN
         ThirdFaultNumber := 408;
         ThirdFaultMessage := 'SFD configuration';
      ELSIF ThirdFault = 95111 THEN
         ThirdFaultNumber := 409;
         ThirdFaultMessage := 'SFD UART overrun';
      ELSIF ThirdFault = 95112 THEN
         ThirdFaultNumber := 410;
         ThirdFaultMessage := 'SFD UART frame';
      ELSIF ThirdFault = 95113 THEN
         ThirdFaultNumber := 412;
         ThirdFaultMessage := 'SFD UART parity';
      ELSIF ThirdFault = 95114 THEN
         ThirdFaultNumber := 413;
         ThirdFaultMessage := 'SFD transfer timeout';
      ELSIF ThirdFault = 95116 THEN
         ThirdFaultNumber := 415;
         ThirdFaultMessage := 'SFD multiple corrupt position';
      ELSIF ThirdFault = 95117 THEN
         ThirdFaultNumber := 416;
         ThirdFaultMessage := 'SFD Transfer incomplete';
      ELSIF ThirdFault = 95118 THEN
         ThirdFaultNumber := 418;
         ThirdFaultMessage := 'Primary feedback power supply';
      ELSIF ThirdFault = 95119 THEN
         ThirdFaultNumber := 401;
         ThirdFaultMessage := 'Failed to set feedback type';
      ELSIF ThirdFault = 95136 THEN
         ThirdFaultNumber := 424;
         ThirdFaultMessage := 'Resolver amplitude low';
      ELSIF ThirdFault = 95137 THEN
         ThirdFaultNumber := 425;
         ThirdFaultMessage := 'Resolver amplitude high';
      ELSIF ThirdFault = 95138 THEN
         ThirdFaultNumber := 425;
         ThirdFaultMessage := 'Resolver amplitude high';
      ELSIF ThirdFault = 95139 THEN
         ThirdFaultNumber := 427;
         ThirdFaultMessage := 'Analog low';
      ELSIF ThirdFault = 95140 THEN
         ThirdFaultNumber := 428;
         ThirdFaultMessage := 'Analog high';
      ELSIF ThirdFault = 95141 THEN
         ThirdFaultNumber := 429;
         ThirdFaultMessage := 'Incremental low';
      ELSIF ThirdFault = 95142 THEN
         ThirdFaultNumber := 430;
         ThirdFaultMessage := 'Incremental high';
      ELSIF ThirdFault = 95143 THEN
         ThirdFaultNumber := 431;
         ThirdFaultMessage := 'Thirdary feedback Hall error';
      ELSIF ThirdFault = 95144 THEN
         ThirdFaultNumber := 432;
         ThirdFaultMessage := 'Communication fault: Thirdary Feedback';
      ELSIF ThirdFault = 95145 THEN
         ThirdFaultNumber := 999;
         ThirdFaultMessage := 'Reserved';
      ELSIF ThirdFault = 95146 THEN
         ThirdFaultNumber := 999;
         ThirdFaultMessage := 'Reserved';
      ELSIF ThirdFault = 98608 THEN
         ThirdFaultNumber := 129;
         ThirdFaultMessage := 'Heartbeat lost';
      ELSIF ThirdFault = 99089 THEN
         ThirdFaultNumber := 304;
         ThirdFaultMessage := 'Motor foldback';
      ELSIF ThirdFault = 99121 THEN
         ThirdFaultNumber := 524;
         ThirdFaultMessage := 'Drive foldback';
      ELSIF ThirdFault = 99456 THEN
         ThirdFaultNumber := 302;
         ThirdFaultMessage := 'Over speed';
      ELSIF ThirdFault = 99712 THEN
         ThirdFaultNumber := 107;
         ThirdFaultMessage := 'Clockwise limit switch exceeded';
      ELSIF ThirdFault = 99713 THEN
         ThirdFaultNumber := 108;
         ThirdFaultMessage := 'Counterclockwise limit switch exceeded';
      ELSIF ThirdFault = 99857 THEN
         ThirdFaultNumber := 439;
         ThirdFaultMessage := 'Following error (user)';
      ELSIF ThirdFault = 100224 THEN
         ThirdFaultNumber := 125;
         ThirdFaultMessage := 'Fieldbus synchronization lost';
      ELSIF ThirdFault = 130816 THEN
         ThirdFaultNumber := 701;
         ThirdFaultMessage := 'Fieldbus runtime';
      ELSIF ThirdFault = 130817 THEN
         ThirdFaultNumber := 702;
         ThirdFaultMessage := 'Fieldbus communication lost';
      ELSIF ThirdFault = 130818 THEN
         ThirdFaultNumber := 529;
         ThirdFaultMessage := 'Iu current offset limit exceeded';
      ELSIF ThirdFault = 130819 THEN
         ThirdFaultNumber := 530;
         ThirdFaultMessage := 'Iv current offset limit exceeded';
      ELSIF ThirdFault = 130820 THEN
         ThirdFaultNumber := 521;
         ThirdFaultMessage := 'Regen over power';
      ELSIF ThirdFault = 130821 THEN
         ThirdFaultNumber := 527;
         ThirdFaultMessage := 'Iu current AD converter stuck';
      ELSIF ThirdFault = 130822 THEN
         ThirdFaultNumber := 528;
         ThirdFaultMessage := 'Iv current AD converter stuck';
      ELSIF ThirdFault = 130823 THEN
         ThirdFaultNumber := 525;
         ThirdFaultMessage := 'Control output over current';
      ELSIF ThirdFault = 130824 THEN
         ThirdFaultNumber := 526;
         ThirdFaultMessage := 'Current sensor short circuit';
      ELSIF ThirdFault = 130825 THEN
         ThirdFaultNumber := 128;
         ThirdFaultMessage := 'MPOLES/FPOLES not an integer';
      ELSIF ThirdFault = 130826 THEN
         ThirdFaultNumber := 531;
         ThirdFaultMessage := 'Power stage fault';
      ELSIF ThirdFault = 130827 THEN
         ThirdFaultNumber := 602;
         ThirdFaultMessage := 'Safe torque off';
      ELSIF ThirdFault = 130832 THEN
         ThirdFaultNumber := 414;
         ThirdFaultMessage := 'SFD single corrupted position';
      ELSIF ThirdFault = 130833 THEN
         ThirdFaultNumber := 524;
         ThirdFaultMessage := 'Warning: Drive foldback';
      ELSIF ThirdFault = 130834 THEN
         ThirdFaultNumber := 304;
         ThirdFaultMessage := 'Warning: Motor foldback';
      ELSIF ThirdFault = 130835 THEN
         ThirdFaultNumber := 438;
         ThirdFaultMessage := 'Warning: Control position deviation';
      ELSIF ThirdFault = 130836 THEN
         ThirdFaultNumber := 107;
         ThirdFaultMessage := 'Warning: Clockwise software position limit is exceeded';
      ELSIF ThirdFault = 130837 THEN
         ThirdFaultNumber := 108;
         ThirdFaultMessage := 'Warning: Counterclockwise software position limit is exceeded';
      ELSIF ThirdFault = 130838 THEN
         ThirdFaultNumber := 123;
         ThirdFaultMessage := 'Warning: Counterclockwise software position limit is exceeded';
      ELSIF ThirdFault = 130839 THEN
         ThirdFaultNumber := 301;
         ThirdFaultMessage := 'Warning: Motor overheated';
      ELSIF ThirdFault = 130840 THEN
         ThirdFaultNumber := 234;
         ThirdFaultMessage := 'Warning: Control temperature sensor 1 high';
      ELSIF ThirdFault = 130841 THEN
         ThirdFaultNumber := 235;
         ThirdFaultMessage := 'Warning: Power temperature sensor 1 high';
      ELSIF ThirdFault = 130842 THEN
         ThirdFaultNumber := 236;
         ThirdFaultMessage := 'Warning: Power temperature sensor 2 high';
      ELSIF ThirdFault = 130843 THEN
         ThirdFaultNumber := 237;
         ThirdFaultMessage := 'Warning: Power temperature sensor 3 high';
      ELSIF ThirdFault = 130844 THEN
         ThirdFaultNumber := 240;
         ThirdFaultMessage := 'Warning: Control temperature sensor 1 low';
      ELSIF ThirdFault = 130845 THEN
         ThirdFaultNumber := 241;
         ThirdFaultMessage := 'Warning: Control temperature sensor 1 low';
      ELSIF ThirdFault = 130846 THEN
         ThirdFaultNumber := 242;
         ThirdFaultMessage := 'Warning: Power temperature sensor 2 low';
      ELSIF ThirdFault = 130847 THEN
         ThirdFaultNumber := 243;
         ThirdFaultMessage := 'Warning: Power temperature sensor 3 low';
      ELSIF ThirdFault = 130848 THEN
         ThirdFaultNumber := 502;
         ThirdFaultMessage := 'Warning: Bus under voltage';
      ELSIF ThirdFault = 130849 THEN
         ThirdFaultNumber := 503;
         ThirdFaultMessage := 'Warning: Input phase loss.';
      ELSIF ThirdFault = 130850 THEN
         ThirdFaultNumber := 521;
         ThirdFaultMessage := 'Warning: Regen I2T';
      ELSIF ThirdFault = 130851 THEN
         ThirdFaultNumber := 125;
         ThirdFaultMessage := 'Warning: Fieldbus PLL unlocked';
      ELSE
         ThirdFaultNumber := ThirdFault;
         ThirdFaultMessage := 'Unknown Fault';
      END_IF;
   END_IF;
ELSE //If three faults do not exist, clear third fault outputs
   ThirdFault := 0;
   ThirdFaultNumber := 0;
   ThirdFaultMessage := 'No Fault';
END_IF;

 


Stay Connected with Kollmorgen

Copyright © 2015 Kollmorgen™