You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
196 lines
6.0 KiB
C#
196 lines
6.0 KiB
C#
using gts;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.ComponentModel;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
using System.Windows.Forms;
|
|
using static gts.mc_pulse;
|
|
|
|
namespace Gugao.FunTest
|
|
{
|
|
public partial class Form1 : Form
|
|
{
|
|
short cardnum = 1;
|
|
short ret = 0;
|
|
public Form1()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
private void btnOpen_Click(object sender, EventArgs e)
|
|
{
|
|
ret = mc_pulse.GT_Open(cardnum, 0,0);
|
|
AddText($"ret = {ret}");
|
|
if(ret==0)
|
|
{
|
|
ret = mc_pulse.GT_LoadConfig(cardnum, "gugao1.cfg");
|
|
if(ret==0)
|
|
{
|
|
timer1.Enabled = true;
|
|
|
|
//ret = mc_pulse.GT_LmtsOff(cardnum, 3, 0);
|
|
//AddText($"ret = {ret}");
|
|
|
|
mc_pulse.GT_ClrSts(cardnum, short.Parse(cboxAxis.SelectedItem.ToString()), 1);
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
private void btnDisablePlimit_Click(object sender, EventArgs e)
|
|
{
|
|
ret= mc_pulse.GT_LmtsOff(cardnum, short.Parse(cboxAxis.SelectedItem.ToString()), 0);
|
|
AddText($"ret = {ret}");
|
|
}
|
|
|
|
private void AddText(string text)
|
|
{
|
|
txtLog.AppendText(text+"\r\n");
|
|
}
|
|
|
|
private void Form1_Load(object sender, EventArgs e)
|
|
{
|
|
cboxAxis.SelectedIndex = 0;
|
|
}
|
|
|
|
private void timer1_Tick(object sender, EventArgs e)
|
|
{
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ret = mc_pulse.GT_GetSts(cardnum, short.Parse(cboxAxis.SelectedItem.ToString()), out int pSts, 1, out uint pClock);
|
|
if(ret==0)
|
|
{
|
|
if((pSts >> 1 & 0x01)==1)
|
|
{
|
|
btnAlarm.BackColor= Color.Red;
|
|
}
|
|
else
|
|
{
|
|
btnAlarm.BackColor = SystemColors.Window;
|
|
}
|
|
|
|
if ((pSts >> 5 & 0x01) == 1)
|
|
{
|
|
btnPlimitTrigger.BackColor = Color.Red;
|
|
}
|
|
else
|
|
{
|
|
btnPlimitTrigger.BackColor = SystemColors.Window;
|
|
}
|
|
|
|
if ((pSts >> 6 & 0x01) == 1)
|
|
{
|
|
btnNlimitTrigger.BackColor = Color.Red;
|
|
}
|
|
else
|
|
{
|
|
btnNlimitTrigger.BackColor = SystemColors.Window;
|
|
}
|
|
|
|
if ((pSts >> 9 & 0x01) == 1)
|
|
{
|
|
btnServo.BackColor = Color.Red;
|
|
}
|
|
else
|
|
{
|
|
btnServo.BackColor = SystemColors.Window;
|
|
}
|
|
|
|
mc_pulse.GT_GetDi(cardnum, mc_pulse.MC_LIMIT_POSITIVE, out int pValue);
|
|
|
|
int v = ((pValue >> (short.Parse(cboxAxis.SelectedItem.ToString()) - 1)) & 0x01);
|
|
if(v==1)
|
|
{
|
|
btnPlimit.BackColor = Color.Red;
|
|
}
|
|
else
|
|
{
|
|
btnPlimit.BackColor= SystemColors.Window;
|
|
}
|
|
|
|
mc_pulse.GT_GetDi(cardnum, mc_pulse.MC_LIMIT_NEGATIVE, out pValue);
|
|
|
|
v = ((pValue >> (short.Parse(cboxAxis.SelectedItem.ToString()) - 1)) & 0x01);
|
|
if (v == 1)
|
|
{
|
|
btnNlimit.BackColor = Color.Red;
|
|
}
|
|
else
|
|
{
|
|
btnNlimit.BackColor = SystemColors.Window;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
private void btnClear_Click(object sender, EventArgs e)
|
|
{
|
|
mc_pulse.GT_ClrSts(cardnum, short.Parse(cboxAxis.SelectedItem.ToString()),1);
|
|
}
|
|
|
|
private void btnEnablePlimit_Click(object sender, EventArgs e)
|
|
{
|
|
ret = mc_pulse.GT_LmtsOn(cardnum, short.Parse(cboxAxis.SelectedItem.ToString()), 0);
|
|
AddText($"ret = {ret}");
|
|
}
|
|
|
|
private void button3_Click(object sender, EventArgs e)
|
|
{
|
|
short axisID = short.Parse(cboxAxis.SelectedItem.ToString());
|
|
mc_pulse.GT_ZeroPos(cardnum, axisID, 1);
|
|
THomePrm homePrm;
|
|
ret = mc_pulse.GT_GetHomePrm(cardnum, axisID, out homePrm);
|
|
homePrm.mode = 20;
|
|
homePrm.moveDir = -1;
|
|
homePrm.indexDir = -1;
|
|
homePrm.velHigh = 0.5;
|
|
homePrm.velLow = 0.2;
|
|
homePrm.acc = 0.05;
|
|
homePrm.dec = 0.05;
|
|
//homePrm.pad1_1 = 0;
|
|
//homePrm.homeOffset = (int)dfHome_offset;
|
|
homePrm.searchHomeDistance = 0;
|
|
homePrm.searchIndexDistance = 0;
|
|
homePrm.edge = 1;// (short)(Config.HomeOrgLogic == 0 ? 1 : 0);
|
|
ret = mc_pulse.GT_GoHome(cardnum, axisID, ref homePrm);
|
|
|
|
Task.Run(() => {
|
|
while (true)
|
|
{
|
|
mc_pulse.GT_GetHomeStatus(cardnum, axisID, out mc_pulse.THomeStatus pHomeStatus);
|
|
string msg = $"run={pHomeStatus.run},stage={pHomeStatus.stage},err={pHomeStatus.error},capturePos={pHomeStatus.capturePos}";
|
|
Invoke(new Action(() => {
|
|
txtLog.AppendText(msg + "\r\n");
|
|
File.AppendAllText("d://log.txt", $"{msg}\r\n");
|
|
}));
|
|
Thread.Sleep(10);
|
|
if (pHomeStatus.stage == 100)
|
|
break;
|
|
}
|
|
});
|
|
}
|
|
|
|
private void button4_Click(object sender, EventArgs e)
|
|
{
|
|
short axisID = short.Parse(cboxAxis.SelectedItem.ToString());
|
|
mc_pulse.GT_AxisOn(cardnum, axisID);
|
|
}
|
|
|
|
private void button5_Click(object sender, EventArgs e)
|
|
{
|
|
short axisID = short.Parse(cboxAxis.SelectedItem.ToString());
|
|
mc_pulse.GT_AxisOff(cardnum, axisID);
|
|
}
|
|
}
|
|
}
|