Update x LASCO

This commit is contained in:
Samuele E. Locatelli
2019-11-08 17:28:04 +01:00
parent 9f7a77aa69
commit fb5d5d5bb1
8 changed files with 292 additions and 62 deletions
+22
View File
@@ -2,18 +2,24 @@
"mMapWrite": {
"setArt": {
"name": "setArt",
"description": "Articolo",
"memAddr": "DB1275.DBB96",
"tipoMem": "String",
"index": 4,
"size": 32
},
"setComm": {
"name": "setComm",
"description": "Commessa",
"memAddr": "DB1275.DBB130",
"tipoMem": "String",
"index": 38,
"size": 12
},
"setPzComm": {
"name": "setPzComm",
"description": "Qty",
"memAddr": "DB1275.DBB144",
"tipoMem": "Int",
"index": 52,
"size": 4
@@ -22,6 +28,8 @@
"mMapRead": {
"Power_01": {
"name": "Power_01",
"description": "Potenza_ST_1",
"memAddr": "DB1275.DBB24",
"tipoMem": "Real",
"index": 24,
"size": 4,
@@ -31,6 +39,8 @@
},
"Power_02": {
"name": "Power_02",
"description": "Potenza_ST_2",
"memAddr": "DB1275.DBB28",
"tipoMem": "Real",
"index": 28,
"size": 4,
@@ -40,6 +50,8 @@
},
"TempPirom_01": {
"name": "TempPirom_01",
"description": "Temperatura_Pirometro_1",
"memAddr": "DB1275.DBB40",
"tipoMem": "Real",
"index": 40,
"size": 4,
@@ -49,6 +61,8 @@
},
"TempCool_01": {
"name": "TempCool_01",
"description": "Temperatura_Raffr_1",
"memAddr": "DB1275.DBB56",
"tipoMem": "Real",
"index": 56,
"size": 4,
@@ -58,6 +72,8 @@
},
"PartStatus_01": {
"name": "PartStatus_01",
"description": "Pezzo_Staz_1",
"memAddr": "DB1275.DBB72",
"tipoMem": "Int",
"index": 72,
"size": 2,
@@ -66,6 +82,8 @@
},
"PartStatus_02": {
"name": "PartStatus_02",
"description": "Pezzo_Staz_2",
"memAddr": "DB1275.DBB74",
"tipoMem": "Int",
"index": 74,
"size": 2,
@@ -74,6 +92,8 @@
},
"PartStatus_03": {
"name": "PartStatus_03",
"description": "Pezzo_Staz_3",
"memAddr": "DB1275.DBB76",
"tipoMem": "Int",
"index": 76,
"size": 2,
@@ -82,6 +102,8 @@
},
"PartStatus_04": {
"name": "PartStatus_04",
"description": "Pezzo_Staz_4",
"memAddr": "DB1275.DBB78",
"tipoMem": "Int",
"index": 78,
"size": 2,
+4
View File
@@ -64,6 +64,10 @@ PZCOUNT_MODE=STD.DB1001.DBDW2
DISABLE_PZCOUNT=TRUE
ENABLE_DYN_DATA=TRUE
FORCE_DYN_DATA=TRUE
USE_NEW_EXE_TASK=TRUE
; conf parametri memoria READ/WRITE
PARAM_CONF=VL22.json
TSVC_RamPosition=MAX:10
TSVC_LowerEjectorPosition=MAX:10
TSVC_UpperTool=MAX:10
+84
View File
@@ -0,0 +1,84 @@
{
"mMapWrite": {
"setArt": {
"name": "setArt",
"description": "Articolo",
"memAddr": "DB1002.DBB2",
"tipoMem": "String",
"index": 2,
"size": 22
},
"setComm": {
"name": "setComm",
"description": "Commessa",
"memAddr": "DB1002.DBB24",
"tipoMem": "String",
"index": 24,
"size": 22
},
"setProg": {
"name": "setProg",
"description": "Programma",
"memAddr": "DB1002.DBB46",
"tipoMem": "String",
"index": 46,
"size": 22
}
},
"mMapRead": {
//"RamPosition": {
// "name": "RamPosition",
// "tipoMem": "Int",
// "index": 18,
// "size": 2,
// "func": "MAX",
// "period": 60,
// "factor": 10
//},
//"LowerEjectorPosition": {
// "name": "LowerEjectorPosition",
// "tipoMem": "Int",
// "index": 20,
// "size": 2,
// "func": "MAX",
// "period": 60,
// "factor": 10
//},
//"UpperTool": {
// "name": "UpperTool",
// "tipoMem": "Int",
// "index": 22,
// "size": 2,
// "func": "MAX",
// "period": 60,
// "factor": 10
//},
//"TempMainMotorU": {
// "name": "TempMainMotorU",
// "tipoMem": "Int",
// "index": 24,
// "size": 2,
// "func": "MAX",
// "period": 60,
// "factor": 1
//},
//"TempMainMotorV": {
// "name": "TempMainMotorV",
// "tipoMem": "Int",
// "index": 26,
// "size": 2,
// "func": "MAX",
// "period": 60,
// "factor": 1
//},
//"TempMainMotorW": {
// "name": "TempMainMotorW",
// "tipoMem": "Int",
// "index": 28,
// "size": 2,
// "func": "MAX",
// "period": 60,
// "factor": 1
//}
}
}
+38
View File
@@ -2,18 +2,24 @@
"mMapWrite": {
"setArt": {
"name": "setArt",
"description": "Articolo",
"memAddr": "DB1275.DBB96",
"tipoMem": "String",
"index": 4,
"size": 32
},
"setComm": {
"name": "setComm",
"description": "Commessa",
"memAddr": "DB1275.DBB130",
"tipoMem": "String",
"index": 38,
"size": 12
},
"setPzComm": {
"name": "setPzComm",
"description": "Qty",
"memAddr": "DB1275.DBB144",
"tipoMem": "Int",
"index": 52,
"size": 4
@@ -22,6 +28,8 @@
"mMapRead": {
"Power_01": {
"name": "Power_01",
"description": "Potenza_ST_1",
"memAddr": "DB1275.DBB24",
"tipoMem": "Real",
"index": 24,
"size": 4,
@@ -31,6 +39,8 @@
},
"Power_02": {
"name": "Power_02",
"description": "Potenza_ST_2",
"memAddr": "DB1275.DBB28",
"tipoMem": "Real",
"index": 28,
"size": 4,
@@ -40,6 +50,8 @@
},
"Power_03": {
"name": "Power_03",
"description": "Potenza_ST_3",
"memAddr": "DB1275.DBB32",
"tipoMem": "Real",
"index": 32,
"size": 4,
@@ -49,6 +61,8 @@
},
"Power_04": {
"name": "Power_04",
"description": "Potenza_ST_4",
"memAddr": "DB1275.DBB36",
"tipoMem": "Real",
"index": 36,
"size": 4,
@@ -58,6 +72,8 @@
},
"TempPirom_01": {
"name": "TempPirom_01",
"description": "Temperatura_Pirometro_1",
"memAddr": "DB1275.DBB40",
"tipoMem": "Real",
"index": 40,
"size": 4,
@@ -67,6 +83,8 @@
},
"TempPirom_02": {
"name": "TempPirom_02",
"description": "Temperatura_Pirometro_3",
"memAddr": "DB1275.DBB44",
"tipoMem": "Real",
"index": 44,
"size": 4,
@@ -76,6 +94,8 @@
},
"TempPirom_03": {
"name": "TempPirom_03",
"description": "Temperatura_Pirometro_3",
"memAddr": "DB1275.DBB46",
"tipoMem": "Real",
"index": 48,
"size": 4,
@@ -85,6 +105,8 @@
},
"TempPirom_04": {
"name": "TempPirom_04",
"description": "Temperatura_Pirometro_4",
"memAddr": "DB1275.DBB48",
"tipoMem": "Real",
"index": 52,
"size": 4,
@@ -94,6 +116,8 @@
},
"TempCool_01": {
"name": "TempCool_01",
"description": "Temperatura_Raffr_1",
"memAddr": "DB1275.DBB56",
"tipoMem": "Real",
"index": 56,
"size": 4,
@@ -103,6 +127,8 @@
},
"TempCool_02": {
"name": "TempCool_02",
"description": "Temperatura_Raffr_2",
"memAddr": "DB1275.DBB60",
"tipoMem": "Real",
"index": 60,
"size": 4,
@@ -112,6 +138,8 @@
},
"TempCool_03": {
"name": "TempCool_03",
"description": "Temperatura_Raffr_3",
"memAddr": "DB1275.DBB64",
"tipoMem": "Real",
"index": 64,
"size": 4,
@@ -121,6 +149,8 @@
},
"TempCool_04": {
"name": "TempCool_04",
"description": "Temperatura_Raffr_4",
"memAddr": "DB1275.DBB68",
"tipoMem": "Real",
"index": 68,
"size": 4,
@@ -130,6 +160,8 @@
},
"PartStatus_01": {
"name": "PartStatus_01",
"description": "Pezzo_Staz_1",
"memAddr": "DB1275.DBB72",
"tipoMem": "Int",
"index": 72,
"size": 2,
@@ -138,6 +170,8 @@
},
"PartStatus_02": {
"name": "PartStatus_02",
"description": "Pezzo_Staz_2",
"memAddr": "DB1275.DBB74",
"tipoMem": "Int",
"index": 74,
"size": 2,
@@ -146,6 +180,8 @@
},
"PartStatus_03": {
"name": "PartStatus_03",
"description": "Pezzo_Staz_3",
"memAddr": "DB1275.DBB76",
"tipoMem": "Int",
"index": 76,
"size": 2,
@@ -154,6 +190,8 @@
},
"PartStatus_04": {
"name": "PartStatus_04",
"description": "Pezzo_Staz_4",
"memAddr": "DB1275.DBB78",
"tipoMem": "Int",
"index": 78,
"size": 2,
+5
View File
@@ -244,6 +244,11 @@
<None Include="DATA\CONF\3015.ini">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
<None Include="DATA\CONF\SIMUL_05.json" />
<None Include="DATA\CONF\SIMUL_06.json" />
<None Include="DATA\CONF\SIMUL_07.json" />
<None Include="DATA\CONF\SIMUL_08.json" />
<None Include="DATA\CONF\VL22.json" />
<None Include="DATA\CONF\VL21.json" />
<None Include="DATA\CONF\VL20.json" />
<None Include="DATA\CONF\VL24.json">
+8 -9
View File
@@ -316,18 +316,17 @@ namespace IOB_WIN
try
{
newDisplayData currDispData = new newDisplayData();
StringBuilder sb = new StringBuilder($"----------- Read Data Memory -----------{Environment.NewLine}");
#if false
StringBuilder sb = new StringBuilder();
sb.Append($"B_input --> {(short)B_input}{Environment.NewLine}");
sb.Append($"{baseUtils.binaryForm(B_input)}{Environment.NewLine}");
sb.Append($"{Environment.NewLine}");
sb.Append($"----------- RAW Data Memory -----------{Environment.NewLine}");
int i = 0;
foreach (var item in RawInput)
{
sb.Append($"B{i:00} --> {baseUtils.binaryForm(item)} = {(short)item}");
sb.Append($"B{i:00} --> {baseUtils.binaryForm(item)} = {(short)item}{Environment.NewLine}");
i++;
}
#endif
sb.Append($"B_input --> {(short)B_input}{Environment.NewLine}");
sb.Append($"{baseUtils.binaryForm(B_input)}{Environment.NewLine}");
sb.Append("-------------------------------");
currDispData.currBitmap = sb.ToString();
parentForm.updateFormDisplay(currDispData);
@@ -1793,7 +1792,7 @@ namespace IOB_WIN
string answ = "";
if (cIobConf.optPar.Count > 0)
{
// controllo SE salvare contapezzo
// controllo SE HO il parametro
if (cIobConf.optPar.ContainsKey(key))
{
answ = cIobConf.optPar[key];
@@ -1810,7 +1809,7 @@ namespace IOB_WIN
{
Dictionary<string, string> answ = new Dictionary<string, string>();
// controllo SE keySearch !=""
if (keyStartSearch != "")
if (!string.IsNullOrWhiteSpace(keyStartSearch))
{
if (cIobConf.optPar.Count > 0)
{
+130 -52
View File
@@ -65,6 +65,8 @@ namespace IOB_WIN
protected int counterPlc2Mes = 0;
protected int counterPlc2MesWrote = 0;
protected bool useNewSend = false;
/// <summary>
/// Classe base con i metodi x Siemens
/// </summary>
@@ -74,6 +76,7 @@ namespace IOB_WIN
{
lgInfo("NEW IOB SIEMENS versione LASCO");
lastPLCWatchDog = DateTime.Now.AddMinutes(-1);
useNewSend = string.IsNullOrWhiteSpace(getOptPar("USE_NEW_EXE_TASK")) ? false : true;
// imposto i parametri speciali x calcolo...
var chiaviTSVC = findOptPar("TSVC");
if (chiaviTSVC.Count > 0)
@@ -148,65 +151,140 @@ namespace IOB_WIN
Dictionary<string, string> taskDone = new Dictionary<string, string>();
bool taskOk = false;
string taskVal = "";
// inizio VUOTO
byte[] MemBlock = new byte[parametri.memSizeWrite];
// cerco task specifici: se ho startSetup --> imposto bit DBB701.DBB0.4
foreach (var item in task2exe)
string memAddrWrite = "";
if (task2exe != null)
{
taskOk = false;
taskVal = "";
// converto richiesta in enum...
taskType tName = taskType.nihil;
Enum.TryParse(item.Key, out tName);
// controllo sulla KEY
//!!!FIXME!!! totalmente da rivedere
switch (tName)
// inizio VUOTO
byte[] MemBlock = new byte[parametri.memSizeWrite];
// controllo su OPT_PAR se usare nuovo metodo exe task...
if (useNewSend)
{
case taskType.nihil:
case taskType.fixStopSetup:
case taskType.forceResetPzCount:
case taskType.forceSetPzCount:
case taskType.startSetup:
case taskType.stopSetup:
taskVal = $"taskReq: {tName} | key: {item.Key} | val: {item.Value} | SKIPPED | NO EXEC";
break;
case taskType.setArt:
case taskType.setComm:
case taskType.setProg:
// imposto i valori...
if (currProdData.ContainsKey(item.Key))
// cerco task specifici
foreach (var item in task2exe)
{
taskOk = false;
taskVal = "";
// converto richiesta in enum...
taskType tName = taskType.nihil;
Enum.TryParse(item.Key, out tName);
// controllo sulla KEY
switch (tName)
{
currProdData[item.Key] = item.Value;
case taskType.nihil:
case taskType.fixStopSetup:
case taskType.forceResetPzCount:
case taskType.forceSetPzCount:
case taskType.setProg:
case taskType.startSetup:
case taskType.stopSetup:
taskVal = $"taskReq: {tName} | key: {item.Key} | val: {item.Value} | SKIPPED | NO EXEC";
break;
case taskType.setArt:
case taskType.setComm:
case taskType.setPzComm:
saveProdData(item);
int byteSize = 0;
// recupero dati da memMap... altrimenti NULLA
if (memMap.mMapWrite.ContainsKey(item.Key))
{
dataConf currMem = memMap.mMapWrite[item.Key];
byteSize = currMem.size;
memAddrWrite = currMem.memAddr;
MemBlock = new byte[byteSize];
if (currMem.tipoMem == plcDataType.String)
{
saveStringOnMemBlock(ref MemBlock, item.Key, 0, byteSize, true);
}
else if (currMem.tipoMem == plcDataType.DInt)
{
int valDInt = 0;
int.TryParse(item.Value, out valDInt);
MemBlock = S7.Net.Types.DInt.ToByteArray(valDInt);
}
else if (currMem.tipoMem == plcDataType.Int)
{
short valDInt = 0;
short.TryParse(item.Value, out valDInt);
MemBlock = S7.Net.Types.Int.ToByteArray(valDInt);
}
}
taskVal = item.Value;
break;
case taskType.sendWatchDogMes2Plc:
// processo scrittura BIT su DB150.DBX4.0
MemBlock = new byte[1];
memAddrWrite = "DB1002.DBB0";
// compogo in byte... primo bit è setup/run, ultimo è watchdog
int valore = inSetup ? 1 : 0;
valore += (byte)(counterMes2Plc << 7);
MemBlock[0] = (byte)valore;
taskVal = $"VALUE DB1002.92 --> {counterMes2Plc}";
break;
default:
taskVal = "SKIPPED | NO EXEC";
break;
}
else
// aggiungo task!
taskDone.Add(item.Key, taskVal);
// scrivo comunque!
taskOk = S7WriteBB(ref MemBlock, memAddrWrite);
if (!taskOk)
{
currProdData.Add(item.Key, item.Value);
lgError($"Errore in S7WriteBB durante executeTasks: {item.Key} | {item.Value}");
}
taskVal = item.Value;
break;
case taskType.sendWatchDogMes2Plc:
// compogo in byte... primo bit è setup/run, ultimo è watchdog
int valore = inSetup ? 1 : 0;
valore += (byte)(counterMes2Plc << 7);
MemBlock[0] = (byte)valore;
taskVal = $"VALUE DB1275.92 --> {counterMes2Plc}";
break;
default:
taskVal = "SKIPPED | NO EXEC";
break;
}
}
else
{
// cerco task specifici: se ho startSetup --> imposto bit DBB701.DBB0.4
foreach (var item in task2exe)
{
taskOk = false;
taskVal = "";
// converto richiesta in enum...
taskType tName = taskType.nihil;
Enum.TryParse(item.Key, out tName);
// controllo sulla KEY
switch (tName)
{
case taskType.nihil:
case taskType.fixStopSetup:
case taskType.forceResetPzCount:
case taskType.forceSetPzCount:
case taskType.startSetup:
case taskType.stopSetup:
taskVal = $"taskReq: {tName} | key: {item.Key} | val: {item.Value} | SKIPPED | NO EXEC";
break;
case taskType.setArt:
case taskType.setComm:
case taskType.setProg:
saveProdData(item);
taskVal = item.Value;
break;
case taskType.sendWatchDogMes2Plc:
// compogo in byte... primo bit è setup/run, ultimo è watchdog
int valore = inSetup ? 1 : 0;
valore += (byte)(counterMes2Plc << 7);
MemBlock[0] = (byte)valore;
taskVal = $"VALUE DB1002.92 --> {counterMes2Plc}";
break;
default:
taskVal = "SKIPPED | NO EXEC";
break;
}
// aggiungo task!
taskDone.Add(item.Key, taskVal);
}
// controllo SE HO da scrivere articolo/commessa/programma
saveStringOnMemBlock(ref MemBlock, "setArt", 2, 22, true);
saveStringOnMemBlock(ref MemBlock, "setComm", 24, 22, true);
saveStringOnMemBlock(ref MemBlock, "setProg", 46, 22, true);
// scrivo comunque!
taskOk = S7WriteBB(ref MemBlock);
}
// aggiungo task!
taskDone.Add(item.Key, taskVal);
}
// controllo SE HO da scrivere articolo/commessa/programma
saveStringOnMemBlock(ref MemBlock, "setArt", 2, 20, true);
saveStringOnMemBlock(ref MemBlock, "setComm", 24, 20, true);
saveStringOnMemBlock(ref MemBlock, "setProg", 46, 20, true);
// scrivo comunque!
taskOk = S7WriteBB(ref MemBlock);
return taskDone;
}
@@ -362,7 +440,7 @@ namespace IOB_WIN
* - DBX0.5: SAFETY DOORS
----------------------------------------------------- */
byte mainData = RawInput[2];
byte mainData = RawInput[0];
int byteSignals = 0;
// bit 0 (poweron) imposto a 1 SE connected...
Vendored
+1 -1
View File
@@ -16,7 +16,7 @@ pipeline {
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
script {
withEnv(['NEXT_BUILD_NUMBER=504']) {
withEnv(['NEXT_BUILD_NUMBER=505']) {
// env.versionNumber = VersionNumber(versionNumberString : '2.4.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true)
env.versionNumber = VersionNumber(versionNumberString : '2.4.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.APP_NAME = 'MAPO-IOB-WIN'