A method of controlling a wiper system, the wiper system having a track guide, a wiper assembly having a wiper arm attached at a first end thereof to a rotor rotatably disposed on a wiper carrier that is engaged with the track guide and configured for translation along the track guide, a drive mechanism connected with the wiper carrier and configured for positioning the wiper carrier along the track guide, and a wipe mechanism connected with at least one of the rotor and the wiper carrier and configured to cause the rotor to rotate, wherein (i) the drive mechanism comprises a first electric motor located offboard the wiper carrier and a first linear element attached at one end thereof to the wiper carrier and at another end thereof to the first electric motor, and the drive mechanism further includes a first motive element located offboard the wiper carrier and a second linear element attached at one end thereof to the wiper carrier and at another end thereof to the first motive element, wherein the first electric motor, the first motive element and the first and seond linear elements are cooperatively configured for positioning the wiper carrier along the track guide, and (ii) the wipe mechanism comprises a second electric motor located offboard the wiper carrier and a third linear element attached at one end thereof to at least one of the rotor and the wiper carrier and at another end thereof to the second electric motor, and the wipe mechanism further includes a second motive element located offboard the wiper carrier and a fourth linear element attached at one end thereof to the at least one of the rotor and the wiper carrier and at another end thereof to the second motive element, wherein the second electric motor, the second motive element and the third and fourth linear elements are cooperatively configured for causing the rotor to rotate, the method comprising:
- receiving inputs from at least one of a driver control, a sensor and a computer element;
- determining a wipe sequence based on the received inputs;
- executing a next step in the determined wipe sequence;
- detecting whether an execution error occurred in the executed next step;
- if an execution error is detected, then performing a diagnostic sequence, else returning to the receiving step;
- observing whether a diagnostic error occurred in the performed diagnostic sequence;
- and
- if a diagnostic error is observed, then registering a diagnostic fail state and reverting to the receiving step, else reverting to the receiving step.