New Machine number Osai first implementation

This commit is contained in:
Lucio Maranta
2020-02-13 11:27:47 +00:00
parent 060fb5001c
commit d2a8d9ae36
6 changed files with 69 additions and 37 deletions
+7
View File
@@ -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);
+5 -3
View File
@@ -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;
+5 -3
View File
@@ -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;
+2 -2
View File
@@ -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);
+45 -26
View File
@@ -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;
}
+5 -3
View File
@@ -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;