一、代码
ushort flibhndl = 0;
short ret = 0;
ret = Focas1.cnc_allclibhndl3("192.168.101.89", 8193, 10, out flibhndl);
if (ret == Focas1.EW_OK)
{
Console.WriteLine($"Connected,handle:{flibhndl}");
Focas1.ODBPOS fos = new Focas1.ODBPOS();
short num = Focas1.MAX_AXIS;
short type = -1; ;
ret = Focas1.cnc_rdposition(flibhndl, type, ref num, fos);
if (ret == Focas1.EW_OK)
{
for (int i = 1; i <= num; i++)
{
var typeOdbPos=typeof(Focas1.ODBPOS);
var filedInfo= typeOdbPos.GetField($"p{i}");
Focas1.POSELMALL p =(Focas1.POSELMALL) filedInfo.GetValue(fos);
Console.WriteLine($"Machine Position:{p.mach.name.ToString()}:{p.mach.data * Math.Pow(10, -p.mach.dec)}");
Console.WriteLine($"Absolute Position:{p.abs.name.ToString()}:{p.abs.data * Math.Pow(10, -p.abs.dec)}");
Console.WriteLine($"Relative Position:{p.rel.name.ToString()}:{p.rel.data * Math.Pow(10, -p.rel.dec)}" );
Console.WriteLine($"Remainder Position:{p.dist.name.ToString()}:{p.dist.data * Math.Pow(10, -p.dist.dec)}");
Console.WriteLine("---------------------------------------------------------------------------------------");
}
}
else
{
Console.WriteLine($"cnc_rdposition failed,ret:{ret}");
}
}
else
{
Console.WriteLine("Can't Connect");
}
Console.ReadLine();
说明
本人专注机床的数据采集和程序传输,致力于机械加工行业的数字化系统开发
以下是自己开发的所支持的机床数据采集源代码类库(部分),