public ushort HomeServo(ushort g_uESCCardNo, ushort g_uESCNodeID, ushort uMode, uint nStrVel, uint nMaxVel, ref ushort _mDone, int nOffset = 0) { uint _uTacc = Convert.ToUInt32(Convert.ToDouble(0.1)); g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_Home_Config(g_uESCCardNo, g_uESCNodeID, 0, uMode, nOffset, nStrVel, nMaxVel, _uTacc); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { MessageBox.Show("_ECAT_Slave_Home_Config, ErrorCode = " + g_uRet.ToString()); return(g_uRet); } else { g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_Home_Move(g_uESCCardNo, g_uESCNodeID, 0); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { MessageBox.Show("_ECAT_Slave_Home_Move, ErrorCode = " + g_uRet.ToString()); } else { do { g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_Motion_Get_Mdone(0, g_uESCNodeID, 0, ref _mDone); } while ((_mDone) != 0); } return(g_uRet); } }
//scan DIO slave status private void systemScan(FlowVar fv) { //while (true) //{ if (keyOfIOScan) { ushort uValue = BitConverterEx.ConvertToUInt16(Status1); if (uValue != _lastOutputValue) { _lastOutputValue = uValue; ushort uRet = CEtherCAT_DLL.CS_ECAT_Slave_DIO_Set_Output_Value(dIOPara.CardNo, dIOPara.NodeNo, g_uESCSlotID, uValue); if (uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { throw new Exception("CS_ECAT_Slave_DIO_Set_Output_Value, " + GetEtherCATErrorCode(uRet)); } //Thread.Sleep(15); //if (Environment.ProcessorCount == 1 || (++_loops % 100) == 0) //{ // Thread.Sleep(1); //} //else //{ // Thread.SpinWait(_iterations); //} } } //} }
/// <summary> /// 設定Output數值 /// </summary> /// <param name="bitNum">Bit Number</param> /// <param name="status">寫入成功回傳true,反之false(DI點一定false)</param> /// <returns></returns> public bool SetOutput(ushort bitNum, bool status) { if (dIOPara.IsActive) { if (ParameterDictionary.GetValue("DO7062BlockScan") == "true") { Status1[bitNum] = status; Status2[bitNum / 8, bitNum % 8] = status; } else { Stopwatch sw = Stopwatch.StartNew(); ushort uValue = (ushort)(status ? 1 : 0); ushort uRet = CEtherCAT_DLL.CS_ECAT_Slave_DIO_Set_Single_Output_Value(dIOPara.CardNo, dIOPara.NodeNo, g_uESCSlotID, bitNum, uValue); if (uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { throw new Exception("CS_ECAT_Slave_DIO_Set_Single_Output_Value, " + GetEtherCATErrorCode(uRet)); } sw.Stop(); //LogHelper.Debug("{0} SetOutput TACT {1}", this.DeviceName, sw.ElapsedMilliseconds); } return(true); } else { return(false); } }
//scan DIO slave status private void systemScan(FlowVar fv) { //while (true) //{ if (keyOfIOScan) { ushort uValue = 0, uRet = 0; uRet = CEtherCAT_DLL.CS_ECAT_Slave_DIO_Get_Input_Value(dIOPara.CardNo, dIOPara.NodeNo, g_uESCSlotID, ref uValue); if (uRet == CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { for (int nBit = 0; nBit < 16; nBit++) { Status1[nBit] = BitConverterEx.TestB(uValue, (byte)nBit); Status2[nBit / 8, nBit % 8] = BitConverterEx.TestB(uValue, (byte)nBit); } } else { throw new Exception("CS_ECAT_Slave_DIO_Get_Input_Value, " + GetEtherCATErrorCode(uRet)); } //Thread.Sleep(15); //if (Environment.ProcessorCount == 1 || (++_loops % 100) == 0) //{ // Thread.Sleep(1); //} //else //{ // Thread.SpinWait(_iterations); //} } //} }
// Protected implementation of Dispose pattern. protected override void Dispose(bool disposing) { if (disposed) { return; } if (disposing) { // Free any other managed objects here. // } // Free any unmanaged objects here. if (g_nESCExistCards > 0) { foreach (var item in g_uESCCardNoList) { CEtherCAT_DLL.CS_ECAT_Master_Reset(item.Value.CardNo); } CEtherCAT_DLL.CS_ECAT_Master_Close(); g_nESCExistCards = 0; } disposed = true; }
public ushort getDI(ushort g_uESCCardNo, ushort g_uESCNodeID) { ushort _uValue = 0, _SlotNo = 0; g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_DIO_Get_Input_Value(g_uESCCardNo, g_uESCNodeID, _SlotNo, ref _uValue); return(_uValue); }
/// <summary> /// 清除所有DO點狀態 /// </summary> public void ClearAllOutput() { ushort uRet = CEtherCAT_DLL.CS_ECAT_Slave_DIO_Set_Output_Value(dIOPara.CardNo, dIOPara.NodeNo, g_uESCSlotID, 0); if (uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { throw new Exception("CS_ECAT_Slave_DIO_Set_Output_Value, " + GetEtherCATErrorCode(uRet)); } }
public void SetInpuAverageMode(ADCChannel channelNo, ushort averageTimes) { ushort g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_ESC8124_Set_Input_AverageMode(adcPara.CardNo, adcPara.NodeNo, (ushort)channelNo, averageTimes); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { throw new Exception("CS_ECAT_Slave_ESC8124_Set_Input_AverageMode, " + GetEtherCATErrorCode(g_uRet)); } }
public void SetInputEnable(ADCChannel channelNo, bool enable) { ushort g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_R1_EC8124_Set_Input_Enable(adcPara.CardNo, adcPara.NodeNo, (ushort)channelNo, (ushort)(enable ? 1 : 0)); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { throw new Exception("CS_ECAT_Slave_R1_EC8124_Set_Input_Enable, " + GetEtherCATErrorCode(g_uRet)); } }
public void SetInputConvstFreqMode(ADCChannel channelNo, ConvstFreqMode rangeMode) { ushort g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_ESC8124_Set_Input_ConvstFreq_Mode(adcPara.CardNo, adcPara.NodeNo, (ushort)channelNo, (ushort)rangeMode); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { throw new Exception("CS_ECAT_Slave_R1_EC8124_Set_Input_RangeMode, " + GetEtherCATErrorCode(g_uRet)); } }
public void SetOutputValue(DACChannel channelNo, ushort value) { ushort g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_AIO_Set_Output_Value(dacPara.CardNo, dacPara.NodeNo, (ushort)channelNo, value); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { throw new Exception("CS_ECAT_Slave_AIO_Set_Output_Value, " + GetEtherCATErrorCode(g_uRet)); } }
public void SetOutputRangeMode(DACChannel channelNo, RangeMode rangeMode) { ushort g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_R1_EC9144_Set_Output_RangeMode(dacPara.CardNo, dacPara.NodeNo, (ushort)channelNo, (ushort)rangeMode); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { throw new Exception("CS_ECAT_Slave_R1_EC9144_Set_Output_RangeMode, " + GetEtherCATErrorCode(g_uRet)); } }
public ushort MoveP(ushort g_uESCNodeID, ushort g_uConstVel, ushort g_uAccesleration, ushort g_uDeceleration, int g_nTarget) { g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_PP_Start_Move(0, g_uESCNodeID, 0, g_nTarget, g_uConstVel, g_uAccesleration, g_uDeceleration, 1); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { MessageBox.Show("CS_ECAT_Slace_PP_Start_Move, ErrorCode = " + g_uRet.ToString()); } return(g_uRet); }
public string setOnservo(ushort g_uESCCardNo, ushort g_uESCNodeID, ushort _uCheckOnOff) { ushort _g_uESCSlotID = 0; // _uCheckOnOff = 1; CEtherCAT_DLL.CS_ECAT_Slave_Motion_Set_Svon(g_uESCCardNo, g_uESCNodeID, _g_uESCSlotID, _uCheckOnOff); //MessageBox.Show("OK"); return(""); }
public ushort GetInputRangeMode(ADCChannel channelNo) { ushort rangeMode = 0; ushort g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_R1_EC8124_Get_Input_RangeMode(adcPara.CardNo, adcPara.NodeNo, (ushort)channelNo, ref rangeMode); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { throw new Exception("CS_ECAT_Slave_R1_EC8124_Set_Input_RangeMode, " + GetEtherCATErrorCode(g_uRet)); } return(rangeMode); }
public ushort GetInputValue(ADCChannel channelNo) { ushort value = 0; ushort g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_AIO_Get_Input_Value(adcPara.CardNo, adcPara.NodeNo, (ushort)channelNo, ref value); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { throw new Exception("CS_ECAT_Slave_AIO_Get_Input_Value, " + GetEtherCATErrorCode(g_uRet)); } return(value); }
public ushort GetOutputReturnCode(DACChannel channelNo) { ushort returnCode = 0; ushort g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_R1_EC9144_Get_Output_ReturnCode(dacPara.CardNo, dacPara.NodeNo, (ushort)channelNo, ref returnCode); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { throw new Exception("CS_ECAT_Slave_R1_EC9144_Get_Output_ReturnCode, " + GetEtherCATErrorCode(g_uRet)); } return(returnCode); }
public ushort getMdone(ushort NodeID) { g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_Motion_Get_Mdone(0, NodeID, SlotNo, ref StatusMdone); // Mdone = StatusMdone; if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { MessageBox.Show("CS_ECAT_Slave_Motion_Get_Mdone, ErrorCode = " + g_uRet.ToString()); StatusMdone = 1; } return(StatusMdone); }
public int getPosition(ushort g_uESCCardNo, ushort g_uESCNodeID) { int _ngetPos = 0; ushort _g_uESCSlotID = 0; g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_Motion_Get_Position(g_uESCCardNo, g_uESCNodeID, _g_uESCSlotID, ref _ngetPos); // MessageBox.Show(_ngetPos.ToString()); return(_ngetPos); // return _ngetPos.ToString(); }
public ushort setDO(ushort g_uESCCardNo, ushort g_uESCNodeID, ushort BitNum, ushort value) { ushort _SlotNo = 0; g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_DIO_Set_Single_Output_Value(g_uESCCardNo, g_uESCNodeID, _SlotNo, BitNum, value); //MessageBox.Show (g_uRet.ToString()); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { MessageBox.Show("CS_ECAT_Slave_DIO_Set_Single_Output_Value, ErrorCode = " + g_uRet.ToString()); } return(g_uRet); }
public string getAnalog(ushort g_uESCCardNo, ushort g_uESCNodeID, int CH_Index) { int[] g_nModeValue = new int[2]; int[] g_nModeLength = new int[2]; ushort _uValue = 0, uRet = 0, _g_uESCSlotID = 0; int nIndexMode = 0; double _dTempData = 0; uint uRevisionNo = 0; g_nModeValue[0] = -5; //g_nModeValue[1] = -10; g_nModeLength[0] = 10; //g_nModeLength[1] = 20; gRevisionNo = uRevisionNo; _g_uESCSlotID = Convert.ToUInt16(CH_Index); g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_ESC8124_Set_Input_Enable(g_uESCCardNo, g_uESCNodeID, _g_uESCSlotID, 1); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { MessageBox.Show("_ECAT_Slave_ESC8124_Set_Input_Enable, ErrorCode = " + g_uRet.ToString()); } uRet = CEtherCAT_DLL.CS_ECAT_Slave_AIO_Get_Input_Value(g_uESCCardNo, g_uESCNodeID, _g_uESCSlotID, ref _uValue); if (uRet == CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { if (gRevisionNo == 0x100000) { _dTempData = _uValue + 0x8000; if (_dTempData >= 0x10000) { _dTempData -= 0x10000; } } else { _dTempData = _uValue; } _dTempData = g_nModeValue[nIndexMode] + (_dTempData * g_nModeLength[nIndexMode] / 0xFFFF); // double _uPvalue = (2.489 * _dTempData) - 3.370 ; return(_dTempData.ToString("0.###")); } return("AD_FAIL"); }
public ushort setPO(ushort g_uESCCardNo, ushort g_uESCNodeID, uint nTargetVel) { uint uAcceleration = Convert.ToUInt32(5000); uint uDeceleration = Convert.ToUInt32(2000); ushort uRet = CEtherCAT_DLL.CS_ECAT_Slave_PP_Start_Move(g_uESCCardNo, g_uESCNodeID, 0, 300000, nTargetVel, uAcceleration, uDeceleration, 0); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { MessageBox.Show("CS_ECAT_Slave_PP_Start_Move, ErrorCode = " + g_uRet.ToString()); } return(uRet); }
public ushort resetPO(ushort g_uESCCardNo, ushort g_uESCNodeID) { double dTdec; // ushort Status = CEtherCAT_DLL.CS_ECAT_Slave_Motion_Sd_Stop(g_uESCCardNo, g_uAxisNo, g_SlotNo, g_Tdec); dTdec = Convert.ToDouble(1); g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_Motion_Sd_Stop(g_uESCCardNo, g_uESCNodeID, 0, 0); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { MessageBox.Show("_ECAT_Slave_Motion_Sd_Stop, ErrorCode = " + g_uRet.ToString()); } return(g_uRet); }
public ushort getAI(ushort g_uESCNodeID, ushort CH_Index, ref double uValue) { int[] g_nModeValue = new int[2]; int[] g_nModeLength = new int[2]; int nIndexMode = 0; double _dTempData = 0; uint uRevisionNo = 0; g_nModeValue[0] = -5; //g_nModeValue[1] = -10; ushort _uValue = 0; g_nModeLength[0] = 10; //g_nModeLength[1] = 20; gRevisionNo = uRevisionNo; g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_ESC8124_Set_Input_Enable(g_uESCCardNo, g_uESCNodeID, CH_Index, 1); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { MessageBox.Show("_ECAT_Slave_ESC8124_Set_Input_Enable, ErrorCode = " + g_uRet.ToString()); } else { g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_AIO_Get_Input_Value(g_uESCCardNo, g_uESCNodeID, CH_Index, ref _uValue); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { MessageBox.Show("_ECAT_Slave_AIO_Get_Input_Value, ErrorCode = " + g_uRet.ToString()); } else { if (gRevisionNo == 0x100000) { _dTempData = _uValue + 0x8000; if (_dTempData >= 0x10000) { _dTempData -= 0x10000; } } else { _dTempData = _uValue; } } } uValue = _dTempData; return(g_uRet); }
public ushort ToTarget(ushort g_uESCCardNo, ushort g_uESCNodeID, ref ushort Mdone) { if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { MessageBox.Show("_ECAT_Slave_JOG, ErrorCode = " + g_uRet.ToString()); } else { do { g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_Motion_Get_Mdone(g_uESCCardNo, g_uESCNodeID, 0, ref Mdone); } while (Mdone != 0); } return(g_uRet); }
public bool getDI(ushort g_uESCCardNo, ushort g_uESCNodeID, ushort bitNum) { ushort _uValue = 0, _SlotNo = 0; g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_DIO_Get_Input_Value(g_uESCCardNo, g_uESCNodeID, _SlotNo, ref _uValue); if ((_uValue & (0x1 << bitNum)) == (0x1 << bitNum)) { return(true); } else { return(false); } }
public bool getDO(ushort g_uESCCardNo, ushort g_uESCNodeID, ushort bitNum) { ushort _SlotNo = 0, _value = 0; g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_DIO_Get_Single_Output_Value(g_uESCCardNo, g_uESCNodeID, _SlotNo, bitNum, ref _value); // MessageBox.Show(g_uRet.ToString()); if ((_value & (0x1 << bitNum)) == (0x1 << bitNum)) { return(true); } else { return(false); } }
private void InitialCard() { try { g_uRet = CEtherCAT_DLL.CS_ECAT_Master_Open(ref g_nESCExistCards); } catch (Exception ex) { throw new Exception("No EtherCat dll can be found!"); } g_bInitialFlag = false; if (g_nESCExistCards == 0) { throw new Exception("No EtherCat can be found!"); } else { for (ushort uCount = 0; uCount < g_nESCExistCards; uCount++) { ushort uCardNo = 0; g_uRet = CEtherCAT_DLL.CS_ECAT_Master_Get_CardSeq(uCount, ref uCardNo); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { throw new Exception("CS_ECAT_Master_Get_CardSeq, " + GetEtherCATErrorCode(g_uRet)); } else { g_uESCCardNoList.Add(uCount, new CardInfo() { CardNo = uCardNo }); } } EtherCATInitializationForm.GetInstance().SetCardList(g_uESCCardNoList); foreach (var item in g_uESCCardNoList) { g_uRet = CEtherCAT_DLL.CS_ECAT_Master_Initial(item.Value.CardNo); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { throw new Exception("CS_ECAT_Master_Initial, " + GetEtherCATErrorCode(g_uRet)); } } g_bInitialFlag = true; } }
public string initialCard(ushort nCardNumber = 0) { ushort nSeq = 0, g_uRet = 0; { g_uRet = CEtherCAT_DLL.CS_ECAT_Master_Get_CardSeq(nSeq, ref nCardNumber); g_uRet = CEtherCAT_DLL.CS_ECAT_Master_Initial(nCardNumber); if (g_uRet != CEtherCAT_DLL_Err.ERR_ECAT_NO_ERROR) { MessageBox.Show("_ECAT_Master_Initial, ErrorCode = " + g_uRet.ToString()); } } return("INITIAL"); }
public ushort getDI(ushort g_uESCNodeID, ushort bitNum, out bool _bitValue) { ushort _uValue = 0, _SlotNo = 0; g_uRet = CEtherCAT_DLL.CS_ECAT_Slave_DIO_Get_Input_Value(0, g_uESCNodeID, _SlotNo, ref _uValue); if ((_uValue & (0x1 << bitNum)) == (0x1 << bitNum)) { _bitValue = true; } else { _bitValue = false; } return(g_uRet); }