New Machine number Osai first implementation
This commit is contained in:
@@ -142,6 +142,13 @@ namespace CMS_CORE_Application
|
||||
SelectedProcessData a = new SelectedProcessData();
|
||||
N.PROC_RSelectedProcessData(1, ref a);
|
||||
|
||||
|
||||
long b = 23225061011986;
|
||||
|
||||
N.PLC_WCandy(b);
|
||||
b = 0;
|
||||
N.PLC_RCandy(ref b);
|
||||
|
||||
sw.Stop();
|
||||
Console.WriteLine("TEMPO PER FUNZIONE " + sw.ElapsedMilliseconds);
|
||||
|
||||
|
||||
@@ -1226,10 +1226,11 @@ namespace CMS_CORE_Library.Demo
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public override CmsError PLC_WCandy(int value)
|
||||
public override CmsError PLC_WCandy(long value1)
|
||||
{
|
||||
int newVal = 0;
|
||||
long newVal = 0;
|
||||
|
||||
int value = (int)value1;
|
||||
//Scrivo il dato
|
||||
CmsError cmsError = MEM_RWInteger(W, 0, CANDY_MEM.MemType, CANDY_MEM.Address, ref value);
|
||||
if (cmsError.IsError())
|
||||
@@ -1250,8 +1251,9 @@ namespace CMS_CORE_Library.Demo
|
||||
}
|
||||
}
|
||||
|
||||
public override CmsError PLC_RCandy(ref int value)
|
||||
public override CmsError PLC_RCandy(ref long value1)
|
||||
{
|
||||
int value = (int)value1;
|
||||
CmsError cmsError = MEM_RWInteger(R, 0, CANDY_MEM.MemType, CANDY_MEM.Address, ref value);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
@@ -1470,10 +1470,11 @@ namespace CMS_CORE_Library.Fanuc
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public override CmsError PLC_WCandy(int value)
|
||||
public override CmsError PLC_WCandy(long value1)
|
||||
{
|
||||
int newVal = 0;
|
||||
long newVal = 0;
|
||||
|
||||
int value = (int)value1;
|
||||
//Scrivo il dato
|
||||
CmsError cmsError = MEM_RWInteger(W, 0, CANDY_MEM.MemType, CANDY_MEM.Address, ref value);
|
||||
if (cmsError.IsError())
|
||||
@@ -1493,8 +1494,9 @@ namespace CMS_CORE_Library.Fanuc
|
||||
}
|
||||
}
|
||||
|
||||
public override CmsError PLC_RCandy(ref int value)
|
||||
public override CmsError PLC_RCandy(ref long value1)
|
||||
{
|
||||
int value = (int)value1;
|
||||
CmsError cmsError = MEM_RWInteger(R, 0, CANDY_MEM.MemType, CANDY_MEM.Address, ref value);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
@@ -595,9 +595,9 @@ namespace CMS_CORE_Library
|
||||
|
||||
public abstract CmsError PLC_WResetWorkedTimeMachine(uint time);
|
||||
|
||||
public abstract CmsError PLC_RCandy(ref int value);
|
||||
public abstract CmsError PLC_RCandy(ref long value);
|
||||
|
||||
public abstract CmsError PLC_WCandy(int value);
|
||||
public abstract CmsError PLC_WCandy(long value);
|
||||
|
||||
public abstract CmsError PLC_RExpiredCandy(ref bool value);
|
||||
|
||||
|
||||
@@ -337,12 +337,13 @@ namespace CMS_CORE_Library.Osai
|
||||
MachNumber = mac.ToString();
|
||||
|
||||
// NEW METHOD TO READ MACHINE NUMBER
|
||||
//List<byte> lists = new List<byte>();
|
||||
//cmsError = MEM_RWByteList(R, 0, MATR_MACCH_OSAI.MemType, 4330, 0, 4, ref lists);
|
||||
//if (cmsError.IsError())
|
||||
// return cmsError;
|
||||
//lists.Reverse();
|
||||
//MachNumber = Encoding.ASCII.GetString(lists.ToArray());
|
||||
List<byte> lists = new List<byte>();
|
||||
cmsError = MEM_RWByteList(R, 0, MATR_MACCH_OSAI.MemType, 4330, 0, 4, ref lists);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
lists.Reverse();
|
||||
|
||||
MachNumber = Encoding.ASCII.GetString(lists.ToArray());
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
@@ -1582,35 +1583,53 @@ namespace CMS_CORE_Library.Osai
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public override CmsError PLC_WCandy(int value)
|
||||
public override CmsError PLC_WCandy(long value)
|
||||
{
|
||||
int newVal = 0;
|
||||
|
||||
//Scrivo il dato
|
||||
CmsError cmsError = MEM_RWInteger(W, 0, CANDY_MEM.MemType, CANDY_MEM.Address, ref value);
|
||||
// Long is formed by a integer + word
|
||||
// Write Word
|
||||
ushort word = (ushort)((value & 0xFFFF));
|
||||
CmsError cmsError = MEM_RWWord(W, 0, CANDY_MEM.MemType, CANDY_MEM.Address, ref word);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
int integer = (int)((value & 0xFFFFFFFF0000) >> 16);
|
||||
// Write Integer (+1 is used because osai uses word)
|
||||
cmsError = MEM_RWInteger(W, 0, CANDY_MEM.MemType, CANDY_MEM.Address + 1, ref integer);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
// Rieggo il dato
|
||||
long newVal = 0;
|
||||
cmsError = PLC_RCandy(ref newVal);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
// Se i 2 dati coincidono ritorno OK
|
||||
if (value == newVal)
|
||||
return NO_ERROR;
|
||||
else
|
||||
{
|
||||
//Leggo il dato
|
||||
cmsError = PLC_RCandy(ref newVal);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
//Se i 2 dati coincidono ritorno OK
|
||||
if (value == newVal)
|
||||
return NO_ERROR;
|
||||
else
|
||||
return PLC_NOT_RUNNING_ERROR;
|
||||
|
||||
}
|
||||
return PLC_NOT_RUNNING_ERROR;
|
||||
}
|
||||
|
||||
public override CmsError PLC_RCandy(ref int value)
|
||||
public override CmsError PLC_RCandy(ref long value)
|
||||
{
|
||||
CmsError cmsError = MEM_RWInteger(R, 0, CANDY_MEM.MemType, CANDY_MEM.Address, ref value);
|
||||
// Long is formed by a integer + word
|
||||
|
||||
// Read first int
|
||||
uint firtInt = (uint)value;
|
||||
CmsError cmsError = MEM_RWDWord(R, 0, CANDY_MEM.MemType, CANDY_MEM.Address, ref firtInt);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
// Read word
|
||||
ushort word = 0;
|
||||
cmsError = MEM_RWWord(R, 0, CANDY_MEM.MemType, CANDY_MEM.Address + 2, ref word);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
// Build Long value
|
||||
value = ((long)word << 32) + firtInt;
|
||||
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
|
||||
@@ -1856,10 +1856,11 @@ namespace CMS_CORE_Library.Siemens
|
||||
return NO_ERROR;
|
||||
}
|
||||
|
||||
public override CmsError PLC_WCandy(int value)
|
||||
public override CmsError PLC_WCandy(long value1)
|
||||
{
|
||||
int newVal = 0;
|
||||
long newVal = 0;
|
||||
|
||||
int value = (int)value1;
|
||||
//Scrivo il dato
|
||||
CmsError cmsError = MEM_RWInteger(W, 0, CANDY_MEM.MemType, CANDY_MEM.Address, CANDY_MEM.SubAddress, ref value);
|
||||
if (cmsError.IsError())
|
||||
@@ -1880,8 +1881,9 @@ namespace CMS_CORE_Library.Siemens
|
||||
}
|
||||
}
|
||||
|
||||
public override CmsError PLC_RCandy(ref int value)
|
||||
public override CmsError PLC_RCandy(ref long value1)
|
||||
{
|
||||
int value = (int)value1;
|
||||
CmsError cmsError = MEM_RWInteger(R, 0, CANDY_MEM.MemType, CANDY_MEM.Address, CANDY_MEM.SubAddress, ref value);
|
||||
if (cmsError.IsError())
|
||||
return cmsError;
|
||||
|
||||
Reference in New Issue
Block a user