|
|
|
@@ -205,6 +205,31 @@ namespace CMS_CORE_Library.Fanuc
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public override CmsError NC_GetAvailableLanguages(ref ICollection<CultureInfo> languages)
|
|
|
|
|
{
|
|
|
|
|
try
|
|
|
|
|
{
|
|
|
|
|
foreach(string file in Directory.GetFiles(PLC_MESSAGE_PATH))
|
|
|
|
|
{
|
|
|
|
|
string fileName = Path.GetFileNameWithoutExtension(file);
|
|
|
|
|
|
|
|
|
|
var lang = CultureInfo
|
|
|
|
|
.GetCultures(CultureTypes.NeutralCultures)
|
|
|
|
|
.Where(ci => string.Equals(ci.ThreeLetterISOLanguageName, fileName.Split('_')[1], StringComparison.OrdinalIgnoreCase))
|
|
|
|
|
.FirstOrDefault();
|
|
|
|
|
|
|
|
|
|
if(lang != null)
|
|
|
|
|
languages.Add(lang);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
catch (Exception ex)
|
|
|
|
|
{
|
|
|
|
|
return ManageException(ex);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return NO_ERROR;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#endregion Contructor & global methods
|
|
|
|
|
|
|
|
|
|
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
@@ -227,7 +252,7 @@ namespace CMS_CORE_Library.Fanuc
|
|
|
|
|
// Set the NC Language
|
|
|
|
|
public override CmsError NC_WLanguage(CultureInfo Language)
|
|
|
|
|
{
|
|
|
|
|
// set but 7 to TRUE
|
|
|
|
|
// set bit 7 to TRUE
|
|
|
|
|
byte langToWrite = (byte)(ConvertToNCLanguage(Language, out bool isSpecial) | 128);
|
|
|
|
|
|
|
|
|
|
// write the byte
|
|
|
|
@@ -235,12 +260,30 @@ namespace CMS_CORE_Library.Fanuc
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
// Set reset bit
|
|
|
|
|
bool b = false;
|
|
|
|
|
int n = 50;
|
|
|
|
|
do
|
|
|
|
|
{
|
|
|
|
|
// Wait before read
|
|
|
|
|
Thread.Sleep(100);
|
|
|
|
|
|
|
|
|
|
cmsError = MEM_RWBoolean(R, 0, MEMORY_TYPE.Fanuc_F, 545, 0, ref b);
|
|
|
|
|
// Decrement
|
|
|
|
|
n--;
|
|
|
|
|
} while (!b && n > 0);
|
|
|
|
|
|
|
|
|
|
b = false;
|
|
|
|
|
cmsError = MEM_RWBoolean(W, 0, PARAM_LING_FANUC_W.MemType, PARAM_LING_FANUC_W.Address, 7, ref b);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
// Write if the selected language is special
|
|
|
|
|
cmsError = MEM_RWBoolean(W, 0, SPECIAL_LANGUAGE_BIT.MemType, SPECIAL_LANGUAGE_BIT.Address, SPECIAL_LANGUAGE_BIT.SubAddress, ref isSpecial);
|
|
|
|
|
if (cmsError.IsError())
|
|
|
|
|
return cmsError;
|
|
|
|
|
|
|
|
|
|
return NO_ERROR;
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// Get the NC Serial Number
|
|
|
|
@@ -266,6 +309,7 @@ namespace CMS_CORE_Library.Fanuc
|
|
|
|
|
|
|
|
|
|
SWV = Cnc_SftVersion;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return NO_ERROR;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@@ -1816,7 +1860,7 @@ namespace CMS_CORE_Library.Fanuc
|
|
|
|
|
if (nReturn != 0)
|
|
|
|
|
return GetNcError(nReturn);
|
|
|
|
|
|
|
|
|
|
//If an axis goes out from Process Clear the List
|
|
|
|
|
// If an axis goes out from Process Clear the List
|
|
|
|
|
if (Axes.Count > NumAxes)
|
|
|
|
|
Axes.Clear();
|
|
|
|
|
|
|
|
|
@@ -2063,71 +2107,79 @@ namespace CMS_CORE_Library.Fanuc
|
|
|
|
|
short nReturn = Focas1.cnc_exaxisname(nLibHandle[process - 1], 0, ref numAxesRead, sOdbExAxisName);
|
|
|
|
|
if (nReturn != 0)
|
|
|
|
|
return GetNcError(nReturn);
|
|
|
|
|
|
|
|
|
|
short[] types = new short[]{ 0, 1, 2, 3 };
|
|
|
|
|
|
|
|
|
|
ODBAXDT axisData = new ODBAXDT();
|
|
|
|
|
nReturn = Focas1.cnc_rdaxisdata(nLibHandle[process - 1], 1, types, 4, ref numAxesRead, axisData);
|
|
|
|
|
if (nReturn != 0)
|
|
|
|
|
return GetNcError(nReturn);
|
|
|
|
|
|
|
|
|
|
// Parse data
|
|
|
|
|
if (numAxesRead >= 1)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 1, Name = sOdbExAxisName.axname1, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 1, Name = sOdbExAxisName.axname1, IsSelectable = false, Type = axisData.data1.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 2)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 2, Name = sOdbExAxisName.axname2, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 2, Name = sOdbExAxisName.axname2, IsSelectable = false, Type = axisData.data2.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 3)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 3, Name = sOdbExAxisName.axname3, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 3, Name = sOdbExAxisName.axname3, IsSelectable = false, Type = axisData.data3.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 4)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 4, Name = sOdbExAxisName.axname4, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 4, Name = sOdbExAxisName.axname4, IsSelectable = false, Type = axisData.data4.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 5)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 5, Name = sOdbExAxisName.axname5, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 5, Name = sOdbExAxisName.axname5, IsSelectable = false, Type = axisData.data5.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 6)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 6, Name = sOdbExAxisName.axname6, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 6, Name = sOdbExAxisName.axname6, IsSelectable = false, Type = axisData.data6.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 7)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 7, Name = sOdbExAxisName.axname7, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 7, Name = sOdbExAxisName.axname7, IsSelectable = false, Type = axisData.data7.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 8)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 8, Name = sOdbExAxisName.axname8, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 8, Name = sOdbExAxisName.axname8, IsSelectable = false, Type = axisData.data8.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 9)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 9, Name = sOdbExAxisName.axname9, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 9, Name = sOdbExAxisName.axname9, IsSelectable = false, Type = axisData.data9.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 10)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 10, Name = sOdbExAxisName.axname10, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 10, Name = sOdbExAxisName.axname10, IsSelectable = false, Type = axisData.data10.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 11)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 11, Name = sOdbExAxisName.axname11, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 11, Name = sOdbExAxisName.axname11, IsSelectable = false, Type = axisData.data11.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 12)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 12, Name = sOdbExAxisName.axname12, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 12, Name = sOdbExAxisName.axname12, IsSelectable = false, Type = axisData.data12.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 13)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 13, Name = sOdbExAxisName.axname13, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 13, Name = sOdbExAxisName.axname13, IsSelectable = false, Type = axisData.data13.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 14)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 14, Name = sOdbExAxisName.axname14, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 14, Name = sOdbExAxisName.axname14, IsSelectable = false, Type = axisData.data14.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 15)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 15, Name = sOdbExAxisName.axname15, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 15, Name = sOdbExAxisName.axname15, IsSelectable = false, Type = axisData.data15.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 16)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 16, Name = sOdbExAxisName.axname16, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 16, Name = sOdbExAxisName.axname16, IsSelectable = false, Type = axisData.data16.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 17)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 17, Name = sOdbExAxisName.axname17, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 17, Name = sOdbExAxisName.axname17, IsSelectable = false, Type = axisData.data17.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 18)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 18, Name = sOdbExAxisName.axname18, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 18, Name = sOdbExAxisName.axname18, IsSelectable = false, Type = axisData.data18.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 19)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 19, Name = sOdbExAxisName.axname19, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 19, Name = sOdbExAxisName.axname19, IsSelectable = false, Type = axisData.data19.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 20)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 20, Name = sOdbExAxisName.axname20, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 20, Name = sOdbExAxisName.axname20, IsSelectable = false, Type = axisData.data20.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 21)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 21, Name = sOdbExAxisName.axname21, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 21, Name = sOdbExAxisName.axname21, IsSelectable = false, Type = axisData.data21.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 22)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 22, Name = sOdbExAxisName.axname22, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 22, Name = sOdbExAxisName.axname22, IsSelectable = false, Type = axisData.data22.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 23)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 23, Name = sOdbExAxisName.axname23, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 23, Name = sOdbExAxisName.axname23, IsSelectable = false, Type = axisData.data23.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 24)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 24, Name = sOdbExAxisName.axname24, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 24, Name = sOdbExAxisName.axname24, IsSelectable = false, Type = axisData.data24.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 25)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 25, Name = sOdbExAxisName.axname25, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 25, Name = sOdbExAxisName.axname25, IsSelectable = false, Type = axisData.data25.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 26)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 26, Name = sOdbExAxisName.axname26, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 26, Name = sOdbExAxisName.axname26, IsSelectable = false, Type = axisData.data26.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 27)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 27, Name = sOdbExAxisName.axname27, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 27, Name = sOdbExAxisName.axname27, IsSelectable = false, Type = axisData.data27.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 28)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 28, Name = sOdbExAxisName.axname28, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 28, Name = sOdbExAxisName.axname28, IsSelectable = false, Type = axisData.data28.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 29)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 29, Name = sOdbExAxisName.axname29, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 29, Name = sOdbExAxisName.axname29, IsSelectable = false, Type = axisData.data29.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 30)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 30, Name = sOdbExAxisName.axname30, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 30, Name = sOdbExAxisName.axname30, IsSelectable = false, Type = axisData.data30.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 31)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 31, Name = sOdbExAxisName.axname31, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 31, Name = sOdbExAxisName.axname31, IsSelectable = false, Type = axisData.data31.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
if (numAxesRead >= 32)
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 32, Name = sOdbExAxisName.axname32, IsSelectable = false });
|
|
|
|
|
axesData.Add(new AxisModel() { Id = 32, Name = sOdbExAxisName.axname32, IsSelectable = false, Type = axisData.data32.unit == 2 ? AXIS_TYPE.ROTATING : AXIS_TYPE.LINEAR });
|
|
|
|
|
|
|
|
|
|
axesData = axesData.Where(x => x.Name != "\f").ToList();
|
|
|
|
|
|
|
|
|
|