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

master
lhiven 2 years ago
parent 5cd8097d99
commit 52c0454fee

@ -27,7 +27,7 @@ namespace Rs.Motion.Base
/// </summary> /// </summary>
public bool IsEtherCat { get; set; } = true; 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; ushort i = 0;
for (; i < outCount; i++) for (; i < outCount; i++)
{ {
ECatIO io = new ECatIO(); ECatIO io = new ECatIO();
io.CardID= cardID;
io.SlaveNo = slaveNo; io.SlaveNo = slaveNo;
io.Offset = 0; io.Offset = 0;
io.Index = i; io.Index = i;
@ -36,6 +37,7 @@ namespace Rs.Motion.GugaoEcat
for (; i < outCount + inCount; i++) for (; i < outCount + inCount; i++)
{ {
ECatIO io = new ECatIO(); ECatIO io = new ECatIO();
io.CardID = cardID;
io.SlaveNo = slaveNo; io.SlaveNo = slaveNo;
io.Offset = 0; io.Offset = 0;
io.Index = i; io.Index = i;

@ -51,7 +51,7 @@ namespace Rs.Motion.GugaoEcat
ioCard.Name = name; ioCard.Name = name;
ioCard.Vender = vender; ioCard.Vender = vender;
ioCard.IsEtherCat = isEthercat; 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); bool suc = XmlSerializerHelper.Instance.Serialize<ECatIOCard>(filename, ioCard);
} }
else else

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

@ -57,7 +57,7 @@ namespace Rs.Motion.GugaoPulse
ioCard.Name = name; ioCard.Name = name;
ioCard.Vender = vender; ioCard.Vender = vender;
ioCard.IsEtherCat = isEthercat; 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); bool suc = XmlSerializerHelper.Instance.Serialize<GLinkIOCard>(filename, ioCard);
} }
else else
@ -78,13 +78,16 @@ namespace Rs.Motion.GugaoPulse
public override ErrorCode Init() public override ErrorCode Init()
{ {
SqliteHelper db = new SqliteHelper(); 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) if(dt!=null&&dt.Rows.Count>0)
{ {
foreach (DataRow row in dt.Rows) 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) if (apiResult != 0)
{ {
return ErrorCode.CardInitFail; return ErrorCode.CardInitFail;
@ -95,9 +98,7 @@ namespace Rs.Motion.GugaoPulse
{ {
return ErrorCode.Fail; 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; IsInitialized = true;

@ -112,6 +112,8 @@ namespace Rs.Motion
foreach (IIO eCatIO in card.DIn) foreach (IIO eCatIO in card.DIn)
{ {
eCatIO.Card = card; eCatIO.Card = card;
if (ioDic.ContainsKey(eCatIO.Name))
continue;
ioDic.Add(eCatIO.Name, eCatIO); 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) public override IIOCard AddIoCard(int cardID,string name,string vender,bool isEthercat,ushort inNum,ushort outNum,int slaveID)
{ {
ZtmIOCard ioCard = new ZtmIOCard(); ZtmIOCard ioCard = new ZtmIOCard();
if (mcDic.ContainsKey((short)cardID))
{
string filename = $"config/motion/io/ztm{cardID}.xml"; string filename = $"config/motion/io/ztm{cardID}.xml";
if (!File.Exists(filename)) if (!File.Exists(filename))
{ {
ioCard.MC = mcDic[(short)cardID]; ioCard.CardID = (ushort)cardID;
//ioCard.MC = mcDic[(short)cardID];
ioCard.Name = name; ioCard.Name = name;
ioCard.Vender = vender; ioCard.Vender = vender;
ioCard.IsEtherCat = isEthercat; ioCard.IsEtherCat = isEthercat;
ioCard.Init(inNum, outNum, (ushort)slaveID); ioCard.Init((short)cardID, inNum, outNum, (ushort)slaveID);
bool suc = XmlSerializerHelper.Instance.Serialize<ZtmIOCard>(filename, ioCard); bool suc = XmlSerializerHelper.Instance.Serialize<ZtmIOCard>(filename, ioCard);
} }
else else
XmlSerializerHelper.Instance.Deserialize<ZtmIOCard>(filename, out ioCard); XmlSerializerHelper.Instance.Deserialize<ZtmIOCard>(filename, out ioCard);
if (mcDic.ContainsKey((short)cardID))
{
if (ioCard != null) if (ioCard != null)
{ {
ioCard.SetMc(mcDic[(short)cardID]); ioCard.SetMc(mcDic[(short)cardID]);
//ztmIOCard.SetMc(0);
//ioCards.Add(ztmIOCard);
//Add(ztmIOCard);
} }
} }
return ioCard; return ioCard;

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

Loading…
Cancel
Save