| 
															
																@@ -196,6 +196,7 @@ namespace FurnaceRT.Devices 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         public string ErrorCode => $"{(_aiDriverErrorCode != null ? ((int)(_aiDriverErrorCode.FloatValue + 0.00001)).ToString("X") : "")}/{(_aiMotionErrorCode != null ? ((int)(_aiMotionErrorCode.FloatValue + 0.00001)).ToString("X") : "")}";
 
															 | 
															
															 | 
															
																         public string ErrorCode => $"{(_aiDriverErrorCode != null ? ((int)(_aiDriverErrorCode.FloatValue + 0.00001)).ToString("X") : "")}/{(_aiMotionErrorCode != null ? ((int)(_aiMotionErrorCode.FloatValue + 0.00001)).ToString("X") : "")}";
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
 
															 | 
															
															 | 
															
																 
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         private bool _isFloatAioType = false;
 
															 | 
															
															 | 
															
																         private bool _isFloatAioType = false;
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        public bool IsHomingState = false;
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         #endregion
 
															 | 
															
															 | 
															
																         #endregion
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
 
															 | 
															
															 | 
															
																 
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         #region properties
 
															 | 
															
															 | 
															
																         #region properties
 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -215,6 +216,7 @@ namespace FurnaceRT.Devices 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 return false;
 
															 | 
															
															 | 
															
																                 return false;
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             }
 
															 | 
															
															 | 
															
																             }
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         }
 
															 | 
															
															 | 
															
																         }
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        public bool IsHomeing => _diHoming == null ? false : _diHoming.Value;
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         public bool IsHomeDone => _diHomeDone == null ? false : _diHomeDone.Value;
 
															 | 
															
															 | 
															
																         public bool IsHomeDone => _diHomeDone == null ? false : _diHomeDone.Value;
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         public bool IsInitDone => _diInitDone == null ? false : _diInitDone.Value;
 
															 | 
															
															 | 
															
																         public bool IsInitDone => _diInitDone == null ? false : _diInitDone.Value;
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         public bool IsMoving => _diMoving == null ? false : _diMoving.Value;
 
															 | 
															
															 | 
															
																         public bool IsMoving => _diMoving == null ? false : _diMoving.Value;
 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -250,7 +252,7 @@ namespace FurnaceRT.Devices 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 return _diServoOn.Value;
 
															 | 
															
															 | 
															
																                 return _diServoOn.Value;
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             }
 
															 | 
															
															 | 
															
																             }
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         }
 
															 | 
															
															 | 
															
																         }
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-
 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        private R_TRIG _homingTrig = new R_TRIG();
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         #endregion
 
															 | 
															
															 | 
															
																         #endregion
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
 
															 | 
															
															 | 
															
																 
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         public IoFurnaceMotor(string module, XmlElement node, string ioModule = "")
 
															 | 
															
															 | 
															
																         public IoFurnaceMotor(string module, XmlElement node, string ioModule = "")
 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -549,11 +551,16 @@ namespace FurnaceRT.Devices 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         }
 
															 | 
															
															 | 
															
																                         }
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         else
 
															 | 
															
															 | 
															
																                         else
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         {
 
															 | 
															
															 | 
															
																                         {
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                            if (_diHomeDone != null && _diHomeDone.Value)
 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            _homingTrig.CLK = !_diHoming.Value;
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                            if (_homingTrig.Q)
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                             {
 
															 | 
															
															 | 
															
																                             {
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                                _doHome.SetValue(false, out _);
 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                                _state = State.Idle;
 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																-                                EV.PostInfoLog($"{Module}", $"{Name} Motor home finish");
 
															 | 
															
															 | 
															
																 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                                if (_diHomeDone != null && _diHomeDone.Value)
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                                {
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                                    _doHome.SetValue(false, out _);
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                                    _state = State.Idle;
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                                    IsHomingState = false;
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                                    EV.PostInfoLog($"{Module}", $"{Name} Motor home finish");
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                                }
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                             }
 
															 | 
															
															 | 
															
																                             }
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                         }
 
															 | 
															
															 | 
															
																                         }
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                     }
 
															 | 
															
															 | 
															
																                     }
 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -710,6 +717,7 @@ namespace FurnaceRT.Devices 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             {
 
															 | 
															
															 | 
															
																             {
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 _doHome?.SetValue(true, out _);
 
															 | 
															
															 | 
															
																                 _doHome?.SetValue(true, out _);
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																                 _state = State.Homing;
 
															 | 
															
															 | 
															
																                 _state = State.Homing;
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                IsHomingState = true;
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             }
 
															 | 
															
															 | 
															
																             }
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             else
 
															 | 
															
															 | 
															
																             else
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             {
 
															 | 
															
															 | 
															
																             {
 
															 | 
														
													
												
											
												
													
														
															 | 
															
																@@ -894,6 +902,14 @@ namespace FurnaceRT.Devices 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
 
															 | 
															
															 | 
															
																 
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             return false;
 
															 | 
															
															 | 
															
																             return false;
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         }
 
															 | 
															
															 | 
															
																         }
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        public bool CheckServoHomeDone()
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        {
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            if (IsHomeDone && IsReady)
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            {
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+                return true;
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            }
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+            return false;
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																 
															 | 
															
															 | 
															
																+        }
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         public bool ServoReset(out string reason)
 
															 | 
															
															 | 
															
																         public bool ServoReset(out string reason)
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																         {
 
															 | 
															
															 | 
															
																         {
 
															 | 
														
													
												
													
														
															| 
															 | 
															
																             reason = string.Empty;
 
															 | 
															
															 | 
															
																             reason = string.Empty;
 
															 |