public override bool ReadIoOutBit(int nIndex) { //输入口 short n = LTSMC.smc_read_outbit(_ConnecNo, (ushort)nIndex); return(n == 0); }
public override bool RelativeMove(int nAxisNo, double nPos, double nSpeed) { //LTSMC.smc_set_pulse_outmode(_ConnecNo, (ushort)nAxisNo, 0);//设置脉冲模式 //LTSMC.smc_set_s_profile(_ConnecNo, (ushort)nAxisNo, 0, 0.1);//设置S段时间(0-0.05s) //LTSMC.smc_set_profile_unit(_ConnecNo, (ushort)nAxisNo, 5, nSpeed, m_MovePrm[nAxisNo].AccM, m_MovePrm[nAxisNo].DccM, 1000);//设置起始速度、运行速度、停止速度、加速时间、减速时间 //LTSMC.smc_set_dec_stop_time(_ConnecNo, (ushort)nAxisNo, m_MovePrm[nAxisNo].DccL);//设置减速停止时间 short ret = 0; switch (nSpeed) { case 0: ret = LTSMC.smc_set_profile_unit(_ConnecNo, (ushort)nAxisNo, 500, m_MovePrm[nAxisNo].VelH, m_MovePrm[nAxisNo].AccH, m_MovePrm[nAxisNo].DccH, 10000); //设置起始速度、运行速度、停止速度、加速时间、减速时间 break; case 1: ret = LTSMC.smc_set_profile_unit(_ConnecNo, (ushort)nAxisNo, 500, m_MovePrm[nAxisNo].VelM, m_MovePrm[nAxisNo].AccM, m_MovePrm[nAxisNo].DccM, 10000); //设置起始速度、运行速度、停止速度、加速时间、减速时间 break; case 2: ret = LTSMC.smc_set_profile_unit(_ConnecNo, (ushort)nAxisNo, 500, m_MovePrm[nAxisNo].VelL, m_MovePrm[nAxisNo].AccL, m_MovePrm[nAxisNo].DccL, 10000); //设置起始速度、运行速度、停止速度、加速时间、减速时间 break; } if (ret != 0) { return(false); } ret = LTSMC.smc_set_dec_stop_time(_ConnecNo, (ushort)nAxisNo, 0.1);//设置减速停止时间 if (ret != 0) { return(false); } LTSMC.smc_pmove_unit(_ConnecNo, (ushort)nAxisNo, nPos, 0);//连续运动 return(true); }
/// <summary> /// 轴当前位置计数器值 /// </summary> /// <param name="mp"></param> /// <returns></returns> public static double GCode_axisLocation(MotionParameters mp) { double location = 0; LTSMC.smc_get_position_unit(_ConnectNo, mp.axis, ref location); return(location); }
private void connect_Click(object sender, EventArgs e) { ushort CardNo = 0; string connect_IP = textBox_IP.Text; Console.WriteLine(connect_IP); short res = LTSMC.smc_board_init(CardNo, 2, connect_IP, 0); if (res != 0) { MessageBox.Show(string.Format("连接控制器失败,错误码:【0】", res), "错误"); } else { timer1.Start(); } LTSMC.smc_set_pulse_outmode(_ConnectNo, 0, 0); //设置脉冲模式 LTSMC.smc_set_pulse_outmode(_ConnectNo, 1, 0); //设置脉冲模式 LTSMC.smc_set_pulse_outmode(_ConnectNo, 2, 0); //设置脉冲模式 LTSMC.smc_set_pulse_outmode(_ConnectNo, 3, 0); //设置脉冲模式 LTSMC.smc_set_pulse_outmode(_ConnectNo, 4, 0); //设置脉冲模式 LTSMC.smc_set_pulse_outmode(_ConnectNo, 5, 0); //设置脉冲模式 Console.WriteLine("abc"); }
public override bool AddBufIo(object objGroup, string strIoName, bool bVal, int nAxisIndexInGroup = 0) { var nIoIndex = IOMgr.GetInstace().GetOutputDic()[strIoName]._IoIndex; LTSMC.smc_conti_write_outbit(_ConnecNo, 0, (ushort)nIoIndex, (ushort)(bVal ? 1 : 0), 0); return(true); }
private void timer1_Tick_1(object sender, EventArgs e) { StringBuilder sb = new StringBuilder(); // double pos = 0.0; LTSMC.smc_get_position_unit(_ConnectNo, 0, ref pos); sb.AppendFormat("X={0},", pos); LTSMC.smc_get_position_unit(_ConnectNo, 1, ref pos); sb.AppendFormat("Y={0},", pos); LTSMC.smc_get_position_unit(_ConnectNo, 2, ref pos); sb.AppendFormat("Z={0},", pos); LTSMC.smc_get_position_unit(_ConnectNo, 3, ref pos); sb.AppendFormat("U={0},", pos); LTSMC.smc_get_position_unit(_ConnectNo, 4, ref pos); sb.AppendFormat("V={0},", pos); LTSMC.smc_get_position_unit(_ConnectNo, 5, ref pos); sb.AppendFormat("W={0},", pos); double speed = 0; LTSMC.smc_read_current_speed_unit(_ConnectNo, 0, ref speed); sb.AppendFormat("Speed={0},", speed); // textBox1.Text = sb.ToString(); Console.WriteLine("789"); }
/// <summary> /// 轴回零运动 /// </summary> public static void GCode_axisReturnToZero(MotionParameters mp) { LTSMC.smc_set_home_pin_logic(_ConnectNo, 0, 0, 0); //设置轴原点低电平有效 LTSMC.smc_set_homemode(_ConnectNo, mp.axis, 0, 1, 1, 0); //设置轴回零模式 LTSMC.smc_set_home_profile_unit(_ConnectNo, mp.axis, 5000, mp.returnToZeroSpeed, mp.accTime, mp.decTime); //设置X轴起始速度、起始速度、运行速度、加速时间、减速时间 LTSMC.smc_home_move(_ConnectNo, mp.axis); //启动回零 }
public override int GetAxisCmdPos(int nAxisNo) { double pos = 0; var ret = LTSMC.smc_get_target_position_unit(_ConnecNo, (ushort)nAxisNo, ref pos); return((int)pos); }
public override long GetMotionIoState(int nAxisNo) { long lStandardIo = 0; uint status = LTSMC.smc_axis_io_status(_ConnecNo, (ushort)nAxisNo); if ((status & 1) == 1) { lStandardIo |= (0x01 << 0); } if ((status & (int)Math.Pow(2, 1)) == (int)Math.Pow(2, 1)) { lStandardIo |= (0x01 << 1); } if ((status & (int)Math.Pow(2, 2)) == (int)Math.Pow(2, 2)) { lStandardIo |= (0x01 << 2); } if ((status & (int)Math.Pow(2, 3)) == (int)Math.Pow(2, 3)) { lStandardIo |= (0x01 << 4); } if (GetServoState(nAxisNo)) { lStandardIo |= (0x01 << 7); } return(lStandardIo); }
/// <summary> /// 读取GCode运行状态 /// </summary> /// <returns></returns> public static ushort GCode_runningState() { ushort state = 0; LTSMC.smc_gcode_state(_ConnectNo, ref state); return(state); }
private void disconnect_Click(object sender, EventArgs e) { ushort CardNo = 0; short res = LTSMC.smc_board_close(CardNo); timer1.Stop(); textBox1.Text = (""); }
/// <summary> /// 读取回零状态 /// </summary> /// <returns></returns> public static ushort GCode_returnToZeroState(MotionParameters mp) { ushort returnToZeroState = 0; LTSMC.smc_get_home_result(_ConnectNo, mp.axis, ref returnToZeroState); return(returnToZeroState); }
private void SB_Stop_Click(object sender, EventArgs e) { ushort CardNo = 0; //卡号 ushort axis = 0; //运动轴号u ushort mode = 0; //停止模式,0;减速停止,1;紧急停止 LTSMC.smc_stop(CardNo, axis, mode); }
public override bool AddBufMove(object objGroup, BufMotionType type, int mode, int nAxisNum, double velHigh, double velLow, double[] Point1, double[] Point2) { if (type == BufMotionType.buf_Arc2dAbsCCW || type == BufMotionType.buf_Arc2dAbsCW) { var ret = LTSMC.smc_conti_arc_move_center_unit(_ConnecNo, 0, 2, axis, new double[] { Point2[0], Point2[1] }, Point1, 0, 0, 1, 1); } return(true); }
private void SB_Clear_Click(object sender, EventArgs e) { LTSMC.smc_set_position_unit(_ConnectNo, 0, 0); //位置清零 LTSMC.smc_set_position_unit(_ConnectNo, 1, 0); //位置清零 LTSMC.smc_set_position_unit(_ConnectNo, 2, 0); //位置清零 LTSMC.smc_set_position_unit(_ConnectNo, 3, 0); //位置清零 LTSMC.smc_set_position_unit(_ConnectNo, 4, 0); //位置清零 LTSMC.smc_set_position_unit(_ConnectNo, 5, 0); //位置清零 }
public override bool Home(int nAxisNo, int nParam) { //LTSMC.smc_set_pulse_outmode(_ConnecNo, (ushort)nAxisNo, 0);//设置脉冲模式 //LTSMC.smc_set_home_pin_logic(_ConnecNo, (ushort)nAxisNo, 0, 0);//设置原点低电平有效 LTSMC.smc_set_home_profile_unit(_ConnecNo, (ushort)nAxisNo, m_HomePrm[nAxisNo].VelL, m_HomePrm[nAxisNo].VelH, m_MovePrm[nAxisNo].AccL, m_MovePrm[nAxisNo].DccL); //设置起始速度、运行速度、停止速度、加速时间、减速时间 LTSMC.smc_set_homemode(_ConnecNo, (ushort)nAxisNo, m_HomePrm[nAxisNo]._bHomeDir ? (ushort)1 : (ushort)0, 1, (ushort)m_HomePrm[nAxisNo]._nHomeMode, 0); //设置回零模式 LTSMC.smc_set_home_position_unit(_ConnecNo, (ushort)nAxisNo, 0, 0); //设置偏移模式 LTSMC.smc_home_move(_ConnecNo, (ushort)nAxisNo); //启动回零 return(true); }
/// <summary> /// 轴初始化 /// </summary> /// <param name=""></param> public static void GCode_axisInitialization() { LTSMC.smc_set_pulse_outmode(_ConnectNo, 0, 1); //设置X脉冲模式 LTSMC.smc_set_pulse_outmode(_ConnectNo, 1, 1); //设置Y脉冲模式 LTSMC.smc_set_pulse_outmode(_ConnectNo, 2, 1); //设置Z脉冲模式 LTSMC.smc_set_pulse_outmode(_ConnectNo, 3, 1); //设置U脉冲模式 LTSMC.smc_set_equiv(_ConnectNo, 0, 62.5); //设置X脉冲当量 LTSMC.smc_set_equiv(_ConnectNo, 1, 32.89); //设置Y脉冲当量 LTSMC.smc_set_equiv(_ConnectNo, 2, 2000); //设置Z脉冲当量 LTSMC.smc_set_equiv(_ConnectNo, 3, 2000); //设置U脉冲当量 }
/// <summary> /// 读取当前文件名 /// </summary> /// <returns></returns> public static string GCode_fileName() { //string pFileNames = @"f:GCode.txt"; byte[] pFileName = BitConverter.GetBytes(0); short fileid = 0; LTSMC.smc_gcode_get_current_file(_ConnectNo, pFileName, ref fileid); string pFileNames = Encoding.Default.GetString(pFileName); return(pFileNames); }
/// <summary> /// 读取GCode运行行号 /// </summary> /// <returns></returns> public static uint GCode_lineNumber() { uint line = 0; byte[] pCurLine = BitConverter.GetBytes(0); //LTSMC.smc_gcode_current_line(_ConnectNo, ref line, pCurLine); LTSMC.smc_gcode_get_current_line(_ConnectNo, ref line, pCurLine); string pCurLine1 = Encoding.Default.GetString(pCurLine); //int length = pCurLine1.Length; return(line); }
public override bool AddAxisToGroup(int[] nAxisarr, ref object groupId) { axis[0] = (ushort)nAxisarr[0]; axis[1] = (ushort)nAxisarr[1]; //LTSMC.smc_conti_set_lookahead_mode(_ConnecNo, 0, 2, 2, 0.1, 1000); LTSMC.smc_set_vector_profile_unit(_ConnecNo, 0, 0, m_MovePrm[nAxisarr[0]].VelM, m_MovePrm[nAxisarr[0]].AccM, m_MovePrm[nAxisarr[0]].DccM, 0 ); LTSMC.smc_conti_set_lookahead_mode(_ConnecNo, 0, 2, 20, 0.1, m_MovePrm[nAxisarr[0]].AccM); var ret = LTSMC.smc_conti_open_list(_ConnecNo, 0, 2, axis); return(true); }
private void SB_Start_Click(object sender, EventArgs e) { ushort CardNo = 0; //卡号 ushort axis = 0; //运动轴号u double start_speed = 0; //启动速度 double speed = 100; //最大运行速度 double stop_speed = 0; //停止速度 double tacc = 0.1; //加速时间 double tdec = 0.1; //减速时间 double s_pare = 0.05; //s形平滑系数 double dist = 10000; //运动距离 LTSMC.smc_set_profile_unit(CardNo, axis, start_speed, speed, tacc, tdec, stop_speed); //设置速度参数 LTSMC.smc_set_s_profile(CardNo, axis, 0, s_pare); //设置S平滑系数 LTSMC.smc_pmove_unit(CardNo, axis, dist, 0); //启动定长运动 Console.WriteLine("123"); // }
/// <summary> /// 读取轴当前位置 /// </summary> /// <returns></returns> public static gAxis GCode_axisCurrentLocation() { double xAxis = 0; double yAxis = 0; double zAxis = 0; double uAxis = 0; LTSMC.smc_get_position_unit(_ConnectNo, 0, ref xAxis); LTSMC.smc_get_position_unit(_ConnectNo, 1, ref yAxis); LTSMC.smc_get_position_unit(_ConnectNo, 2, ref zAxis); LTSMC.smc_get_position_unit(_ConnectNo, 3, ref uAxis); gAxis axis = new gAxis() { uAxis = (int)uAxis, xAxis = (int)xAxis, yAxis = (int)yAxis, zAxis = (int)zAxis }; return(axis); }
/// <summary> /// 链接 /// </summary> /// <returns></returns> public static bool GCode_link() { try { short res = LTSMC.smc_board_init(_ConnectNo, 2, "192.168.5.11", 115200);//连接控制器 if (res != 0) { return(false); } else { return(true); } } catch { return(false); } }
public override bool Open() { _ConnecNo = (ushort)m_nCardIndex; short res = LTSMC.smc_board_init(_ConnecNo, 2, $"192.168.5.{m_nCardIndex}", 115200);//连接控制器 if (res != 0) { return(false); } string str = System.AppDomain.CurrentDomain.BaseDirectory; string strConfigPath = "Motion_" + m_nCardIndex + ".cfg"; strConfigPath = str + strConfigPath; string ext = Path.GetExtension(strConfigPath); ushort type = 0; if (string.Compare(ext, ".bas", true) == 0) { type = 0; } else if (string.Compare(ext, ".g", true) == 0 || string.Compare(ext, ".nc", true) == 0) { type = 1; } else if (string.Compare(ext, ".cfg", true) == 0) { type = 2; } FileStream fs = File.Open(strConfigPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite); StreamReader sr = new StreamReader(fs); str = sr.ReadToEnd(); sr.Close(); fs.Close(); byte[] buffer = Encoding.UTF8.GetBytes(str); byte[] name = Encoding.UTF8.GetBytes(Path.GetFileName(strConfigPath)); LTSMC.smc_download_memfile(_ConnecNo, buffer, (uint)buffer.Length, name, type); m_bOpen = true; return(true); }
public override bool JogMove(int nAxisNo, bool bPositive, int bStart, double nSpeed) { //LTSMC.smc_set_pulse_outmode(_ConnecNo, (ushort)nAxisNo, 0);//设置脉冲模式 //LTSMC.smc_set_s_profile(_ConnecNo, (ushort)nAxisNo, 0, 0.01);//设置S段时间(0-0.05s) short ret = 0; switch (nSpeed) { case 0: ret = LTSMC.smc_set_profile_unit(_ConnecNo, (ushort)nAxisNo, 500, m_MovePrm[nAxisNo].VelH, m_MovePrm[nAxisNo].AccH, m_MovePrm[nAxisNo].DccH, 10000); //设置起始速度、运行速度、停止速度、加速时间、减速时间 break; case 1: ret = LTSMC.smc_set_profile_unit(_ConnecNo, (ushort)nAxisNo, 500, m_MovePrm[nAxisNo].VelM, m_MovePrm[nAxisNo].AccM, m_MovePrm[nAxisNo].DccM, 10000); //设置起始速度、运行速度、停止速度、加速时间、减速时间 break; case 2: ret = LTSMC.smc_set_profile_unit(_ConnecNo, (ushort)nAxisNo, 500, m_MovePrm[nAxisNo].VelL, m_MovePrm[nAxisNo].AccL, m_MovePrm[nAxisNo].DccL, 10000); //设置起始速度、运行速度、停止速度、加速时间、减速时间 break; } LTSMC.smc_set_dec_stop_time(_ConnecNo, (ushort)nAxisNo, m_MovePrm[nAxisNo].DccL); //设置减速停止时间 LTSMC.smc_vmove(_ConnecNo, (ushort)nAxisNo, (ushort)(bPositive ? 1 : 0)); //连续运动 return(true); }
public override bool WriteIoBit(int nIndex, bool bBit) { LTSMC.smc_write_outbit(_ConnecNo, (ushort)nIndex, bBit ? (ushort)0 : (ushort)1); return(true); }
public override bool ReadIOIn(ref int nData) { nData = (int)LTSMC.smc_read_inport(_ConnecNo, 0); return(true); }
/// <summary> /// 文件下载 /// </summary> public static void GCode_fileUpload(FileParameters fp) { LTSMC.smc_download_file(_ConnectNo, fp.fileName, fp.fileNameControl, fp.fileType); }
/// <summary> /// GCode 停止 /// </summary> public static void GCode_stop() { LTSMC.smc_gcode_stop(_ConnectNo); }
/// <summary> /// GCode 暂停 /// </summary> public static void GCode_pause() { LTSMC.smc_gcode_pause(_ConnectNo); }