IO初始化时增加卡的ID属性

master
lhiven 2 years ago
parent 5cd8097d99
commit 52c0454fee

@ -27,7 +27,7 @@ namespace Rs.Motion.Base
/// </summary>
public bool IsEtherCat { get; set; } = true;
public virtual void Init(ushort inCount, ushort outCount, ushort slaveNo)
public virtual void Init(short cardID,ushort inCount, ushort outCount, ushort slaveNo)
{
}

@ -21,12 +21,13 @@ namespace Rs.Motion.GugaoEcat
}
public override void Init(ushort inCount, ushort outCount, ushort slaveNo)
public override void Init(short cardID,ushort inCount, ushort outCount, ushort slaveNo)
{
ushort i = 0;
for (; i < outCount; i++)
{
ECatIO io = new ECatIO();
io.CardID= cardID;
io.SlaveNo = slaveNo;
io.Offset = 0;
io.Index = i;
@ -36,6 +37,7 @@ namespace Rs.Motion.GugaoEcat
for (; i < outCount + inCount; i++)
{
ECatIO io = new ECatIO();
io.CardID = cardID;
io.SlaveNo = slaveNo;
io.Offset = 0;
io.Index = i;

@ -51,7 +51,7 @@ namespace Rs.Motion.GugaoEcat
ioCard.Name = name;
ioCard.Vender = vender;
ioCard.IsEtherCat = isEthercat;
ioCard.Init(inNum, outNum, (ushort)slaveID);
ioCard.Init((short)cardID,inNum, outNum, (ushort)slaveID);
bool suc = XmlSerializerHelper.Instance.Serialize<ECatIOCard>(filename, ioCard);
}
else

@ -14,11 +14,12 @@ namespace Rs.Motion.GugaoPulse
[XmlInclude(typeof(GLinkIO))]
public class GLinkIOCard : IIOCard
{
public override void Init(ushort inCount, ushort outCount, ushort slaveNo)
public override void Init(short cardID,ushort inCount, ushort outCount, ushort slaveNo)
{
for (ushort i = 0; i < outCount; i++)
{
GLinkIO io = new GLinkIO();
io.CardID = cardID;
io.CardID = (short)CardID;
io.Name = "Out" + i + "_" + slaveNo;
io.Index = i;
@ -27,6 +28,7 @@ namespace Rs.Motion.GugaoPulse
for (ushort i = 0; i < inCount; i++)
{
GLinkIO io = new GLinkIO();
io.CardID = cardID;
io.Card = this;
io.Name = "In" + i + "_" + slaveNo;
io.Index = i;

@ -57,7 +57,7 @@ namespace Rs.Motion.GugaoPulse
ioCard.Name = name;
ioCard.Vender = vender;
ioCard.IsEtherCat = isEthercat;
ioCard.Init(inNum, outNum, (ushort)slaveID);
ioCard.Init((short)cardID,inNum, outNum, (ushort)slaveID);
bool suc = XmlSerializerHelper.Instance.Serialize<GLinkIOCard>(filename, ioCard);
}
else
@ -78,13 +78,16 @@ namespace Rs.Motion.GugaoPulse
public override ErrorCode Init()
{
SqliteHelper db = new SqliteHelper();
DataTable dt = db.GetDataTable("select * from motioncard where vender='gugao' order by id dec");
DataTable dt = db.GetDataTable("select * from motioncard where vender='gugao' order by id desc");
if(dt!=null&&dt.Rows.Count>0)
{
foreach (DataRow row in dt.Rows)
{
ICard card = new GugaoPulseCard(ushort.Parse(row["cardid"].ToString()), 8, $"gugaopulse{row["cardid"]}.xml");
card.Init();
cardDic.Add(ushort.Parse(row["cardid"].ToString()), card);
//打开运动控制卡
apiResult = mc_pulse.GT_Open((short)row["cardid"], 0, 1);
apiResult = mc_pulse.GT_Open(short.Parse(row["cardid"].ToString()), 0, 1);
if (apiResult != 0)
{
return ErrorCode.CardInitFail;
@ -95,9 +98,7 @@ namespace Rs.Motion.GugaoPulse
{
return ErrorCode.Fail;
}
ICard card = new GugaoPulseCard((ushort)row["cardid"], 8, $"gugao{row["cardid"]}.xml");
card.Init();
cardDic.Add((ushort)row["cardid"], card);
}
}
IsInitialized = true;

@ -112,6 +112,8 @@ namespace Rs.Motion
foreach (IIO eCatIO in card.DIn)
{
eCatIO.Card = card;
if (ioDic.ContainsKey(eCatIO.Name))
continue;
ioDic.Add(eCatIO.Name, eCatIO);
}
}

@ -52,26 +52,24 @@ namespace Rs.Motion.GugaoEcat
public override IIOCard AddIoCard(int cardID,string name,string vender,bool isEthercat,ushort inNum,ushort outNum,int slaveID)
{
ZtmIOCard ioCard = new ZtmIOCard();
string filename = $"config/motion/io/ztm{cardID}.xml";
if (!File.Exists(filename))
{
ioCard.CardID = (ushort)cardID;
//ioCard.MC = mcDic[(short)cardID];
ioCard.Name = name;
ioCard.Vender = vender;
ioCard.IsEtherCat = isEthercat;
ioCard.Init((short)cardID, inNum, outNum, (ushort)slaveID);
bool suc = XmlSerializerHelper.Instance.Serialize<ZtmIOCard>(filename, ioCard);
}
else
XmlSerializerHelper.Instance.Deserialize<ZtmIOCard>(filename, out ioCard);
if (mcDic.ContainsKey((short)cardID))
{
string filename = $"config/motion/io/ztm{cardID}.xml";
if (!File.Exists(filename))
{
ioCard.MC = mcDic[(short)cardID];
ioCard.Name = name;
ioCard.Vender = vender;
ioCard.IsEtherCat = isEthercat;
ioCard.Init(inNum, outNum, (ushort)slaveID);
bool suc = XmlSerializerHelper.Instance.Serialize<ZtmIOCard>(filename, ioCard);
}
else
XmlSerializerHelper.Instance.Deserialize<ZtmIOCard>(filename, out ioCard);
if (ioCard != null)
{
ioCard.SetMc(mcDic[(short)cardID]);
//ztmIOCard.SetMc(0);
//ioCards.Add(ztmIOCard);
//Add(ztmIOCard);
}
}
return ioCard;

@ -41,12 +41,13 @@ namespace Rs.Motion.Ztm
((ZtmIO)iO).mc = MC;
}
}
public override void Init(ushort inCount, ushort outCount, ushort slaveNo)
public override void Init(short cardID,ushort inCount, ushort outCount, ushort slaveNo)
{
for (ushort i = 0; i < outCount; i++)
{
ZtmIO io = new ZtmIO();
io.Name = $"Ztm{MC}_Out" + i;
io.CardID = cardID;
io.Name = $"Ztm{cardID}_Out" + i;
io.Index = i;
io.SlaveNo = (ushort)slaveNo;
DOut.Add(io);
@ -54,7 +55,8 @@ namespace Rs.Motion.Ztm
for (ushort i = 0; i < inCount; i++)
{
ZtmIO io = new ZtmIO();
io.Name = $"Ztm{MC}_In" + i;
io.CardID = cardID;
io.Name = $"Ztm{cardID}_In" + i;
io.Index = i;
io.SlaveNo = (ushort)slaveNo;
DIn.Add(io);

Loading…
Cancel
Save