Ejemplo n.º 1
0
        public override bool ReadIoOutBit(int nIndex)
        {
            //输入口
            short n = LTSMC.smc_read_outbit(_ConnecNo, (ushort)nIndex);

            return(n == 0);
        }
Ejemplo n.º 2
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);
        }
Ejemplo n.º 3
0
        /// <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);
        }
Ejemplo n.º 4
0
        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");
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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");
        }
Ejemplo n.º 7
0
 /// <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);                                                                 //启动回零
 }
Ejemplo n.º 8
0
        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);
        }
Ejemplo n.º 9
0
        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);
        }
Ejemplo n.º 10
0
        /// <summary>
        /// 读取GCode运行状态
        /// </summary>
        /// <returns></returns>
        public static ushort GCode_runningState()
        {
            ushort state = 0;

            LTSMC.smc_gcode_state(_ConnectNo, ref state);
            return(state);
        }
Ejemplo n.º 11
0
        private void disconnect_Click(object sender, EventArgs e)
        {
            ushort CardNo = 0;
            short  res    = LTSMC.smc_board_close(CardNo);

            timer1.Stop();
            textBox1.Text = ("");
        }
Ejemplo n.º 12
0
        /// <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);
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
 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);
 }
Ejemplo n.º 15
0
 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); //位置清零
 }
Ejemplo n.º 16
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);
 }
Ejemplo n.º 17
0
 /// <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脉冲当量
 }
Ejemplo n.º 18
0
        /// <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);
        }
Ejemplo n.º 19
0
        /// <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);
        }
Ejemplo n.º 20
0
        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);
        }
Ejemplo n.º 21
0
        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");                                                             //
        }
Ejemplo n.º 22
0
        /// <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);
        }
Ejemplo n.º 23
0
 /// <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);
     }
 }
Ejemplo n.º 24
0
        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);
        }
Ejemplo n.º 25
0
        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);
        }
Ejemplo n.º 26
0
 public override bool WriteIoBit(int nIndex, bool bBit)
 {
     LTSMC.smc_write_outbit(_ConnecNo, (ushort)nIndex, bBit ? (ushort)0 : (ushort)1);
     return(true);
 }
Ejemplo n.º 27
0
 public override bool ReadIOIn(ref int nData)
 {
     nData = (int)LTSMC.smc_read_inport(_ConnecNo, 0);
     return(true);
 }
Ejemplo n.º 28
0
 /// <summary>
 /// 文件下载
 /// </summary>
 public static void GCode_fileUpload(FileParameters fp)
 {
     LTSMC.smc_download_file(_ConnectNo, fp.fileName, fp.fileNameControl, fp.fileType);
 }
Ejemplo n.º 29
0
 /// <summary>
 /// GCode 停止
 /// </summary>
 public static void GCode_stop()
 {
     LTSMC.smc_gcode_stop(_ConnectNo);
 }
Ejemplo n.º 30
0
 /// <summary>
 /// GCode 暂停
 /// </summary>
 public static void GCode_pause()
 {
     LTSMC.smc_gcode_pause(_ConnectNo);
 }