From 2b0112013b1db369a3b026282beaf1794b2eccb3 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 18 May 2017 16:28:53 +0200 Subject: [PATCH] condizionata lettura aree accessorie contatori/bit/memorie alla conf che li prevede... --- MTC_Adapter/MTC_Adapter/AdapterSiemens.cs | 68 +++++++++++++---------- 1 file changed, 39 insertions(+), 29 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterSiemens.cs b/MTC_Adapter/MTC_Adapter/AdapterSiemens.cs index f237c39..f68b2e9 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterSiemens.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterSiemens.cs @@ -417,30 +417,36 @@ namespace MTC_Adapter /// private void getMtzDataFromPlc() { - // recupero i dati di manutenzione dall'area di memoria IN BLOCCO - int memIndex = 822; - uint[] tabDatiMtz = new uint[maintData.Length]; - inizio = DateTime.Now; - SIEMENSMemRW_DWord(R, baseMemDb, memIndex, ref tabDatiMtz); - if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiMtz", tabDatiMtz.Length * 4), DateTime.Now.Subtract(inizio).Ticks); - // decodifico aree memoria secondo tab configurazione - processMaintData(tabDatiMtz, maintData); - // verifica se debba salvare e mostrare dati - checkSavePersDataLayer(); + if (maintData.Length > 0) + { + // recupero i dati di manutenzione dall'area di memoria IN BLOCCO + int memIndex = 822; + uint[] tabDatiMtz = new uint[maintData.Length]; + inizio = DateTime.Now; + SIEMENSMemRW_DWord(R, baseMemDb, memIndex, ref tabDatiMtz); + if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiMtz", tabDatiMtz.Length * 4), DateTime.Now.Subtract(inizio).Ticks); + // decodifico aree memoria secondo tab configurazione + processMaintData(tabDatiMtz, maintData); + // verifica se debba salvare e mostrare dati + checkSavePersDataLayer(); + } } /// /// Gestione lettura dati analogici /// private void getAnalogDataFromPlc() { - // recupero i dati di manutenzione dall'area di memoria IN BLOCCO - int memIndex = 1350; - uint[] tabDatiAnalog = new uint[analogData.Length]; - inizio = DateTime.Now; - SIEMENSMemRW_DWord(R, baseMemDb, memIndex, ref tabDatiAnalog); - if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiAnalog", tabDatiAnalog.Length * 4), DateTime.Now.Subtract(inizio).Ticks); - // decodifico aree memoria secondo tab configurazione - processAnalogData(tabDatiAnalog, analogData); + if (analogData.Length > 0) + { + // recupero i dati di manutenzione dall'area di memoria IN BLOCCO + int memIndex = 1350; + uint[] tabDatiAnalog = new uint[analogData.Length]; + inizio = DateTime.Now; + SIEMENSMemRW_DWord(R, baseMemDb, memIndex, ref tabDatiAnalog); + if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiAnalog", tabDatiAnalog.Length * 4), DateTime.Now.Subtract(inizio).Ticks); + // decodifico aree memoria secondo tab configurazione + processAnalogData(tabDatiAnalog, analogData); + } } /// @@ -448,15 +454,18 @@ namespace MTC_Adapter /// private void getStatusDataFromPlc() { - // recupero i dati di manutenzione dall'area di memoria IN BLOCCO - int memIndex = 1334; - int numByte = 1 + (statusData.Length / 8); - byte[] tabDatiStatus = new byte[numByte]; - inizio = DateTime.Now; - SIEMENSMemRW_Byte(R, baseMemDb, memIndex, ref tabDatiStatus); - if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiStatus", tabDatiStatus.Length), DateTime.Now.Subtract(inizio).Ticks); - // decodifico aree memoria secondo tab configurazione - processStatusData(tabDatiStatus, statusData); + if (statusData.Length > 0) + { + // recupero i dati di manutenzione dall'area di memoria IN BLOCCO + int memIndex = 1334; + int numByte = 1 + (statusData.Length / 8); + byte[] tabDatiStatus = new byte[numByte]; + inizio = DateTime.Now; + SIEMENSMemRW_Byte(R, baseMemDb, memIndex, ref tabDatiStatus); + if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-DatiStatus", tabDatiStatus.Length), DateTime.Now.Subtract(inizio).Ticks); + // decodifico aree memoria secondo tab configurazione + processStatusData(tabDatiStatus, statusData); + } } /// /// Leggo dati globali comuni (x path, assi...) @@ -541,8 +550,9 @@ namespace MTC_Adapter protected override void loadOtherFile() { base.loadOtherFile(); - loadMaintData("R", 14000, 4); - loadStatusData("R", 14512, 1); + loadMaintData("DB1499", 822, 4); + loadStatusData("DB1499", 1334, 1); + loadAnalogData("DB1499", 1350, 1); } /// /// Processing allarmi CNC