From 6700bec68d239ab60e44a05a5c901da2cab8a495 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Tue, 28 Feb 2017 23:18:27 +0100 Subject: [PATCH 01/46] prima modifica con inserimento nuove variabili (da testare) --- MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs | 60 ++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 3 deletions(-) diff --git a/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs b/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs index 6ac924f..b933771 100644 --- a/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs +++ b/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs @@ -35,9 +35,14 @@ namespace SCMCncLib private UInt16 WriteNumber; private UInt16 VAreaByteSize; private UInt16 EOKAreaByteSize; - private UInt16 ETKAreaByteSize; + private UInt16 ETKAreaByteSize; private UInt16 AlarmByteSize; + private UInt16 IOTByteAreaByteSize; + private UInt16 IOTWordAreaByteSize; + private UInt16 IOTDWordAreaByteSize; + private UInt16 IOTStringAreaByteSize; + private string SysLink = ""; private string DefCn = ""; @@ -58,11 +63,24 @@ namespace SCMCncLib private TS_REG EOKAreaAddress; private string ETKAreaAddressName; - private TS_REG ETKAreaAddress; - + private TS_REG ETKAreaAddress; + private string PlcErrAreaAddressName; private TS_REG PlcErrAreaAddress; + + private string IOTByteAreaAddressName; + private TS_REG IOTByteAreaAddress; + + private string IOTWordAreaAddressName; + private TS_REG IOTWordAreaAddress; + + private string IOTDWordAreaAddressName; + private TS_REG IOTDWordAreaAddress; + + private string IOTStringAreaAddressName; + private TS_REG IOTStringAreaAddress; + /// /// Memorie a 4 byte (32 bit) /// @@ -94,6 +112,25 @@ namespace SCMCncLib /// public Byte[] PLC_MemoryAreaAllarmi; + + + /// + /// memorie a 1 byte (8 bit) x area IOT.Byte + /// + public UInt32[] PLC_MemoryAreaIOTByte; + /// + /// memorie a 2 byte (16 bit) x area IOT.Word + /// + public uint[] PLC_MemoryAreaIOTWord; + /// + /// memorie a 4 byte (32 bit) x area IOT.DWord + /// + public UInt32[] PLC_MemoryAreaIOTDWord; + /// + /// memorie stringa x area IOT.String + /// + public UInt32[] PLC_MemoryAreaIOTString; + // esa constants #region ESA_PLC_CONSTANTS private const UInt32 MAX_PATH = 256; @@ -258,6 +295,23 @@ namespace SCMCncLib // leggo da posizione memorie EOK TS_REG iError = read_regbuffer(ref EOKAreaAddress, 60, EOKAreaByteSize, PLC_MemoryAreaEOK); + // 2017.02: modifiche x nuova versione PLC + // leggo intero buffer BYTE + iError = read_regbuffer(ref IOTByteAreaAddress, 0, IOTByteAreaByteSize, PLC_MemoryAreaIOTByte); + + // leggo intero buffer WORD + iError = read_regbuffer(ref IOTWordAreaAddress, 0, IOTWordAreaByteSize, PLC_MemoryAreaIOTWord); + + // leggo intero buffer DWORD + iError = read_regbuffer(ref IOTDWordAreaAddress, 0, IOTDWordAreaByteSize, PLC_MemoryAreaIOTDWord); + + // leggo intero buffer STRING + iError = read_regbuffer(ref IOTStringAreaAddress, 0, IOTStringAreaByteSize, PLC_MemoryAreaIOTString); + + + + + // copio in array a byte... try { From 3185d7a0e01bc47710ec97aeb7e2d65595f9a9e2 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Tue, 28 Feb 2017 23:18:37 +0100 Subject: [PATCH 02/46] refresh su progetto ESA_KVARA --- MTC_Adapter/MTC_Adapter/App.SCM-ESA.config | 5 +- .../MTC_Adapter/DATA/CONF/AlarmList.map | 1301 ++++------------- .../MTC_Adapter/DATA/CONF/EsaKvara.ini | 90 ++ .../MTC_Adapter/DATA/CONF/SCM_prodFile.pro | 6 + MTC_Adapter/MTC_Adapter/Resources/MTCA.ico | Bin 151232 -> 148333 bytes MTC_Adapter/VersGen/VersGen.cs | 4 +- MTC_Adapter/VersGen/VersGen.tt | 4 +- 7 files changed, 379 insertions(+), 1031 deletions(-) create mode 100644 MTC_Adapter/MTC_Adapter/DATA/CONF/EsaKvara.ini create mode 100644 MTC_Adapter/MTC_Adapter/DATA/CONF/SCM_prodFile.pro diff --git a/MTC_Adapter/MTC_Adapter/App.SCM-ESA.config b/MTC_Adapter/MTC_Adapter/App.SCM-ESA.config index 1d3e6e3..a0920a8 100644 --- a/MTC_Adapter/MTC_Adapter/App.SCM-ESA.config +++ b/MTC_Adapter/MTC_Adapter/App.SCM-ESA.config @@ -4,9 +4,10 @@ - + + diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map index 6698345..9c35e40 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map @@ -1,1025 +1,276 @@ -# Commenti con "#", elenco tipo COD_NUM|GRUPPO|LEVEL|DESCRIZIONE completa -000001|PLC|FAULT|[COD 001000] - 334 ERRORE COMUNICAZIONE PROFIBUS -000002|PLC|FAULT|[COD 001001] - 700 TABELLE IN MODIFICA -000003|PLC|FAULT|[COD 001002] - 404 BILANCIAMENTO ASSE Z INSUFFICIENTE -000004|PLC|FAULT|[COD 001003] - 403 SURRISCALDAMENTO ARMADIO ELETTRICO -000005|PLC|FAULT|[COD 001004] - 173 CAMBIARE LA BATTERIA -000006|PLC|FAULT|[COD 001005] - 407 UNO O PIU ASSI IN EXTRA CORSA -000007|PLC|FAULT|[COD 001006] - 406 PULSANTI DI EMERGENZA -000008|PLC|FAULT|[COD 001007] - ... -000009|PLC|FAULT|[COD 001008] - 583 MACCHINA SPENTA -000010|PLC|FAULT|[COD 001009] - 782 RICHIESTA ESECUZIONE TEST DI SICUREZZA -000011|PLC|FAULT|[COD 001010] - 783 INCONSISTENZA SEGNALI DUALCHEK (PARATIA) -000012|PLC|FAULT|[COD 001011] - 784 SOVRACORRENTE MODULI I/O LINK -000013|PLC|FAULT|[COD 001012] - 667 CIRCUITO DI SICUREZZA GUASTO -000014|PLC|FAULT|[COD 001013] - 404 BILANCIAMENTO ASSE W INSUFFICIENTE -000015|PLC|FAULT|[COD 001014] - 584 PORTA DI SICUREZZA AUSILIARIA 1 NON CHIUSA -000016|PLC|FAULT|[COD 001015] - 584 PORTA DI SICUREZZA AUSILIARIA 2 NON CHIUSA -000017|PLC|FAULT|[COD 001016] - 001 HAI VERIFICATO TABELLE UTENSILI ? PREMERE SOFTKEY SI -000018|PLC|FAULT|[COD 001017] - 002 SEI SICURO ? PREMERE SOFTKEY SI -000019|PLC|FAULT|[COD 001018] - 666 MODULO CONTROLLO MANDRINO FERMO NON OK -000020|PLC|FAULT|[COD 001019] - 666 DISPOSITIVO DI SICUREZZA GUASTO -000021|PLC|FAULT|[COD 001020] - 689 STATUS UTENSILE NON OK -000022|PLC|FAULT|[COD 001021] - 688 ERRORE TOOLTABLE - SINCRONISMO DATI -000023|PLC|FAULT|[COD 001022] - 688 ERRORE TOOLTABLE - UTENSILE NON TROVATO -000024|PLC|FAULT|[COD 001023] - 688 ERRORE TOOLTABLE - PASTIGLIA NON TROVATA -000025|PLC|FAULT|[COD 001024] - 688 ERRORE TOOLTABLE - FAMIGLIA NON TROVATA -000026|PLC|FAULT|[COD 001025] - 688 ERRORE TOOLTABLE - MAGAZZINO/POSTO NON TROVATO -000027|PLC|FAULT|[COD 001026] - 688 ERRORE TOOLTABLE - VITA UT. ESAURITA PER FAMIGLIA -000028|PLC|FAULT|[COD 001027] - 688 ERRORE TOOLTABLE - POSTO MAGAZZINO NON TROVATO -000029|PLC|FAULT|[COD 001028] - ... -000030|PLC|FAULT|[COD 001029] - ... -000031|PLC|FAULT|[COD 001030] - ... -000032|PLC|FAULT|[COD 001031] - 146 FIELDBUS KO (375) -000033|PLC|FAULT|[COD 001032] - -000034|PLC|FAULT|[COD 001033] - -000035|PLC|FAULT|[COD 001034] - -000036|PLC|FAULT|[COD 001035] - -000037|PLC|FAULT|[COD 001036] - -000038|PLC|FAULT|[COD 001037] - -000039|PLC|FAULT|[COD 001038] - -000040|PLC|FAULT|[COD 001039] - -000041|PLC|FAULT|[COD 001040] - -000042|PLC|FAULT|[COD 001041] - -000043|PLC|FAULT|[COD 001042] - -000044|PLC|FAULT|[COD 001043] - -000045|PLC|FAULT|[COD 001044] - -000046|PLC|FAULT|[COD 001045] - -000047|PLC|FAULT|[COD 001046] - -000048|PLC|FAULT|[COD 001047] - -000049|PLC|FAULT|[COD 001048] - -000050|PLC|FAULT|[COD 001049] - -000051|PLC|FAULT|[COD 001050] - -000052|PLC|FAULT|[COD 001051] - -000053|PLC|FAULT|[COD 001052] - -000054|PLC|FAULT|[COD 001053] - -000055|PLC|FAULT|[COD 001054] - -000056|PLC|FAULT|[COD 001055] - -000057|PLC|FAULT|[COD 001056] - -000058|PLC|FAULT|[COD 001057] - -000059|PLC|FAULT|[COD 001058] - -000060|PLC|FAULT|[COD 001059] - -000061|PLC|FAULT|[COD 001060] - -000062|PLC|FAULT|[COD 001061] - -000063|PLC|FAULT|[COD 001062] - -000064|PLC|FAULT|[COD 001063] - -000065|PLC|FAULT|[COD 001064] - -000066|PLC|FAULT|[COD 001065] - -000067|PLC|FAULT|[COD 001066] - -000068|PLC|FAULT|[COD 001067] - -000069|PLC|FAULT|[COD 001068] - -000070|PLC|FAULT|[COD 001069] - -000071|PLC|FAULT|[COD 001070] - -000072|PLC|FAULT|[COD 001071] - -000073|PLC|FAULT|[COD 001072] - -000074|PLC|FAULT|[COD 001073] - -000075|PLC|FAULT|[COD 001074] - -000076|PLC|FAULT|[COD 001075] - -000077|PLC|FAULT|[COD 001076] - -000078|PLC|FAULT|[COD 001077] - -000079|PLC|FAULT|[COD 001078] - -000080|PLC|FAULT|[COD 001079] - -000081|PLC|FAULT|[COD 001080] - -000082|PLC|FAULT|[COD 001081] - -000083|PLC|FAULT|[COD 001082] - -000084|PLC|FAULT|[COD 001083] - -000085|PLC|FAULT|[COD 001084] - -000086|PLC|FAULT|[COD 001085] - -000087|PLC|FAULT|[COD 001086] - -000088|PLC|FAULT|[COD 001087] - -000089|PLC|FAULT|[COD 001088] - -000090|PLC|FAULT|[COD 001089] - -000091|PLC|FAULT|[COD 001090] - -000092|PLC|FAULT|[COD 001091] - -000093|PLC|FAULT|[COD 001092] - -000094|PLC|FAULT|[COD 001093] - -000095|PLC|FAULT|[COD 001094] - -000096|PLC|FAULT|[COD 001095] - -000097|PLC|FAULT|[COD 001096] - -000098|PLC|FAULT|[COD 001097] - -000099|PLC|FAULT|[COD 001098] - -000100|PLC|FAULT|[COD 001099] - -000101|PLC|FAULT|[COD 001100] - -000102|PLC|FAULT|[COD 001101] - -000103|PLC|FAULT|[COD 001102] - -000104|PLC|FAULT|[COD 001103] - -000105|PLC|FAULT|[COD 001104] - -000106|PLC|FAULT|[COD 001105] - -000107|PLC|FAULT|[COD 001106] - -000108|PLC|FAULT|[COD 001107] - -000109|PLC|FAULT|[COD 001108] - -000110|PLC|FAULT|[COD 001109] - -000111|PLC|FAULT|[COD 001110] - -000112|PLC|FAULT|[COD 001111] - -000113|PLC|FAULT|[COD 001112] - -000114|PLC|FAULT|[COD 001113] - -000115|PLC|FAULT|[COD 001114] - -000116|PLC|FAULT|[COD 001115] - -000117|PLC|FAULT|[COD 001116] - -000118|PLC|FAULT|[COD 001117] - -000119|PLC|FAULT|[COD 001118] - -000120|PLC|FAULT|[COD 001119] - -000121|PLC|FAULT|[COD 001120] - -000122|PLC|FAULT|[COD 001121] - -000123|PLC|FAULT|[COD 001122] - -000124|PLC|FAULT|[COD 001123] - -000125|PLC|FAULT|[COD 001124] - -000126|PLC|FAULT|[COD 001125] - -000127|PLC|FAULT|[COD 001126] - -000128|PLC|FAULT|[COD 001127] - -000129|PLC|FAULT|[COD 001128] - -000130|PLC|FAULT|[COD 001129] - -000131|PLC|FAULT|[COD 001130] - -000132|PLC|FAULT|[COD 001131] - -000133|PLC|FAULT|[COD 001132] - -000134|PLC|FAULT|[COD 001133] - -000135|PLC|FAULT|[COD 001134] - -000136|PLC|FAULT|[COD 001135] - -000137|PLC|FAULT|[COD 001136] - -000138|PLC|FAULT|[COD 001137] - -000139|PLC|FAULT|[COD 001138] - -000140|PLC|FAULT|[COD 001139] - -000141|PLC|FAULT|[COD 001140] - -000142|PLC|FAULT|[COD 001141] - -000143|PLC|FAULT|[COD 001142] - -000144|PLC|FAULT|[COD 001143] - -000145|PLC|FAULT|[COD 001144] - -000146|PLC|FAULT|[COD 001145] - -000147|PLC|FAULT|[COD 001146] - -000148|PLC|FAULT|[COD 001147] - -000149|PLC|FAULT|[COD 001148] - -000150|PLC|FAULT|[COD 001149] - -000151|PLC|FAULT|[COD 001150] - -000152|PLC|FAULT|[COD 001151] - -000153|PLC|FAULT|[COD 001152] - -000154|PLC|FAULT|[COD 001153] - -000155|PLC|FAULT|[COD 001154] - -000156|PLC|FAULT|[COD 001155] - -000157|PLC|FAULT|[COD 001156] - -000158|PLC|FAULT|[COD 001157] - -000159|PLC|FAULT|[COD 001158] - -000160|PLC|FAULT|[COD 001159] - -000161|PLC|FAULT|[COD 001160] - -000162|PLC|FAULT|[COD 001161] - -000163|PLC|FAULT|[COD 001162] - -000164|PLC|FAULT|[COD 001163] - -000165|PLC|FAULT|[COD 001164] - -000166|PLC|FAULT|[COD 001165] - -000167|PLC|FAULT|[COD 001166] - -000168|PLC|FAULT|[COD 001167] - -000169|PLC|FAULT|[COD 001168] - -000170|PLC|FAULT|[COD 001169] - -000171|PLC|FAULT|[COD 001170] - -000172|PLC|FAULT|[COD 001171] - -000173|PLC|FAULT|[COD 001172] - -000174|PLC|FAULT|[COD 001173] - -000175|PLC|FAULT|[COD 001174] - -000176|PLC|FAULT|[COD 001175] - -000177|PLC|FAULT|[COD 001176] - -000178|PLC|FAULT|[COD 001177] - -000179|PLC|FAULT|[COD 001178] - -000180|PLC|FAULT|[COD 001179] - -000181|PLC|FAULT|[COD 001180] - -000182|PLC|FAULT|[COD 001181] - -000183|PLC|FAULT|[COD 001182] - -000184|PLC|FAULT|[COD 001183] - -000185|PLC|FAULT|[COD 001184] - -000186|PLC|FAULT|[COD 001185] - -000187|PLC|FAULT|[COD 001186] - -000188|PLC|FAULT|[COD 001187] - -000189|PLC|FAULT|[COD 001188] - -000190|PLC|FAULT|[COD 001189] - -000191|PLC|FAULT|[COD 001190] - -000192|PLC|FAULT|[COD 001191] - -000193|PLC|FAULT|[COD 001192] - -000194|PLC|FAULT|[COD 001193] - -000195|PLC|FAULT|[COD 001194] - -000196|PLC|FAULT|[COD 001195] - -000197|PLC|FAULT|[COD 001196] - -000198|PLC|FAULT|[COD 001197] - -000199|PLC|FAULT|[COD 001198] - -000200|PLC|FAULT|[COD 001199] - -000201|PLC|FAULT|[COD 001200] - -000202|PLC|FAULT|[COD 001201] - -000203|PLC|FAULT|[COD 001202] - -000204|PLC|FAULT|[COD 001203] - -000205|PLC|FAULT|[COD 001204] - -000206|PLC|FAULT|[COD 001205] - -000207|PLC|FAULT|[COD 001206] - -000208|PLC|FAULT|[COD 001207] - -000209|PLC|FAULT|[COD 001208] - -000210|PLC|FAULT|[COD 001209] - -000211|PLC|FAULT|[COD 001210] - -000212|PLC|FAULT|[COD 001211] - -000213|PLC|FAULT|[COD 001212] - -000214|PLC|FAULT|[COD 001213] - -000215|PLC|FAULT|[COD 001214] - -000216|PLC|FAULT|[COD 001215] - -000217|PLC|FAULT|[COD 001216] - -000218|PLC|FAULT|[COD 001217] - -000219|PLC|FAULT|[COD 001218] - -000220|PLC|FAULT|[COD 001219] - -000221|PLC|FAULT|[COD 001220] - -000222|PLC|FAULT|[COD 001221] - -000223|PLC|FAULT|[COD 001222] - -000224|PLC|FAULT|[COD 001223] - -000225|PLC|FAULT|[COD 001224] - -000226|PLC|FAULT|[COD 001225] - -000227|PLC|FAULT|[COD 001226] - -000228|PLC|FAULT|[COD 001227] - -000229|PLC|FAULT|[COD 001228] - -000230|PLC|FAULT|[COD 001229] - -000231|PLC|FAULT|[COD 001230] - -000232|PLC|FAULT|[COD 001231] - -000233|PLC|FAULT|[COD 001232] - -000234|PLC|FAULT|[COD 001233] - -000235|PLC|FAULT|[COD 001234] - -000236|PLC|FAULT|[COD 001235] - -000237|PLC|FAULT|[COD 001236] - -000238|PLC|FAULT|[COD 001237] - -000239|PLC|FAULT|[COD 001238] - -000240|PLC|FAULT|[COD 001239] - -000241|PLC|FAULT|[COD 001240] - -000242|PLC|FAULT|[COD 001241] - -000243|PLC|FAULT|[COD 001242] - -000244|PLC|FAULT|[COD 001243] - -000245|PLC|FAULT|[COD 001244] - -000246|PLC|FAULT|[COD 001245] - -000247|PLC|FAULT|[COD 001246] - -000248|PLC|FAULT|[COD 001247] - -000249|PLC|FAULT|[COD 001248] - -000250|PLC|FAULT|[COD 001249] - -000251|PLC|FAULT|[COD 001250] - -000252|PLC|FAULT|[COD 001251] - -000253|PLC|FAULT|[COD 001252] - -000254|PLC|FAULT|[COD 001253] - -000255|PLC|FAULT|[COD 001254] - -000256|PLC|FAULT|[COD 001255] - -000257|PLC|FAULT|[COD 002000] - 444 PRESSIONE LIQUIDO DI RAFFREDDAMENTO INSUFFICIENTE -000258|PLC|FAULT|[COD 002001] - 441 MALFUNZIONAMENTO RAFFREDDAMENTO MANDRINI -000259|PLC|FAULT|[COD 002002] - 276 LIMITI SOFTWARE ASSE X NON ATTUALI -000260|PLC|FAULT|[COD 002003] - 512 CAMBIO ZONA INTERROTTO -000261|PLC|FAULT|[COD 002004] - 346 PARATIA NON IN POSIZIONE -000262|PLC|FAULT|[COD 002005] - 607 PREMERE PRENOTAZIONE CAMBIO ZONA -000263|PLC|FAULT|[COD 002006] - 150 AZIONAMENTI NON ABILITATI -000264|PLC|FAULT|[COD 002007] - 161 COMUNICAZIONE INVERTER IN ERRORE -000265|PLC|FAULT|[COD 002008] - 162 FATAL ERROR INVERTER -000266|PLC|FAULT|[COD 002009] - 398 PRESSIONE ARIA INSUFFICIENTE -000267|PLC|FAULT|[COD 002010] - 400 LUBRIFICAZIONE INEFFICIENTE -000268|PLC|FAULT|[COD 002011] - 460 ASSE B BLOCCATO -000269|PLC|FAULT|[COD 002012] - 458 ASSE B NON BLOCCATO -000270|PLC|FAULT|[COD 002013] - 460 ASSE C BLOCCATO -000271|PLC|FAULT|[COD 002014] - 458 ASSE C NON BLOCCATO -000272|PLC|FAULT|[COD 002015] - 105 MACCHINA IN HOLD -000273|PLC|FAULT|[COD 002016] - 614 PREMERE LA SOFTKEY RIPRISTINO ACCOPPIAMENTO Z-W -000274|PLC|FAULT|[COD 002017] - 593 PROTEZIONI DI SICUREZZA -000275|PLC|FAULT|[COD 002018] - 362 MONTANTE CENTRALE NON IN POSIZIONE -000276|PLC|FAULT|[COD 002019] - 157 SICUREZZE ANTICADUTA ASSE Z NON OK -000277|PLC|FAULT|[COD 002020] - 158 PIOLO ANTICADUTA ASSE Z NON IN POSIZIONE -000278|PLC|FAULT|[COD 002021] - 115 CONTROLLO VELOCITA MANDRINO -000279|PLC|FAULT|[COD 002022] - 135 CONVERTITORE IN BLOCCO -000280|PLC|FAULT|[COD 002023] - 514 PROTEZIONE SUPPORTO LASER NON IN POSIZIONE -000281|PLC|FAULT|[COD 002024] - 561 LASER NON IN POSIZIONE -000282|PLC|FAULT|[COD 002025] - 230 RELE TERMICO POMPA VUOTO 1 -000283|PLC|FAULT|[COD 002026] - 230 RELE TERMICO POMPA VUOTO 2 -000284|PLC|FAULT|[COD 002027] - 200 RELE TERMICO MANDRINO -000285|PLC|FAULT|[COD 002028] - 168 CONVERTITORE NON ABILITATO -000286|PLC|FAULT|[COD 002029] - 333 COMUNICAZIONE VOLANTINO IN ERRORE -000287|PLC|FAULT|[COD 002030] - 390 FUNZIONE T NON PERMESSA -000288|PLC|FAULT|[COD 002031] - 429 UTENSILE IN MANDRINO NON OK -000289|PLC|FAULT|[COD 002032] - 245 PROTEZIONE TERMICA ASSE A -000290|PLC|FAULT|[COD 002033] - 245 PROTEZIONE TERMICA ASSE C -000291|PLC|FAULT|[COD 002034] - 004 VUOI ATTIVARE IL PROGRAMMA? PREMERE LA SOFTKEY SI OPPURE RESET -000292|PLC|FAULT|[COD 002035] - 490 VERIFICA POSIZIONE UTENSILI -000293|PLC|FAULT|[COD 002036] - 522 NUMERO DI GIRI TROPPO ELEVATI -000294|PLC|FAULT|[COD 002037] - 498 CARICO MASSIMO SUL MANDRINO -000295|PLC|FAULT|[COD 002038] - 397 CIRCUITO REFRIGERANTE UTENSILE NON OK -000296|PLC|FAULT|[COD 002039] - 465 UTENSILE ROTTO -000297|PLC|FAULT|[COD 002040] - 559 LASER/TASTATORE IN MANDRINO -000298|PLC|FAULT|[COD 002041] - 572 TASTATORE NON PRONTO -000299|PLC|FAULT|[COD 002042] - 514 PROTEZIONE SUPPORTO TASTATORE NON IN POSIZIONE -000300|PLC|FAULT|[COD 002043] - 561 TASTATORE NON IN POSIZIONE -000301|PLC|FAULT|[COD 002044] - 163 FRENO CONVERTITORE NON OK -000302|PLC|FAULT|[COD 002045] - 572 RADIO PROBE - BATTERIA SCARICA -000303|PLC|FAULT|[COD 002046] - 640 TAVOLE NON IN POSIZIONE CORRETTA -000304|PLC|FAULT|[COD 002047] - 673 ASSE Z NON OK PER CAMBIO TAVOLA -000305|PLC|FAULT|[COD 002048] - 641 CAMBIO TAVOLA INTERROTTO -000306|PLC|FAULT|[COD 002049] - 130 PROBE DEVICE NON OK - DISATTIVARE DRY RUN -000307|PLC|FAULT|[COD 002050] - 276 LIMITI SOFTWARE ASSE C NON ATTUALI -000308|PLC|FAULT|[COD 002051] - 495 AZZERAMENTO ASSI CON UTENSILE NON CONSENTITO -000309|PLC|FAULT|[COD 002052] - 479 PORTELLE ASPIRAZIONE DESTRA NON IN POSIZIONE -000310|PLC|FAULT|[COD 002053] - 479 PORTELLE ASPIRAZIONE SINISTRA NON IN POSIZIONE -000311|PLC|FAULT|[COD 002054] - ... -000312|PLC|FAULT|[COD 002055] - ... -000313|PLC|FAULT|[COD 002056] - ... -000314|PLC|FAULT|[COD 002057] - ... -000315|PLC|FAULT|[COD 002058] - 444 PRESSIONE LIQUIDO DI RAFFREDDAMENTO MOTORI TORQUE INSUFFICIENTE(TORQUE) -000316|PLC|FAULT|[COD 002059] - 672 CIRCUITO LIQUIDO DI RAFFREDDAMENTO MOTORI TORQUE NON OK -000317|PLC|FAULT|[COD 002060] - 265 ASSE X NON IN POSIZIONE PER AZZERAMENTO -000318|PLC|FAULT|[COD 002061] - 265 ASSE Y NON IN POSIZIONE PER AZZERAMENTO -000319|PLC|FAULT|[COD 002062] - 265 ASSE Z NON IN POSIZIONE PER AZZERAMENTO -000320|PLC|FAULT|[COD 002063] - ... -000321|PLC|FAULT|[COD 002064] - 551 CONDIZIONI NON OK PER GRUPPO A FORARE -000322|PLC|FAULT|[COD 002065] - 265 ASSE B NON IN POSIZIONE PER AZZERAMENTO -000323|PLC|FAULT|[COD 002066] - 265 ASSE C NON IN POSIZIONE PER AZZERAMENTO -000324|PLC|FAULT|[COD 002067] - 270 RELE TERMICO GRUPPO DI FORATURA -000325|PLC|FAULT|[COD 002068] - ... -000326|PLC|FAULT|[COD 002069] - ... -000327|PLC|FAULT|[COD 002070] - 105 STOP DA DISPOSITIVO DI MONITORAGGIO -000328|PLC|FAULT|[COD 002071] - ... -000329|PLC|FAULT|[COD 002072] - 551 CONDIZIONI NON OK PER GRUPPO A FORARE -000330|PLC|FAULT|[COD 002073] - 265 ASSE B NON IN POSIZIONE PER AZZERAMENTO -000331|PLC|FAULT|[COD 002074] - 265 ASSE C NON IN POSIZIONE PER AZZERAMENTO -000332|PLC|FAULT|[COD 002075] - 270 RELE TERMICO GRUPPO DI FORATURA -000333|PLC|FAULT|[COD 002076] - ... -000334|PLC|FAULT|[COD 002077] - ... -000335|PLC|FAULT|[COD 002078] - 105 STOP DA DISPOSITIVO DI MONITORAGGIO -000336|PLC|FAULT|[COD 002079] - ... -000337|PLC|FAULT|[COD 002080] - -000338|PLC|FAULT|[COD 002081] - -000339|PLC|FAULT|[COD 002082] - -000340|PLC|FAULT|[COD 002083] - -000341|PLC|FAULT|[COD 002084] - -000342|PLC|FAULT|[COD 002085] - -000343|PLC|FAULT|[COD 002086] - -000344|PLC|FAULT|[COD 002087] - -000345|PLC|FAULT|[COD 002088] - -000346|PLC|FAULT|[COD 002089] - -000347|PLC|FAULT|[COD 002090] - -000348|PLC|FAULT|[COD 002091] - -000349|PLC|FAULT|[COD 002092] - -000350|PLC|FAULT|[COD 002093] - -000351|PLC|FAULT|[COD 002094] - -000352|PLC|FAULT|[COD 002095] - -000353|PLC|FAULT|[COD 002096] - -000354|PLC|FAULT|[COD 000000] - -000355|PLC|FAULT|[COD 000000] - -000356|PLC|FAULT|[COD 000000] - -000357|PLC|FAULT|[COD 000000] - -000358|PLC|FAULT|[COD 000000] - -000359|PLC|FAULT|[COD 000000] - -000360|PLC|FAULT|[COD 000000] - -000361|PLC|FAULT|[COD 000000] - -000362|PLC|FAULT|[COD 000000] - -000363|PLC|FAULT|[COD 000000] - -000364|PLC|FAULT|[COD 000000] - -000365|PLC|FAULT|[COD 000000] - -000366|PLC|FAULT|[COD 000000] - -000367|PLC|FAULT|[COD 000000] - -000368|PLC|FAULT|[COD 000000] - -000369|PLC|FAULT|[COD 002100] - 503 CAMBIO UTENSILE IN CORSO -000370|PLC|FAULT|[COD 002101] - 781 UNO O PIU ASSI SENZA RIFERIMENTO -000371|PLC|FAULT|[COD 002102] - 674 MACCHINA NON IN ZONA DI LAVORO -000372|PLC|FAULT|[COD 002103] - 785 CONSENSO APERTURA PORTE NEGATO -000373|PLC|FAULT|[COD 002104] - 520 FUNZIONE STALL MODE ATTIVA -000374|PLC|FAULT|[COD 002105] - 450 UTENSILE MANDRINO NON BLOCCATO -000375|PLC|FAULT|[COD 002106] - 780 STAZIONE OCCUPATA MAGAZZINO -000376|PLC|FAULT|[COD 002107] - 530 PULSANTIERA ESTERNA ABILITATA -000377|PLC|FAULT|[COD 002108] - 504 CAMBIO UTENSILE INTERROTTO -000378|PLC|FAULT|[COD 002109] - 363 MONTANTE CENTRALE ALTO -000379|PLC|FAULT|[COD 002110] - =--- PREALLARME TERMICO TORQUE A -000380|PLC|FAULT|[COD 002111] - 498 CARICO MASSIMO SUL MANDRINO SUPERATO SOGLIA S1 -000381|PLC|FAULT|[COD 002112] - --- PREALLARME TERMICO TORQUE C -000382|PLC|FAULT|[COD 002113] - 432 UTENSILE NON SGANCIATO -000383|PLC|FAULT|[COD 002114] - 475 CUFFIA ASPIRAZIONE NON IN POSIZIONE -000384|PLC|FAULT|[COD 002115] - 498 CARICO MASSIMO SUL MANDRINO SUPERATO SOGLIA S6 -000385|PLC|FAULT|[COD 002116] - 505 MOVIMENTO CONSENTITO Z+ -000386|PLC|FAULT|[COD 002117] - 545 ASSE Z NON IN POSIZIONE -000387|PLC|FAULT|[COD 002118] - 528 MODALITA PROVA PROGRAMMA ATTIVA -000388|PLC|FAULT|[COD 002119] - 351 MESSAGGI PLC INVIATO SMS -000389|PLC|FAULT|[COD 002120] - 603 INDICARE IL NOME DELL OPERATORE E CAUSA ARRESTO MACCHINA -000390|PLC|FAULT|[COD 002121] - 538 TAVOLA NON POSIZIONATA -000391|PLC|FAULT|[COD 002122] - 595 BARRIERE DI SICUREZZA -000392|PLC|FAULT|[COD 002123] - 689 AVVISO TOOLTABLE - T INTERPRETATA COME MANINA -000393|PLC|FAULT|[COD 002124] - 689 AVVISO TOOLTABLE - T INTERPRETATA COME ID UTENSILE -000394|PLC|FAULT|[COD 002125] - 260 REGOLAZIONE AUTOMATICA FEED OVERRIDE IN CORSO -000395|PLC|FAULT|[COD 002126] - 464 VITA UTENSILE ESAURITA -000396|PLC|FAULT|[COD 002127] - 003 SEI SICURO DI VOLER CAMBIARE ORIGINE ? PREMERE SOFTKEY SI O RESET -000397|PLC|FAULT|[COD 002128] - 305 BLOCCAGGIO A DEPRESSIONE 1 INEFFICIENTE -000398|PLC|FAULT|[COD 002129] - 305 BLOCCAGGIO A DEPRESSIONE 2 INEFFICIENTE -000399|PLC|FAULT|[COD 002130] - 300 BLOCCAGGIO A PRESSIONE 1 INEFFICIENTE -000400|PLC|FAULT|[COD 002131] - 300 BLOCCAGGIO A PRESSIONE 2 INEFFICIENTE -000401|PLC|FAULT|[COD 002132] - 305 BLOCCAGGIO A DEPRESSIONE SUPPLEMENTARE 1 INEFFICIENTE -000402|PLC|FAULT|[COD 002133] - 305 BLOCCAGGIO A DEPRESSIONE SUPPLEMENTARE 2 INEFFICIENTE -000403|PLC|FAULT|[COD 002134] - 584 PORTE DI SICUREZZA 1 NON CHIUSE -000404|PLC|FAULT|[COD 002135] - 584 PORTE DI SICUREZZA 2 NON CHIUSE -000405|PLC|FAULT|[COD 002136] - 406 PULSANTE POWER-OFF PREMUTO -000406|PLC|FAULT|[COD 002137] - 412 AZZERAMENTO AUTOMATICO ASSI IN CORSO -000407|PLC|FAULT|[COD 002138] - 689 AVVISO TOOLTABLE - RICHIESTA CONFERMA ATTREZZAGGIO -000408|PLC|FAULT|[COD 002139] - 700 TABELLE IN MODIFICA -000409|PLC|FAULT|[COD 002140] - 442 MAGAZZINO DISCO MOBILE NON IN POSIZIONE -000410|PLC|FAULT|[COD 002141] - 442 MAGAZZINO PICK-UP 1 NON IN POSIZIONE -000411|PLC|FAULT|[COD 002142] - 442 MAGAZZINO PICK-UP 2 NON IN POSIZIONE -000412|PLC|FAULT|[COD 002143] - 442 MAGAZINO LATERALE 1 NON IN POSIZIONE -000413|PLC|FAULT|[COD 002144] - 442 MAGAZINO LATERALE 2 NON IN POSIZIONE -000414|PLC|FAULT|[COD 002145] - 514 PROTEZIONE MAGAZZINO PICK-UP 1 NON IN POSIZIONE -000415|PLC|FAULT|[COD 002146] - 514 PROTEZIONE MAGAZZINO PICK-UP 2 NON IN POSIZIONE -000416|PLC|FAULT|[COD 002147] - 514 PROTEZIONE MAGAZZINO LATERALE 1 NON IN POSIZIONE -000417|PLC|FAULT|[COD 002148] - 514 PROTEZIONE MAGAZZINO LATERALE 2 NON IN POSIZIONE -000418|PLC|FAULT|[COD 002149] - 334 ERRORE COMUNICAZIONE CANBUS -000419|PLC|FAULT|[COD 002150] - 147 CAMBIO UTENSILE 1 IN ALLARME -000420|PLC|FAULT|[COD 002151] - 160 AZIONAMENTO CAMBIO UTENSILE 1 NON PRONTO -000421|PLC|FAULT|[COD 002152] - 151 AZIONAMENTO CAMBIO UTENSILE 1 NON ALIMENTATO -000422|PLC|FAULT|[COD 002153] - 442 MAGAZZINO UTENSILI DISCO 1 NON IN POSIZIONE -000423|PLC|FAULT|[COD 002154] - 289 ATTREZZAGGIO CAMBIO UTENSILE 1 IN CORSO -000424|PLC|FAULT|[COD 002155] - 584 PORTA DI SICUREZZA MAGAZZINO DISCO 1 NON CHIUSA -000425|PLC|FAULT|[COD 002156] - 514 PROTEZIONE MAGAZZINO DISCO 1 NON IN POSIZIONE -000426|PLC|FAULT|[COD 002157] - 147 CAMBIO UTENSILE 2 IN ALLARME -000427|PLC|FAULT|[COD 002158] - 160 AZIONAMENTO CAMBIO UTENSILE 2 NON PRONTO -000428|PLC|FAULT|[COD 002159] - 151 AZIONAMENTO CAMBIO UTENSILE 2 NON ALIMENTATO -000429|PLC|FAULT|[COD 002160] - 442 MAGAZZINO UTENSILI DISCO 2 NON IN POSIZIONE -000430|PLC|FAULT|[COD 002161] - 289 ATTREZZAGGIO CAMBIO UTENSILE 2 IN CORSO -000431|PLC|FAULT|[COD 002162] - 584 PORTA DI SICUREZZA MAGAZZINO DISCO 2 NON CHIUSA -000432|PLC|FAULT|[COD 002163] - 514 PROTEZIONE MAGAZZINO DISCO 2 NON IN POSIZIONE -000433|PLC|FAULT|[COD 002164] - -000434|PLC|FAULT|[COD 002165] - 550 GRUPPO DI FORATURA NON IN POSIZIONE -000435|PLC|FAULT|[COD 002166] - ... -000436|PLC|FAULT|[COD 002167] - ... -000437|PLC|FAULT|[COD 002168] - ... -000438|PLC|FAULT|[COD 002169] - ... -000439|PLC|FAULT|[COD 002170] - 250 CICLO DI ATTREZZAGGIO AUTOMATICO IN CORSO -000440|PLC|FAULT|[COD 002171] - 251 CICLO DI ATTREZZAGGIO AUTOMATICO INTERROTTO -000441|PLC|FAULT|[COD 002172] - 605 DISPOSITIVO DI REGISTRAZIONE DATI UTENSILI NON IN POSIZIONE -000442|PLC|FAULT|[COD 002173] - ... -000443|PLC|FAULT|[COD 002174] - ... -000444|PLC|FAULT|[COD 002175] - ... -000445|PLC|FAULT|[COD 002176] - 130 DISPOSITIVO MONITORAGGIO NON PRONTO -000446|PLC|FAULT|[COD 002177] - 773 LIMITE 1 MONITORAGGIO NON OK -000447|PLC|FAULT|[COD 002178] - 773 LIMITE 2 MONITORAGGIO NON OK -000448|PLC|FAULT|[COD 002179] - 773 LIMITE 3 MONITORAGGIO NON OK -000449|PLC|FAULT|[COD 002180] - ... -000450|PLC|FAULT|[COD 002181] - -000451|PLC|FAULT|[COD 002182] - -000452|PLC|FAULT|[COD 002183] - -000453|PLC|FAULT|[COD 002184] - -000454|PLC|FAULT|[COD 002185] - -000455|PLC|FAULT|[COD 002186] - -000456|PLC|FAULT|[COD 002187] - -000457|PLC|FAULT|[COD 002188] - -000458|PLC|FAULT|[COD 002189] - -000459|PLC|FAULT|[COD 002190] - -000460|PLC|FAULT|[COD 002191] - -000461|PLC|FAULT|[COD 002192] - -000462|PLC|FAULT|[COD 002193] - -000463|PLC|FAULT|[COD 002194] - -000464|PLC|FAULT|[COD 002195] - -000465|PLC|FAULT|[COD 000000] - -000466|PLC|FAULT|[COD 000000] - -000467|PLC|FAULT|[COD 000000] - -000468|PLC|FAULT|[COD 000000] - -000469|PLC|FAULT|[COD 000000] - -000470|PLC|FAULT|[COD 000000] - -000471|PLC|FAULT|[COD 000000] - -000472|PLC|FAULT|[COD 000000] - -000473|PLC|FAULT|[COD 000000] - -000474|PLC|FAULT|[COD 000000] - -000475|PLC|FAULT|[COD 000000] - -000476|PLC|FAULT|[COD 000000] - -000477|PLC|FAULT|[COD 000000] - -000478|PLC|FAULT|[COD 000000] - -000479|PLC|FAULT|[COD 000000] - -000480|PLC|FAULT|[COD 000000] - -000481|PLC|FAULT|[COD 000000] - -000482|PLC|FAULT|[COD 000000] - -000483|PLC|FAULT|[COD 000000] - -000484|PLC|FAULT|[COD 000000] - -000485|PLC|FAULT|[COD 000000] - -000486|PLC|FAULT|[COD 000000] - -000487|PLC|FAULT|[COD 000000] - -000488|PLC|FAULT|[COD 000000] - -000489|PLC|FAULT|[COD 000000] - -000490|PLC|FAULT|[COD 000000] - -000491|PLC|FAULT|[COD 000000] - -000492|PLC|FAULT|[COD 000000] - -000493|PLC|FAULT|[COD 000000] - -000494|PLC|FAULT|[COD 000000] - -000495|PLC|FAULT|[COD 000000] - -000496|PLC|FAULT|[COD 000000] - -000497|PLC|FAULT|[COD 000000] - -000498|PLC|FAULT|[COD 000000] - -000499|PLC|FAULT|[COD 000000] - -000500|PLC|FAULT|[COD 000000] - -000501|PLC|FAULT|[COD 000000] - -000502|PLC|FAULT|[COD 000000] - -000503|PLC|FAULT|[COD 000000] - -000504|PLC|FAULT|[COD 000000] - -000505|PLC|FAULT|[COD 000000] - -000506|PLC|FAULT|[COD 000000] - -000507|PLC|FAULT|[COD 000000] - -000508|PLC|FAULT|[COD 000000] - -000509|PLC|FAULT|[COD 000000] - -000510|PLC|FAULT|[COD 000000] - -000511|PLC|FAULT|[COD 000000] - -000512|PLC|FAULT|[COD 000000] - -000513|PLC|FAULT|[COD 000000] - -000514|PLC|FAULT|[COD 000000] - -000515|PLC|FAULT|[COD 000000] - -000516|PLC|FAULT|[COD 000000] - -000517|PLC|FAULT|[COD 000000] - -000518|PLC|FAULT|[COD 000000] - -000519|PLC|FAULT|[COD 000000] - -000520|PLC|FAULT|[COD 000000] - -000521|PLC|FAULT|[COD 000000] - -000522|PLC|FAULT|[COD 000000] - -000523|PLC|FAULT|[COD 000000] - -000524|PLC|FAULT|[COD 000000] - -000525|PLC|FAULT|[COD 000000] - -000526|PLC|FAULT|[COD 000000] - -000527|PLC|FAULT|[COD 000000] - -000528|PLC|FAULT|[COD 000000] - -000529|PLC|FAULT|[COD 000000] - -000530|PLC|FAULT|[COD 000000] - -000531|PLC|FAULT|[COD 000000] - -000532|PLC|FAULT|[COD 000000] - -000533|PLC|FAULT|[COD 000000] - -000534|PLC|FAULT|[COD 000000] - -000535|PLC|FAULT|[COD 000000] - -000536|PLC|FAULT|[COD 000000] - -000537|PLC|FAULT|[COD 000000] - -000538|PLC|FAULT|[COD 000000] - -000539|PLC|FAULT|[COD 000000] - -000540|PLC|FAULT|[COD 000000] - -000541|PLC|FAULT|[COD 000000] - -000542|PLC|FAULT|[COD 000000] - -000543|PLC|FAULT|[COD 000000] - -000544|PLC|FAULT|[COD 000000] - -000545|PLC|FAULT|[COD 000000] - -000546|PLC|FAULT|[COD 000000] - -000547|PLC|FAULT|[COD 000000] - -000548|PLC|FAULT|[COD 000000] - -000549|PLC|FAULT|[COD 000000] - -000550|PLC|FAULT|[COD 000000] - -000551|PLC|FAULT|[COD 000000] - -000552|PLC|FAULT|[COD 000000] - -000553|PLC|FAULT|[COD 000000] - -000554|PLC|FAULT|[COD 000000] - -000555|PLC|FAULT|[COD 000000] - -000556|PLC|FAULT|[COD 000000] - -000557|PLC|FAULT|[COD 000000] - -000558|PLC|FAULT|[COD 000000] - -000559|PLC|FAULT|[COD 000000] - -000560|PLC|FAULT|[COD 000000] - -000561|PLC|FAULT|[COD 000000] - -000562|PLC|FAULT|[COD 000000] - -000563|PLC|FAULT|[COD 000000] - -000564|PLC|FAULT|[COD 000000] - -000565|PLC|FAULT|[COD 000000] - -000566|PLC|FAULT|[COD 000000] - -000567|PLC|FAULT|[COD 000000] - -000568|PLC|FAULT|[COD 000000] - -000569|PLC|FAULT|[COD 000000] - -000570|PLC|FAULT|[COD 000000] - -000571|PLC|FAULT|[COD 000000] - -000572|PLC|FAULT|[COD 000000] - -000573|PLC|FAULT|[COD 000000] - -000574|PLC|FAULT|[COD 000000] - -000575|PLC|FAULT|[COD 000000] - -000576|PLC|FAULT|[COD 000000] - -000577|PLC|FAULT|[COD 000000] - -000578|PLC|FAULT|[COD 000000] - -000579|PLC|FAULT|[COD 000000] - -000580|PLC|FAULT|[COD 000000] - -000581|PLC|FAULT|[COD 000000] - -000582|PLC|FAULT|[COD 000000] - -000583|PLC|FAULT|[COD 000000] - -000584|PLC|FAULT|[COD 000000] - -000585|PLC|FAULT|[COD 000000] - -000586|PLC|FAULT|[COD 000000] - -000587|PLC|FAULT|[COD 000000] - -000588|PLC|FAULT|[COD 000000] - -000589|PLC|FAULT|[COD 000000] - -000590|PLC|FAULT|[COD 000000] - -000591|PLC|FAULT|[COD 000000] - -000592|PLC|FAULT|[COD 000000] - -000593|PLC|FAULT|[COD 000000] - -000594|PLC|FAULT|[COD 000000] - -000595|PLC|FAULT|[COD 000000] - -000596|PLC|FAULT|[COD 000000] - -000597|PLC|FAULT|[COD 000000] - -000598|PLC|FAULT|[COD 000000] - -000599|PLC|FAULT|[COD 000000] - -000600|PLC|FAULT|[COD 000000] - -000601|PLC|FAULT|[COD 000000] - -000602|PLC|FAULT|[COD 000000] - -000603|PLC|FAULT|[COD 000000] - -000604|PLC|FAULT|[COD 000000] - -000605|PLC|FAULT|[COD 000000] - -000606|PLC|FAULT|[COD 000000] - -000607|PLC|FAULT|[COD 000000] - -000608|PLC|FAULT|[COD 000000] - -000609|PLC|FAULT|[COD 000000] - -000610|PLC|FAULT|[COD 000000] - -000611|PLC|FAULT|[COD 000000] - -000612|PLC|FAULT|[COD 000000] - -000613|PLC|FAULT|[COD 000000] - -000614|PLC|FAULT|[COD 000000] - -000615|PLC|FAULT|[COD 000000] - -000616|PLC|FAULT|[COD 000000] - -000617|PLC|FAULT|[COD 000000] - -000618|PLC|FAULT|[COD 000000] - -000619|PLC|FAULT|[COD 000000] - -000620|PLC|FAULT|[COD 000000] - -000621|PLC|FAULT|[COD 000000] - -000622|PLC|FAULT|[COD 000000] - -000623|PLC|FAULT|[COD 000000] - -000624|PLC|FAULT|[COD 000000] - -000625|PLC|FAULT|[COD 000000] - -000626|PLC|FAULT|[COD 000000] - -000627|PLC|FAULT|[COD 000000] - -000628|PLC|FAULT|[COD 000000] - -000629|PLC|FAULT|[COD 000000] - -000630|PLC|FAULT|[COD 000000] - -000631|PLC|FAULT|[COD 000000] - -000632|PLC|FAULT|[COD 000000] - -000633|PLC|FAULT|[COD 000000] - -000634|PLC|FAULT|[COD 000000] - -000635|PLC|FAULT|[COD 000000] - -000636|PLC|FAULT|[COD 000000] - -000637|PLC|FAULT|[COD 000000] - -000638|PLC|FAULT|[COD 000000] - -000639|PLC|FAULT|[COD 000000] - -000640|PLC|FAULT|[COD 000000] - -000641|PLC|FAULT|[COD 000000] - -000642|PLC|FAULT|[COD 000000] - -000643|PLC|FAULT|[COD 000000] - -000644|PLC|FAULT|[COD 000000] - -000645|PLC|FAULT|[COD 000000] - -000646|PLC|FAULT|[COD 000000] - -000647|PLC|FAULT|[COD 000000] - -000648|PLC|FAULT|[COD 000000] - -000649|PLC|FAULT|[COD 000000] - -000650|PLC|FAULT|[COD 000000] - -000651|PLC|FAULT|[COD 000000] - -000652|PLC|FAULT|[COD 000000] - -000653|PLC|FAULT|[COD 000000] - -000654|PLC|FAULT|[COD 000000] - -000655|PLC|FAULT|[COD 000000] - -000656|PLC|FAULT|[COD 000000] - -000657|PLC|FAULT|[COD 000000] - -000658|PLC|FAULT|[COD 000000] - -000659|PLC|FAULT|[COD 000000] - -000660|PLC|FAULT|[COD 000000] - -000661|PLC|FAULT|[COD 000000] - -000662|PLC|FAULT|[COD 000000] - -000663|PLC|FAULT|[COD 000000] - -000664|PLC|FAULT|[COD 000000] - -000665|PLC|FAULT|[COD 000000] - -000666|PLC|FAULT|[COD 000000] - -000667|PLC|FAULT|[COD 000000] - -000668|PLC|FAULT|[COD 000000] - -000669|PLC|FAULT|[COD 000000] - -000670|PLC|FAULT|[COD 000000] - -000671|PLC|FAULT|[COD 000000] - -000672|PLC|FAULT|[COD 000000] - -000673|PLC|FAULT|[COD 000000] - -000674|PLC|FAULT|[COD 000000] - -000675|PLC|FAULT|[COD 000000] - -000676|PLC|FAULT|[COD 000000] - -000677|PLC|FAULT|[COD 000000] - -000678|PLC|FAULT|[COD 000000] - -000679|PLC|FAULT|[COD 000000] - -000680|PLC|FAULT|[COD 000000] - -000681|PLC|FAULT|[COD 000000] - -000682|PLC|FAULT|[COD 000000] - -000683|PLC|FAULT|[COD 000000] - -000684|PLC|FAULT|[COD 000000] - -000685|PLC|FAULT|[COD 000000] - -000686|PLC|FAULT|[COD 000000] - -000687|PLC|FAULT|[COD 000000] - -000688|PLC|FAULT|[COD 000000] - -000689|PLC|FAULT|[COD 000000] - -000690|PLC|FAULT|[COD 000000] - -000691|PLC|FAULT|[COD 000000] - -000692|PLC|FAULT|[COD 000000] - -000693|PLC|FAULT|[COD 000000] - -000694|PLC|FAULT|[COD 000000] - -000695|PLC|FAULT|[COD 000000] - -000696|PLC|FAULT|[COD 000000] - -000697|PLC|FAULT|[COD 000000] - -000698|PLC|FAULT|[COD 000000] - -000699|PLC|FAULT|[COD 000000] - -000700|PLC|FAULT|[COD 000000] - -000701|PLC|FAULT|[COD 000000] - -000702|PLC|FAULT|[COD 000000] - -000703|PLC|FAULT|[COD 000000] - -000704|PLC|FAULT|[COD 000000] - -000705|PLC|FAULT|[COD 000000] - -000706|PLC|FAULT|[COD 000000] - -000707|PLC|FAULT|[COD 000000] - -000708|PLC|FAULT|[COD 000000] - -000709|PLC|FAULT|[COD 000000] - -000710|PLC|FAULT|[COD 000000] - -000711|PLC|FAULT|[COD 000000] - -000712|PLC|FAULT|[COD 000000] - -000713|PLC|FAULT|[COD 000000] - -000714|PLC|FAULT|[COD 000000] - -000715|PLC|FAULT|[COD 000000] - -000716|PLC|FAULT|[COD 000000] - -000717|PLC|FAULT|[COD 000000] - -000718|PLC|FAULT|[COD 000000] - -000719|PLC|FAULT|[COD 000000] - -000720|PLC|FAULT|[COD 000000] - -000721|PLC|FAULT|[COD 000000] - -000722|PLC|FAULT|[COD 000000] - -000723|PLC|FAULT|[COD 000000] - -000724|PLC|FAULT|[COD 000000] - -000725|PLC|FAULT|[COD 000000] - -000726|PLC|FAULT|[COD 000000] - -000727|PLC|FAULT|[COD 000000] - -000728|PLC|FAULT|[COD 000000] - -000729|PLC|FAULT|[COD 000000] - -000730|PLC|FAULT|[COD 000000] - -000731|PLC|FAULT|[COD 000000] - -000732|PLC|FAULT|[COD 000000] - -000733|PLC|FAULT|[COD 000000] - -000734|PLC|FAULT|[COD 000000] - -000735|PLC|FAULT|[COD 000000] - -000736|PLC|FAULT|[COD 000000] - -000737|PLC|FAULT|[COD 000000] - -000738|PLC|FAULT|[COD 000000] - -000739|PLC|FAULT|[COD 000000] - -000740|PLC|FAULT|[COD 000000] - -000741|PLC|FAULT|[COD 000000] - -000742|PLC|FAULT|[COD 000000] - -000743|PLC|FAULT|[COD 000000] - -000744|PLC|FAULT|[COD 000000] - -000745|PLC|FAULT|[COD 000000] - -000746|PLC|FAULT|[COD 000000] - -000747|PLC|FAULT|[COD 000000] - -000748|PLC|FAULT|[COD 000000] - -000749|PLC|FAULT|[COD 000000] - -000750|PLC|FAULT|[COD 000000] - -000751|PLC|FAULT|[COD 000000] - -000752|PLC|FAULT|[COD 000000] - -000753|PLC|FAULT|[COD 000000] - -000754|PLC|FAULT|[COD 000000] - -000755|PLC|FAULT|[COD 000000] - -000756|PLC|FAULT|[COD 000000] - -000757|PLC|FAULT|[COD 000000] - -000758|PLC|FAULT|[COD 000000] - -000759|PLC|FAULT|[COD 000000] - -000760|PLC|FAULT|[COD 000000] - -000761|PLC|FAULT|[COD 000000] - -000762|PLC|FAULT|[COD 000000] - -000763|PLC|FAULT|[COD 000000] - -000764|PLC|FAULT|[COD 000000] - -000765|PLC|FAULT|[COD 000000] - -000766|PLC|FAULT|[COD 000000] - -000767|PLC|FAULT|[COD 000000] - -000768|PLC|FAULT|[COD 000000] - -000769|PLC|FAULT|[COD 000000] - -000770|PLC|FAULT|[COD 000000] - -000771|PLC|FAULT|[COD 000000] - -000772|PLC|FAULT|[COD 000000] - -000773|PLC|FAULT|[COD 000000] - -000774|PLC|FAULT|[COD 000000] - -000775|PLC|FAULT|[COD 000000] - -000776|PLC|FAULT|[COD 000000] - -000777|PLC|FAULT|[COD 000000] - -000778|PLC|FAULT|[COD 000000] - -000779|PLC|FAULT|[COD 000000] - -000780|PLC|FAULT|[COD 000000] - -000781|PLC|FAULT|[COD 000000] - -000782|PLC|FAULT|[COD 000000] - -000783|PLC|FAULT|[COD 000000] - -000784|PLC|FAULT|[COD 000000] - -000785|PLC|FAULT|[COD 000000] - -000786|PLC|FAULT|[COD 000000] - -000787|PLC|FAULT|[COD 000000] - -000788|PLC|FAULT|[COD 000000] - -000789|PLC|FAULT|[COD 000000] - -000790|PLC|FAULT|[COD 000000] - -000791|PLC|FAULT|[COD 000000] - -000792|PLC|FAULT|[COD 000000] - -000793|PLC|FAULT|[COD 000000] - -000794|PLC|FAULT|[COD 000000] - -000795|PLC|FAULT|[COD 000000] - -000796|PLC|FAULT|[COD 000000] - -000797|PLC|FAULT|[COD 000000] - -000798|PLC|FAULT|[COD 000000] - -000799|PLC|FAULT|[COD 000000] - -000800|PLC|FAULT|[COD 000000] - -000801|PLC|FAULT|[COD 000000] - -000802|PLC|FAULT|[COD 000000] - -000803|PLC|FAULT|[COD 000000] - -000804|PLC|FAULT|[COD 000000] - -000805|PLC|FAULT|[COD 000000] - -000806|PLC|FAULT|[COD 000000] - -000807|PLC|FAULT|[COD 000000] - -000808|PLC|FAULT|[COD 000000] - -000809|PLC|FAULT|[COD 000000] - -000810|PLC|FAULT|[COD 000000] - -000811|PLC|FAULT|[COD 000000] - -000812|PLC|FAULT|[COD 000000] - -000813|PLC|FAULT|[COD 000000] - -000814|PLC|FAULT|[COD 000000] - -000815|PLC|FAULT|[COD 000000] - -000816|PLC|FAULT|[COD 000000] - -000817|PLC|FAULT|[COD 000000] - -000818|PLC|FAULT|[COD 000000] - -000819|PLC|FAULT|[COD 000000] - -000820|PLC|FAULT|[COD 000000] - -000821|PLC|FAULT|[COD 000000] - -000822|PLC|FAULT|[COD 000000] - -000823|PLC|FAULT|[COD 000000] - -000824|PLC|FAULT|[COD 000000] - -000825|PLC|FAULT|[COD 000000] - -000826|PLC|FAULT|[COD 000000] - -000827|PLC|FAULT|[COD 000000] - -000828|PLC|FAULT|[COD 000000] - -000829|PLC|FAULT|[COD 000000] - -000830|PLC|FAULT|[COD 000000] - -000831|PLC|FAULT|[COD 000000] - -000832|PLC|FAULT|[COD 000000] - -000833|PLC|FAULT|[COD 000000] - -000834|PLC|FAULT|[COD 000000] - -000835|PLC|FAULT|[COD 000000] - -000836|PLC|FAULT|[COD 000000] - -000837|PLC|FAULT|[COD 000000] - -000838|PLC|FAULT|[COD 000000] - -000839|PLC|FAULT|[COD 000000] - -000840|PLC|FAULT|[COD 000000] - -000841|PLC|FAULT|[COD 000000] - -000842|PLC|FAULT|[COD 000000] - -000843|PLC|FAULT|[COD 000000] - -000844|PLC|FAULT|[COD 000000] - -000845|PLC|FAULT|[COD 000000] - -000846|PLC|FAULT|[COD 000000] - -000847|PLC|FAULT|[COD 000000] - -000848|PLC|FAULT|[COD 000000] - -000849|PLC|FAULT|[COD 000000] - -000850|PLC|FAULT|[COD 000000] - -000851|PLC|FAULT|[COD 000000] - -000852|PLC|FAULT|[COD 000000] - -000853|PLC|FAULT|[COD 000000] - -000854|PLC|FAULT|[COD 000000] - -000855|PLC|FAULT|[COD 000000] - -000856|PLC|FAULT|[COD 000000] - -000857|PLC|FAULT|[COD 000000] - -000858|PLC|FAULT|[COD 000000] - -000859|PLC|FAULT|[COD 000000] - -000860|PLC|FAULT|[COD 000000] - -000861|PLC|FAULT|[COD 000000] - -000862|PLC|FAULT|[COD 000000] - -000863|PLC|FAULT|[COD 000000] - -000864|PLC|FAULT|[COD 000000] - -000865|PLC|FAULT|[COD 000000] - -000866|PLC|FAULT|[COD 000000] - -000867|PLC|FAULT|[COD 000000] - -000868|PLC|FAULT|[COD 000000] - -000869|PLC|FAULT|[COD 000000] - -000870|PLC|FAULT|[COD 000000] - -000871|PLC|FAULT|[COD 000000] - -000872|PLC|FAULT|[COD 000000] - -000873|PLC|FAULT|[COD 000000] - -000874|PLC|FAULT|[COD 000000] - -000875|PLC|FAULT|[COD 000000] - -000876|PLC|FAULT|[COD 000000] - -000877|PLC|FAULT|[COD 000000] - -000878|PLC|FAULT|[COD 000000] - -000879|PLC|FAULT|[COD 000000] - -000880|PLC|FAULT|[COD 000000] - -000881|PLC|FAULT|[COD 000000] - -000882|PLC|FAULT|[COD 000000] - -000883|PLC|FAULT|[COD 000000] - -000884|PLC|FAULT|[COD 000000] - -000885|PLC|FAULT|[COD 000000] - -000886|PLC|FAULT|[COD 000000] - -000887|PLC|FAULT|[COD 000000] - -000888|PLC|FAULT|[COD 000000] - -000889|PLC|FAULT|[COD 000000] - -000890|PLC|FAULT|[COD 000000] - -000891|PLC|FAULT|[COD 000000] - -000892|PLC|FAULT|[COD 000000] - -000893|PLC|FAULT|[COD 000000] - -000894|PLC|FAULT|[COD 000000] - -000895|PLC|FAULT|[COD 000000] - -000896|PLC|FAULT|[COD 000000] - -000897|PLC|FAULT|[COD 000000] - -000898|PLC|FAULT|[COD 000000] - -000899|PLC|FAULT|[COD 000000] - -000900|PLC|FAULT|[COD 000000] - -000901|PLC|FAULT|[COD 000000] - -000902|PLC|FAULT|[COD 000000] - -000903|PLC|FAULT|[COD 000000] - -000904|PLC|FAULT|[COD 000000] - -000905|PLC|FAULT|[COD 000000] - -000906|PLC|FAULT|[COD 000000] - -000907|PLC|FAULT|[COD 000000] - -000908|PLC|FAULT|[COD 000000] - -000909|PLC|FAULT|[COD 000000] - -000910|PLC|FAULT|[COD 000000] - -000911|PLC|FAULT|[COD 000000] - -000912|PLC|FAULT|[COD 000000] - -000913|PLC|FAULT|[COD 000000] - -000914|PLC|FAULT|[COD 000000] - -000915|PLC|FAULT|[COD 000000] - -000916|PLC|FAULT|[COD 000000] - -000917|PLC|FAULT|[COD 000000] - -000918|PLC|FAULT|[COD 000000] - -000919|PLC|FAULT|[COD 000000] - -000920|PLC|FAULT|[COD 000000] - -000921|PLC|FAULT|[COD 000000] - -000922|PLC|FAULT|[COD 000000] - -000923|PLC|FAULT|[COD 000000] - -000924|PLC|FAULT|[COD 000000] - -000925|PLC|FAULT|[COD 000000] - -000926|PLC|FAULT|[COD 000000] - -000927|PLC|FAULT|[COD 000000] - -000928|PLC|FAULT|[COD 000000] - -000929|PLC|FAULT|[COD 000000] - -000930|PLC|FAULT|[COD 000000] - -000931|PLC|FAULT|[COD 000000] - -000932|PLC|FAULT|[COD 000000] - -000933|PLC|FAULT|[COD 000000] - -000934|PLC|FAULT|[COD 000000] - -000935|PLC|FAULT|[COD 000000] - -000936|PLC|FAULT|[COD 000000] - -000937|PLC|FAULT|[COD 000000] - -000938|PLC|FAULT|[COD 000000] - -000939|PLC|FAULT|[COD 000000] - -000940|PLC|FAULT|[COD 000000] - -000941|PLC|FAULT|[COD 000000] - -000942|PLC|FAULT|[COD 000000] - -000943|PLC|FAULT|[COD 000000] - -000944|PLC|FAULT|[COD 000000] - -000945|PLC|FAULT|[COD 000000] - -000946|PLC|FAULT|[COD 000000] - -000947|PLC|FAULT|[COD 000000] - -000948|PLC|FAULT|[COD 000000] - -000949|PLC|FAULT|[COD 000000] - -000950|PLC|FAULT|[COD 000000] - -000951|PLC|FAULT|[COD 000000] - -000952|PLC|FAULT|[COD 000000] - -000953|PLC|FAULT|[COD 000000] - -000954|PLC|FAULT|[COD 000000] - -000955|PLC|FAULT|[COD 000000] - -000956|PLC|FAULT|[COD 000000] - -000957|PLC|FAULT|[COD 000000] - -000958|PLC|FAULT|[COD 000000] - -000959|PLC|FAULT|[COD 000000] - -000960|PLC|FAULT|[COD 000000] - -000961|PLC|FAULT|[COD 000000] - -000962|PLC|FAULT|[COD 000000] - -000963|PLC|FAULT|[COD 000000] - -000964|PLC|FAULT|[COD 000000] - -000965|PLC|FAULT|[COD 000000] - -000966|PLC|FAULT|[COD 000000] - -000967|PLC|FAULT|[COD 000000] - -000968|PLC|FAULT|[COD 000000] - -000969|PLC|FAULT|[COD 000000] - -000970|PLC|FAULT|[COD 000000] - -000971|PLC|FAULT|[COD 000000] - -000972|PLC|FAULT|[COD 000000] - -000973|PLC|FAULT|[COD 000000] - -000974|PLC|FAULT|[COD 000000] - -000975|PLC|FAULT|[COD 000000] - -000976|PLC|FAULT|[COD 000000] - -000977|PLC|FAULT|[COD 000000] - -000978|PLC|FAULT|[COD 000000] - -000979|PLC|FAULT|[COD 000000] - -000980|PLC|FAULT|[COD 000000] - -000981|PLC|FAULT|[COD 000000] - -000982|PLC|FAULT|[COD 000000] - -000983|PLC|FAULT|[COD 000000] - -000984|PLC|FAULT|[COD 000000] - -000985|PLC|FAULT|[COD 000000] - -000986|PLC|FAULT|[COD 000000] - -000987|PLC|FAULT|[COD 000000] - -000988|PLC|FAULT|[COD 000000] - -000989|PLC|FAULT|[COD 000000] - -000990|PLC|FAULT|[COD 000000] - -000991|PLC|FAULT|[COD 000000] - -000992|PLC|FAULT|[COD 000000] - -000993|PLC|FAULT|[COD 000000] - -000994|PLC|FAULT|[COD 000000] - -000995|PLC|FAULT|[COD 000000] - -000996|PLC|FAULT|[COD 000000] - -000997|PLC|FAULT|[COD 000000] - -000998|PLC|FAULT|[COD 000000] - -000999|PLC|FAULT|[COD 000000] - -001000|PLC|FAULT|[COD 000000] - -001001|PLC|FAULT|[COD 000000] - -001002|PLC|FAULT|[COD 000000] - -001003|PLC|FAULT|[COD 000000] - -001004|PLC|FAULT|[COD 000000] - -001005|PLC|FAULT|[COD 000000] - -001006|PLC|FAULT|[COD 000000] - -001007|PLC|FAULT|[COD 000000] - -001008|PLC|FAULT|[COD 000000] - -001009|PLC|FAULT|[COD 000000] - -001010|PLC|FAULT|[COD 000000] - -001011|PLC|FAULT|[COD 000000] - -001012|PLC|FAULT|[COD 000000] - -001013|PLC|FAULT|[COD 000000] - -001014|PLC|FAULT|[COD 000000] - -001015|PLC|FAULT|[COD 000000] - -001016|PLC|FAULT|[COD 000000] - -001017|PLC|FAULT|[COD 000000] - -001018|PLC|FAULT|[COD 000000] - -001019|PLC|FAULT|[COD 000000] - -001020|PLC|FAULT|[COD 000000] - -001021|PLC|FAULT|[COD 000000] - -001022|PLC|FAULT|[COD 000000] - -001023|PLC|FAULT|[COD 000000] - -001024|PLC|FAULT|[COD 000000] - \ No newline at end of file +1|PLC|FAULT|[1] MANDRINO 1 NON BLOCCATO +2|PLC|FAULT|[2] MANDRINO 2 NON BLOCCATO +3|PLC|FAULT|[3] MANDRINO SUPPLEMENTARE NON BLOCCATO +4|PLC|FAULT|[4] ZONA DI COLLISIONE CON CAMBIO UTENSILE ESTERNO +5|PLC|FAULT|[5] ZONA DI COLLISIONE CON CAMBIO UTENSILE LINEARE +6|PLC|FAULT|[6] GRUPPO ASSI NON VALIDO +7|PLC|FAULT|[7] INVERTER 1 NON OK +8|PLC|FAULT|[8] INVERTER 2 NON OK +9|PLC|FAULT|[9] INVERTER MANDRINO SUPPLEMENTARE NON OK +10|PLC|FAULT|[10] SAVE ENERGY ATTIVO +11|PLC|FAULT|[11] [WD]SUPERATO NUMERO PEZZI MASSIMO CARICABILE SU TRANSFER +12|PLC|FAULT|[12] VERIFICA CONTATTORI NON OK +13|PLC|FAULT|[13] TIMEOUT COMUNICAZIONE XILOG +14|PLC|WARNING|[14] INTERVENTO MAGNETOTERMICI +15|PLC|FAULT|[15] PORTE PROTEZIONE APERTE +16|PLC|FAULT|[16] TAPPETO CONVOGLIA TRUCIOLI NON IN POSIZIONE +17|PLC|FAULT|[17] COLLISIONE RILEVATA DAL SIMULATORE +18|PLC|FAULT|[18] +19|PLC|FAULT|[19] FORATRICE NON IN POSIZIONE +20|PLC|WARNING|[20] STOP MACCHINA DA CODICI M SUPPLEMENTARI +21|PLC|WARNING|[21] M00 ATTIVO: START CICLO +22|PLC|WARNING|[22] BATTERIA SCARICA ENCODER ASSI YASKAWA +23|PLC|FAULT|[23] AZIONAMENTI ASSI XYZ... NON OK +24|PLC|FAULT|[24] AZIONAMENTI ASSI ROTATIVI NON OK +25|PLC|FAULT|[25] CNC NON OK +26|PLC|FAULT|[26] PRESSOSTATO ARIA INTERVENUTO +27|PLC|FAULT|[27] BATTERIA CNC NON CARICA +28|PLC|FAULT|[28] ERRORE CANOPEN RING 0 +29|PLC|FAULT|[29] ERRORE CANOPEN RING 1 +30|PLC|WARNING|[30] ABILITAZIONE BL/SBL UTENSILE MANDRINO 1 +31|PLC|WARNING|[31] ABILITAZIONE BL/SBL UTENSILE MANDRINO 2 +32|PLC|WARNING|[32] ABILITAZIONE BL/SBL UTENSILE MANDRINO SUPPLEMENTARE +33|PLC|FAULT|[33] CICLO ETICHETTATURA IN CORSO +34|PLC|FAULT|[34] ETICHETTATRICE NON PRONTA +35|PLC|FAULT|[35] ETICHETTATRICE NON IN POSIZIONE +36|PLC|FAULT|[36] ERRORE ETICHETTATRICE +37|PLC|FAULT|[37] SONDA TERMICA/VENTOLA MANDRINO 1 +38|PLC|FAULT|[38] SONDA TERMICA/VENTOLA MANDRINO 2 +39|PLC|FAULT|[39] SONDA TERMICA/VENTOLA MANDRINO SUPPLEMENTARE +40|PLC|FAULT|[40] INTERVENTO MAGNETOTERMICO GRUPPO LAMA +41|PLC|FAULT|[41] RICARICARE POMPA LUBRIFICAZIONE +42|PLC|FAULT|[42] LUBRIFICAZIONE ASSI NON OK +43|PLC|WARNING|[43] LUBRIFICAZIONE ASSI IN CORSO +44|PLC|WARNING|[44] RICHIESTA VUOTO/ATTREZZATURA +45|PLC|FAULT|[45] EMERGENZA CAUSA VUOTO ZONA 1 +46|PLC|FAULT|[46] EMERGENZA CAUSA VUOTO ZONA 2 +47|PLC|FAULT|[47] ASSI IN FINE CORSA +48|PLC|FAULT|[48] CUFFIA ESTERNA NON IN POSIZIONE +49|PLC|FAULT|[49] CUFFIA INTERNA NON IN POSIZIONE +50|PLC|FAULT|[50] CUFFIA PULIZIA PIANO NON IN POSIZIONE +51|PLC|FAULT|[51] EMERGENZA CAUSA VUOTO ZONA 3 +52|PLC|FAULT|[52] EMERGENZA CAUSA VUOTO ZONA 4 +53|PLC|WARNING|[53] ESEGUIRE RIFERIMENTO ASSI +54|PLC|FAULT|[54] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE 1 +55|PLC|FAULT|[55] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE 2 +56|PLC|FAULT|[56] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE MANDRINO SUPPLEMENTARE +57|PLC|FAULT|[57] ESEGUIRE RIFERIMENTO MAGAZZINO ESTERNO 1 +58|PLC|FAULT|[58] ESEGUIRE RIFERIMENTO NAVETTA HS +59|PLC|FAULT|[59] ESEGUIRE RIFERIMENTO PINZE ROBOT CELLA WD +60|PLC|FAULT|[60] CONVOGLIATORE TRUCIOLI NON OK +61|PLC|WARNING|[61] SERBATOIO LUBRIFICAZIONE CONVOGLIATORE TRUCIOLI VUOTO +62|PLC|FAULT|[62] ASSE X IN FINE CORSA +63|PLC|FAULT|[63] ASSE Y IN FINE CORSA +64|PLC|FAULT|[64] ASSE Z IN FINE CORSA +65|PLC|FAULT|[65] PALPATORE SYNCRO NON IN POSIZIONE +66|PLC|WARNING|[66] ALLINEAMENTO ASSI GANTRY IN CORSO +67|PLC|FAULT|[67] ASSE B IN FINE CORSA +68|PLC|FAULT|[68] ASSE C IN FINE CORSA +69|PLC|FAULT|[69] ASSE Y NON IN POSIZIONE +70|PLC|FAULT|[70] ESEGUIRE RIFERIMENTO PALPATORE SYNCRO +71|PLC|FAULT|[71] PERNO BLOCCAGGIO TAVOLO ELEVATORE NON IN POSIZIONE +72|PLC|FAULT|[72] FOTOCELLULA PRESENZA UTENSILE +73|PLC|FAULT|[73] MANDRINO 1 NON OK +74|PLC|FAULT|[74] MANDRINO 2 NON OK +75|PLC|FAULT|[75] MANDRINO SUPPLEMENTARE NON OK +76|PLC|FAULT|[76] FOTOCELLULA PRESENZA UTENSILE (CATENA) +77|PLC|FAULT|[77] ALLARME SENSORE ROTAZIONE MANDRINO 1 +78|PLC|FAULT|[78] ALLARME SENSORE ROTAZIONE MANDRINO 2 +79|PLC|FAULT|[79] ALLARME SENSORE ROTAZIONE MANDRINO SUPPLEMENTARE +80|PLC|FAULT|[80] CAMBIO UTENSILE TESTA 1(ONBOARD) NON IN POSIZIONE +81|PLC|FAULT|[81] CAMBIO UTENSILE MANDRINO SUPPLEMENTARE (ONBOARD) NON IN POSIZIONE +82|PLC|FAULT|[82] CAMBIO UTENSILE LINEARE NON IN POSIZIONE +83|PLC|FAULT|[83] CAMBIO UTENSILE HS NON IN POSIZIONE +84|PLC|FAULT|[84] [TM] NAVETTA TOOL MANAGEMENT NON IN POSIZIONE +85|PLC|FAULT|[85] [TM] LETTORE CHIP TOOL MANAGMENT NON IN POSIZIONE +86|PLC|FAULT|[86] [TM] LIBERARE PINZA DI CARICO TOOL MANAGMENT +87|PLC|FAULT|[87] [TM] COLLISIONE CON TOOL MANAGMENT +88|PLC|FAULT|[88] [TM] CARICARE UTENSILE SULLA PINZA DI CARICO DEL TOOL MANAGMENT +89|PLC|FAULT|[89] BANDELLA NON IN POSIZIONE +90|PLC|FAULT|[90] PANNELLO PRELEVATO FUORI ALLINEAMENTO +91|PLC|FAULT|[91] SCARICATORE NON IN POSIZIONE +92|PLC|FAULT|[92] SPONDE/BATTUTE DI SCARICO NON IN POSIZIONE +93|PLC|FAULT|[93] ZONA DI SCARICO OCCUPATA +94|PLC|FAULT|[94] VERIFICARE DIMENSIONI PILA +95|PLC|FAULT|[95] CARICARE NUOVA PILA +96|PLC|FAULT|[96] CARICATORE NON IN POSIZIONE +97|PLC|FAULT|[97] TAVOLO ELEVATORE NON OK +98|PLC|FAULT|[98] PANNELLO NON PRELEVATO DA TAVOLO ELEVATORE +99|PLC|FAULT|[99] FOTOCELLULA RIFERIMENTO PANNELLO NON OK +100|PLC|FAULT|[100] ALLARME CELLA WD +101|PLC|FAULT|[101] REFRIGERANTE MANDRINO 1 NON OK +102|PLC|FAULT|[102] REFRIGERANTE MANDRINO 2 NON OK +103|PLC|FAULT|[103] INVERTER NASTRO DI SCARICO NON OK +104|PLC|FAULT|[104] ARRESTO OPERATIVO: RESETTARE LE FOTOCELLULE DI SICUREZZA +105|PLC|WARNING|[105] C.UTENSILE LINEARE IN CORSO: ABBASSARE GLI INNALZATORI E RESETTARE LE FOTOCELLULE DI SICUREZZA +106|PLC|FAULT|[106] CARICO PANNELLO NON AMMESSO +107|PLC|FAULT|[107] BYPASS COLLISIONI ATTIVO +108|PLC|FAULT|[108] SPORTELLO CAMBIO UTENSILE LINEARE DESTRO NON IN POSIZIONE +109|PLC|FAULT|[109] VERIFICA FUNZIONAMENTO SICUREZZE +110|PLC|FAULT|[110] RESETTARE LE FOTOCELLULE DI SICUREZZA +111|PLC|FAULT|[111] INSERIMENTO UTENSILE NON OK +112|PLC|FAULT|[112] GUASTO MICRO CONTROLLO PEDANE +113|PLC|FAULT|[113] INSERIMENTO UTENSILE IN NAVETTA HS NON OK +114|PLC|WARNING|[114] TABELLA NON AGGIORNATA +115|PLC|FAULT|[115] MANDRINO 1 NON SBLOCCATO +116|PLC|FAULT|[116] MANDRINO SUPPLEMENTARE NON SBLOCCATO +117|PLC|FAULT|[117] CONTROLLARE CICLO CHIUSURA BORDO +118|PLC|WARNING|[118] PM: SETUP NON POSSIBILE ZONA 3 [Vuoto ON/Teste DW] +119|PLC|WARNING|[119] PM: SETUP NON POSSIBILE ZONA 4 [Vuoto ON/Teste DW] +120|PLC|WARNING|[120] UTENSILE SPECIALE: OPERAZIONE NON AMMESSA +121|PLC|FAULT|[121] ERRORE CICLO CHIUSURA BORDO +122|PLC|FAULT|[122] MAGAZZINO UTENSILE ESTERNO 1 NON IN POSIZIONE +123|PLC|FAULT|[123] SPORTELLO MAGAZZINO ESTERNO NON IN POSIZIONE +124|PLC|WARNING|[124] ERRATA PROGRAMMAZIONE +125|PLC|WARNING|[125] ERRORE UTENSILE TESTA 1 +126|PLC|WARNING|[126] ERRORE UTENSILE TESTA 2 +127|PLC|FAULT|[127] SPORTELLO CAMBIO UTENSILE LINEARE SINISTRO NON IN POSIZIONE +128|PLC|FAULT|[128] TIME OUT PIGNA MOBILE +129|PLC|WARNING|[129] CAMBIO MODALITA' MACCHINA (M103) +130|PLC|FAULT|[130] PORTE ARMADIO ELETTRICO APERTE +131|PLC|WARNING|[131] ESEGUIRE MANUTENZIONE CONDIZIONATORE ARMADIO ELETTRICO +132|PLC|FAULT|[132] AGGREGATO PRESSATORE/CONVOGLIATORE TRUCIOLI NON OK +133|PLC|FAULT|[133] SERBATOIO LUBROREFRIGERATORE UTENSILE VUOTO +134|PLC|WARNING|[134] BATTERIA SCARICA TASTATORE RADIO +135|PLC|FAULT|[135] RILEVATORE SPESSORE PEZZO NON IN POSIZIONE +136|PLC|FAULT|[136] CICLO TASTATURA NON OK +137|PLC|FAULT|[137] BATTUTE DI RIFERIMENTO ZONA 1 NON OK +138|PLC|FAULT|[138] BATTUTE DI RIFERIMENTO ZONA 2 NON OK +139|PLC|FAULT|[139] ASSI PRISMA BC NON IN POSIZIONE +140|PLC|FAULT|[140] AZIONAMENTI ASSI PRISMA BC NON OK +141|PLC|FAULT|[141] TASTATORE RADIO NON OK +142|PLC|FAULT|[142] +143|PLC|FAULT|[143] +144|PLC|FAULT|[144] +145|PLC|WARNING|[145] RIAGGANCIO MANDRINO IN CORSO +146|PLC|WARNING|[146] RIAGGANCIO MANDRINO FALLITO +147|PLC|WARNING|[147] RIAGGANCIO MANDRINO AVVENUTO +148|PLC|FAULT|[148] INTERVENTO FUNE DI SICUREZZA +149|PLC|FAULT|[149] INTERVENTO OVERSPEED ASSI +150|PLC|FAULT|[150] INTERVENTO BUMPERS +151|PLC|WARNING|[151] MACCHINA SPENTA +152|PLC|FAULT|[152] EMERGENZA PREMUTA +153|PLC|WARNING|[153] PM: SETUP NON POSSIBILE ZONA 1 [VUOTO ON / TESTE DW] +154|PLC|WARNING|[154] PM: SETUP NON POSSIBILE ZONA 2 [VUOTO ON / TESTE DW] +155|PLC|WARNING|[155] BARRA MOBILE CENTRALE 1 NON IN POSIZIONE +156|PLC|WARNING|[156] BARRA MOBILE CENTRALE 2 NON IN POSIZIONE +157|PLC|WARNING|[157] PM: COLLISIONE BATTUTE CON SUPPORTI VENTOSE / MORSETTI +158|PLC|WARNING|[158] CUFFIA MANDRINO SUPPLEMENTARE NON IN POSIZIONE +159|PLC|WARNING|[159] TESTA GRUPPO MANDRINO SUPPLEMENTARE NON IN POSIZIONE +160|PLC|WARNING|[160] TESTA GRUPPO LAMA NON IN POSIZIONE +161|PLC|WARNING|[161] CICLO DI CARICO IN CORSO +162|PLC|WARNING|[162] CICLO DI SCARICO IN CORSO +163|PLC|WARNING|[163] BATTUTE DI CARICO NON IN POSIZIONE ZONA 1 +164|PLC|WARNING|[164] ATTESA ROBOT IN POSIZIONE +165|PLC|WARNING|[165] INVERTER GUASTO POMPA VUOTO 1 (MASTER) +166|PLC|WARNING|[166] INVERTER GUASTO POMPA VUOTO 2 (SLAVE) +167|PLC|WARNING|[167] BATTUTE DI CARICO NON IN POSIZIONE ZONA 2 +168|PLC|WARNING|[168] SALITA CUFFIA DA OPERATORE +169|PLC|WARNING|[169] TRAVERSA 1 NON IN POSIZIONE +170|PLC|WARNING|[170] TRAVERSA 2 NON IN POSIZIONE +171|PLC|WARNING|[171] TRAVERSA 3 NON IN POSIZIONE +172|PLC|WARNING|[172] TRAVERSA 4 NON IN POSIZIONE +173|PLC|WARNING|[173] TRAVERSA 5 NON IN POSIZIONE +174|PLC|WARNING|[174] TRAVERSA 6 NON IN POSIZIONE +175|PLC|WARNING|[175] TRAVERSA 7 NON IN POSIZIONE +176|PLC|WARNING|[176] TRAVERSA 8 NON IN POSIZIONE +177|PLC|WARNING|[177] TRAVERSA 9 NON IN POSIZIONE +178|PLC|WARNING|[178] TRAVERSA 10 NON IN POSIZIONE +179|PLC|WARNING|[179] TRAVERSA 11 NON IN POSIZIONE +180|PLC|WARNING|[180] TRAVERSA 12 NON IN POSIZIONE +181|PLC|WARNING|[181] SOSTITUZIONE VENTOSE IN CORSO AREA 1 +182|PLC|WARNING|[182] SOSTITUZIONE VENTOSE IN CORSO AREA 2 +183|PLC|FAULT|[183] BATTUTE DI RIFERIMENTO ZONA 3 NON OK +184|PLC|FAULT|[184] BATTUTE DI RIFERIMENTO ZONA 4 NON OK +185|PLC|FAULT|[185] [BRC] GR5: GRUPPO FUSI ORIZZONTALI NON IN POSIZIONE (fori spine) +186|PLC|FAULT|[186] [BRC] GR6: GRUPPO FRESA VERTICALE NON IN POSIZIONE +187|PLC|FAULT|[187] [BRC] GR7: GRUPPO FRESA ORIZZONTALE NON IN POSIZIONE +188|PLC|FAULT|[188] [BRC] GR8: GRUPPO LAMA NON IN POSIZIONE +189|PLC|FAULT|[189] [BRC] ATTESA INNESTO PER ROTAZIONE GRUPPO LAMA +190|PLC|FAULT|[190] SELETTORI CONTROSAGOMA NON OK [AREA UNICA] +191|PLC|FAULT|[191] BATTUTE DI RIFERIMENTO BARRA 1 NON OK +192|PLC|FAULT|[192] BATTUTE DI RIFERIMENTO BARRA 2 NON OK +193|PLC|FAULT|[193] BATTUTE DI RIFERIMENTO BARRA 3 NON OK +194|PLC|FAULT|[194] BATTUTE DI RIFERIMENTO BARRA 4 NON OK +195|PLC|FAULT|[195] BATTUTE DI RIFERIMENTO BARRA 5 NON OK +196|PLC|FAULT|[196] BATTUTE DI RIFERIMENTO BARRA 6 NON OK +197|PLC|FAULT|[197] BATTUTE DI RIFERIMENTO BARRA 7 NON OK +198|PLC|FAULT|[198] BATTUTE DI RIFERIMENTO BARRA 8 NON OK +199|PLC|FAULT|[199] BATTUTE DI RIFERIMENTO BARRA 9 NON OK +200|PLC|FAULT|[200] BATTUTE DI RIFERIMENTO BARRA 10 NON OK +201|PLC|FAULT|[201] BATTUTE DI RIFERIMENTO BARRA 11 NON OK +202|PLC|FAULT|[202] BATTUTE DI RIFERIMENTO BARRA 12 NON OK +203|PLC|FAULT|[203] BATTUTE DI RIFERIMENTO BARRA FISSA SX NON OK +204|PLC|FAULT|[204] BATTUTE DI RIFERIMENTO BARRA FISSA DX NON OK +205|PLC|FAULT|[205] BASI NON BLOCCATE ZONA 1 +206|PLC|FAULT|[206] BASI NON BLOCCATE ZONA 2 +207|PLC|FAULT|[207] BASI NON BLOCCATE ZONA 3 +208|PLC|FAULT|[208] BASI NON BLOCCATE ZONA 4 +209|PLC|WARNING|[209] SOSTITUZIONE VENTOSE IN CORSO AREA 3 +210|PLC|WARNING|[210] SOSTITUZIONE VENTOSE IN CORSO AREA 4 +211|PLC|FAULT|[211] [BORDATORE POWER] ATTESA GRUPPO A BORDARE ALTO +212|PLC|FAULT|[212] [BORDATORE POWER] ATTESA GRUPPO A BORDARE BASSO +213|PLC|FAULT|[213] [BORDATORE POWER] ATTESA GRUPPO A BORDARE POSIZ. CAMBIO RULLO +214|PLC|FAULT|[214] [BORDATORE POWER] ATTESA PIANO CARICAMENTO BORDI ALTO +215|PLC|FAULT|[215] [BORDATORE POWER] ATTESA PIANO CARICAMENTO BORDI BASSO +216|PLC|FAULT|[216] [BORDATORE POWER] MANCATA LETTURA BORDO GIUNZIONE +217|PLC|FAULT|[217] [BORDATORE POWER] ERRORE BORDO SU FOTOCELLULA DI CARICO +218|PLC|FAULT|[218] VASCA COLLA NON IN TEMPERATURA +219|PLC|FAULT|[219] [BORDATORE POWER] ASSENZA BORDO IN MULTIROTOLO +220|PLC|FAULT|[220] [BORDATORE POWER] ATTESA CICLO CARICO COLLA DA PREFUSORE +221|PLC|FAULT|[221] [BORDATORE POWER] MANCATO TAGLIO TRANCIA MAGAZZINO BORDI +222|PLC|FAULT|[222] [BORDATORE POWER] ATTESA CARICO COLLA DA PREFUSORE +223|PLC|FAULT|[223] [BORDATORE POWER] ANOMALIA SENSORI CILINDRO TESTA A BORDARE +224|PLC|FAULT|[224] SENSORE TESTA A BORDARE IN COLLISIONE +225|PLC|FAULT|[225] [BORDATORE POWER] TIMEOUT INTESTATURA BORDO TESTA A BORDARE +226|PLC|FAULT|[226] INTERVENTO TERMICI VASCA COLLA +227|PLC|FAULT|[227] INTERVENTO TERMICI PREFUSORE +228|PLC|FAULT|[228] INTERVENTO TERMICI LAMPADE ONDE CORTE +229|PLC|FAULT|[229] ESEGUIRE RIFERIMENTO MOT. ALTEZZA BORDO TESTA B. +230|PLC|FAULT|[230] ESEGUIRE RIFERIMENTO MOT. ALTEZZA BORDO MAGAZZINO B. +231|PLC|FAULT|[231] ESEGUIRE RIFERIMENTO MOT. CAMBIO RULLO PRESSIONE +232|PLC|FAULT|[232] TIMEOUT SENSORE CHIUSURA CILINDRO PREFUSORE +233|PLC|FAULT|[233] ESEGUIRE TARATURA TRAVERSE/VENTOSE +234|PLC|FAULT|[234] VENTOSE NON BLOCCATE AREA 1 +235|PLC|FAULT|[235] VENTOSE NON BLOCCATE AREA 2 +236|PLC|WARNING|[236] ATTESA SBLOCCO VENTOSA +237|PLC|WARNING|[237] ATTESA BLOCCO VENTOSA +238|PLC|WARNING|[238] RIMUOVERE VENTOSA: START CICLO +239|PLC|WARNING|[239] INSERIRE VENTOSA: START CICLO +240|PLC|FAULT|[240] ANOMALIA FOTOCELLULA MAGAZZINO BORDI +241|PLC|WARNING|[241] BARRA 1 +242|PLC|WARNING|[242] BARRA 2 +243|PLC|WARNING|[243] BARRA 3 +244|PLC|WARNING|[244] BARRA 4 +245|PLC|WARNING|[245] BARRA 5 +246|PLC|WARNING|[246] BARRA 6 +247|PLC|WARNING|[247] BARRA 7 +248|PLC|WARNING|[248] BARRA 8 +249|PLC|WARNING|[249] BARRA 9 +250|PLC|WARNING|[250] BARRA 10 +251|PLC|WARNING|[251] BARRA 11 +252|PLC|WARNING|[252] BARRA 12 +253|PLC|WARNING|[253] RIMUOVERE/INSERIRE VENTOSA COME DA GRAFICA SU AREA 1: START CICLO +254|PLC|WARNING|[254] RIMUOVERE/INSERIRE VENTOSA COME DA GRAFICA SU AREA 2: START CICLO +255|PLC|FAULT|[255] PORTE PROTEZIONE SBLOCCATE +256|PLC|FAULT|[256] ERRORE MODULO ZERO SPEED MANDRINO +257|PLC|FAULT|[257] INTESTATORE NON IN POSIZIONE +258|PLC|FAULT|[258] INTESTATORE 92 VUOTO +259|PLC|FAULT|[259] INTESTATORE 93 VUOTO +260|PLC|FAULT|[260] LIVELLO COLLA BASSO B.BASIC +261|PLC|FAULT|[261] [WD]EMERGENZA TRANSFER PREMUTA +262|PLC|FAULT|[262] [WD]INTERVENTO MAGNETOTERMICI TRANSFER +263|PLC|FAULT|[263] [WD]PORTE ARMADIO ELETTRICO TRANSFER APERTE +264|PLC|FAULT|[264] [WD]SVUOTARE TRANSFER +265|PLC|FAULT|[265] [WD]PEZZO IN ZONA DI SCARICO +266|PLC|FAULT|[266] [WD]ATTESA ROBOT 1 IN POSIZIONE +267|PLC|FAULT|[267] [WD]ATTESA ROBOT 2 IN POSIZIONE +268|PLC|FAULT|[268] [WD]SVUOTARE RULLIERE +269|PLC|FAULT|[269] [WD]DIMENSIONI PEZZO NON OK +270|PLC|FAULT|[270] [WD]SVUOTARE PIANO MACCHINA E PINZE ROBOT +271|PLC|FAULT|[271] [WD]PINZA ROBOT 1 NON IN POSIZIONE +272|PLC|FAULT|[272] [WD]PINZA ROBOT 2 NON IN POSIZIONE +273|PLC|FAULT|[273] MORSETTI ZONA 1 ALTI PNEUMATICAMENTE +274|PLC|FAULT|[274] MORSETTI ZONA 2 ALTI PNEUMATICAMENTE +275|PLC|FAULT|[275] EMERGENZA CAUSA MORSETTI ZONA 1 +276|PLC|FAULT|[276] EMERGENZA CAUSA MORSETTI ZONA 2 diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/EsaKvara.ini b/MTC_Adapter/MTC_Adapter/DATA/CONF/EsaKvara.ini new file mode 100644 index 0000000..78bda4a --- /dev/null +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/EsaKvara.ini @@ -0,0 +1,90 @@ +[MACHINE] +MachineProject=c:\Kvara\Exe\ACCORD40FX_003455_R001701 + +[LIBRARY] +LibraryProject=.\LibDevices + +[COLORS] +Default=C0A0A0 +Black=101010 +Red=FF0000 +White=FFFFFF +Glass=FFFFFF +Yellow=FFFF00 +Pattini=101010 +Pinze=3030A0 +Piedi=101010 +Motori=101010 +Guide=FFCCCC +Cono=5B3F0F +Asta=DD9829 +;Tagliente=C59738 +;Tagliente=STEEL +Tagliente=404040 +Silver=C0C0C0 +Steli=C0C0C0 +Estrusi=C0C0C0 +Gray=808080 +Cappa=303030 +Morsetto=FF8040 +Piatto=6F6F6F +Blue=00FFFF +Tools=0000FF + +;[SETUP] +;SimDelay=0 +;UpdateFPS=0 +;CollisionImagesPath=c:\kvara\XSimShared\CollImages\ +;; 1=Virtual 2=NUM 3=Osai 4=EsaGv 5=File +;DeviceType=4 +;;CleanSolids=1 +;Title=Maestro SIM - Accord INT +;UseDateForCollisionsImages=1 +;Language=it-IT +;Debug=1 + +[NC] +;BufferFileName=.\Integra1.MEM +UseHexPlcAddr=0 +; formato 1=NUM 2=OSAI 3=ESA +; indirizzo del primo byte di stato +StatusAddress=SIMWRITE[0] +StatusNumber=401 +; indirizzo di memoria del primo byte di scrittura dati +CommandsAddress=SIMREAD[0] +CommandsNumber=10 +; indirizzo di memoria AreaV +VAreaAddress=V +VAreaNumber=10 +; area EOK +EOKAreaAddress=EOK +EOKAreaNumber=10 +; area ETK +ETKAreaAddress=ETK +ETKAreaNumber=10 +; indirizzo di memoria AreaV +PlcErrAreaAddress=V +PlcErrAreaNumber=10 +; offset del registro per l'indice di collisione +CollisionIndex=6.L +; ritardo nella lettura dal plc +PlcDelay=50 + +; <-- deve essere produzione?!? o che valore? +SysLink=SIMULATO + +SysDefCn=C:\KVARA\DISCOI +;BufferFileName= +;MemoryFormat=2 +; modo sincronizzato con il plc +;PlcSyncAddress=2103 + + +[XILOG] +Enable=1 +SharedFolder=c:\kvara\XSimShared\ + +[DISPLAY] +HideShowModeButtons=1 +HideOrthographicMode=1 +HideOptionsTab=1 diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/SCM_prodFile.pro b/MTC_Adapter/MTC_Adapter/DATA/CONF/SCM_prodFile.pro new file mode 100644 index 0000000..d8c39b0 --- /dev/null +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/SCM_prodFile.pro @@ -0,0 +1,6 @@ +09,23,53,00076 +AB,C:\Programme\Scm Group\Xilog Plus\Job\PRGCANTEST.PGM,,1600,600,50,13,14,23,13,18,47,00,03,03,00,04,05,2,00,01,31,50 +AB,C:\Programme\Scm Group\Xilog Plus\Job\PRGCANTEST.PGM,,1600,600,50,13,38,39,13,41,16,00,02,37,00,02,40,1,00,02,37,00 +AB,C:\Programme\Scm Group\Xilog Plus\Job\PRGCANTEST.PGM,,1600,600,50,13,57,11,14,02,53,00,03,50,00,03,53,1,00,03,50,00 +AB,C:\Programme\Scm Group\Xilog Plus\Job\PRGCANTEST.PGM,,1600,600,50,14,32,41,15,07,23,00,34,25,00,34,45,7,00,04,55,00 +AB,C:\Programme\Scm Group\Xilog Plus\Job\PRGCANTEST.PGM,,1600,600,50,15,18,04,00,00,49,08,39,58,08,42,45,65,00,07,59,96 \ No newline at end of file diff --git a/MTC_Adapter/MTC_Adapter/Resources/MTCA.ico b/MTC_Adapter/MTC_Adapter/Resources/MTCA.ico index aa5c63e6969d8876d23f39c3d1f10e50af286cd0..f989ea3c587962e842dd541eb15a72d619b39f01 100644 GIT binary patch literal 148333 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 Q!Pv%wX$)WR9JQVOKZcdauK)l5 literal 151232 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%0DE;eN4{!_fX#`h>9Yk6yOWE2Zw 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 F^?w?%ex3jT diff --git a/MTC_Adapter/VersGen/VersGen.cs b/MTC_Adapter/VersGen/VersGen.cs index 78ad84c..59f5edc 100644 --- a/MTC_Adapter/VersGen/VersGen.cs +++ b/MTC_Adapter/VersGen/VersGen.cs @@ -5,7 +5,7 @@ using System.Reflection; -[assembly: AssemblyVersion("1.3.9999.119")] -[assembly: AssemblyFileVersion("1.3.9999.119")] +[assembly: AssemblyVersion("1.4.9999.125")] +[assembly: AssemblyFileVersion("1.4.9999.125")] [assembly: AssemblyCopyright("Steamware-CMS-SCM © 2015-2017")] [assembly: AssemblyCompany("Steamware-CMS-SCM")] diff --git a/MTC_Adapter/VersGen/VersGen.tt b/MTC_Adapter/VersGen/VersGen.tt index 75e8ef4..3723919 100644 --- a/MTC_Adapter/VersGen/VersGen.tt +++ b/MTC_Adapter/VersGen/VersGen.tt @@ -6,8 +6,8 @@ using System.Reflection; -[assembly: AssemblyVersion("1.3.9999.<#= this.RevisionNumber #>")] -[assembly: AssemblyFileVersion("1.3.9999.<#= this.RevisionNumber #>")] +[assembly: AssemblyVersion("1.4.9999.<#= this.RevisionNumber #>")] +[assembly: AssemblyFileVersion("1.4.9999.<#= this.RevisionNumber #>")] [assembly: AssemblyCopyright("Steamware-CMS-SCM © 2015-<#= DateTime.Now.Year #>")] [assembly: AssemblyCompany("Steamware-CMS-SCM")] <#+ From f04c64123dd775a356e40e946d46cb00889e8307 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 1 Mar 2017 14:33:40 +0100 Subject: [PATCH 03/46] fanuc: aggiunta lettura asse 7-8 + try/catch --- MTC_Adapter/MTC_Adapter/AdapterFanuc.cs | 179 +++++++++++++----------- 1 file changed, 97 insertions(+), 82 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs index aef1167..93af6c5 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs @@ -1576,92 +1576,107 @@ namespace MTC_Adapter for (int i = 0; i < currAdpConf.nAxis; i++) { - - // in base a indice scelgo valore posizione e load - switch (i) + // per sicurezza try-catch + try { - case 0: - valPos = posAssi.p1; - valLoad = loadAssi.svload1; - break; - case 1: - valPos = posAssi.p2; - valLoad = loadAssi.svload2; - break; - case 2: - valPos = posAssi.p3; - valLoad = loadAssi.svload3; - break; - case 3: - valPos = posAssi.p4; - valLoad = loadAssi.svload4; - break; - case 4: - valPos = posAssi.p5; - valLoad = loadAssi.svload5; - break; - case 5: - valPos = posAssi.p6; - valLoad = loadAssi.svload6; - break; - default: - valPos = posAssi.p1; - valLoad = loadAssi.svload1; - break; + // in base a indice scelgo valore posizione e load + switch (i) + { + case 0: + valPos = posAssi.p1; + valLoad = loadAssi.svload1; + break; + case 1: + valPos = posAssi.p2; + valLoad = loadAssi.svload2; + break; + case 2: + valPos = posAssi.p3; + valLoad = loadAssi.svload3; + break; + case 3: + valPos = posAssi.p4; + valLoad = loadAssi.svload4; + break; + case 4: + valPos = posAssi.p5; + valLoad = loadAssi.svload5; + break; + case 5: + valPos = posAssi.p6; + valLoad = loadAssi.svload6; + break; + case 6: + valPos = posAssi.p7; + valLoad = loadAssi.svload7; + break; + case 7: + valPos = posAssi.p8; + valLoad = loadAssi.svload8; + break; + default: + valPos = posAssi.p1; + valLoad = loadAssi.svload1; + break; + } + + // popolo valori... + vettAxis[i].mAxLoad.Value = (double)(valLoad.data) / Math.Pow(10, valLoad.dec); + newPos = (double)(valPos.abs.data) / Math.Pow(10, valPos.abs.dec); + vettAxis[i].mAxPosAct.Value = newPos; + vettAxis[i].mAxPosTgt.Value = newPos + (double)(valPos.dist.data) / Math.Pow(10, valPos.dist.dec); + + vettAxis[i].mAxFeedAct.Value = FeedRate; + + // calcolo distanza e salvo valore... + distPerc = newPos - prevPosAxis[i]; + + // sistemo direzione +/- (POS/NEG se lineari, CCW/CW se rotativi) + if (distPerc != 0) + { + newDir = Convert.ToInt32(distPerc / Math.Abs(distPerc)); + } + else + { + newDir = prevDirAxis[i]; + } + + // verifico tipo direzione da tipo asse... + tipoAsse = vettAxis[i].mAxType.Value.ToString(); + if (tipoAsse == "LINEAR") + { + // ?: conditional operator. + direzione = (newDir > 0) ? "POSITIVE" : "NEGATIVE"; + } + else if (tipoAsse == "ROTARY") + { + direzione = (newDir > 0) ? "CLOCKWISE" : "COUNTER_CLOCKWISE"; + } + + vettAxis[i].mAxDir.Value = direzione; + + + if (utils.CRB("verbose")) + { + + sb.AppendLine(string.Format("Asse {0}: PosAct:{1:N3}, ToGo:{2:N3}{3} | {4}", valPos.abs.name, (double)(valPos.abs.data) / Math.Pow(10, valPos.abs.dec), valPos.dist.name, (double)(valPos.dist.data) / Math.Pow(10, valPos.dist.dec), direzione)); + } + + // salvo valori vettore prec... + prevPosAxis[i] = newPos; + prevDirAxis[i] = newDir; + + //vettAxis[i].mAxMainProc.Value = AxData.AxisMainProc; + //vettAxis[i].mAxIsMaster.Value = AxData.AxisIsMaster; + //vettAxis[i].mAxMastId.Value = AxData.AxisMastId; + vettAxis[i].mAxFeedOver.Value = FeedRateOver; + //vettAxis[i].mAxAccelAct.Value = AxData.AxisAccel; + //vettAxis[i].mAxBattery.Value = AxData.AxisBattery; } - - // popolo valori... - vettAxis[i].mAxLoad.Value = (double)(valLoad.data) / Math.Pow(10, valLoad.dec); - newPos = (double)(valPos.abs.data) / Math.Pow(10, valPos.abs.dec); - vettAxis[i].mAxPosAct.Value = newPos; - vettAxis[i].mAxPosTgt.Value = newPos + (double)(valPos.dist.data) / Math.Pow(10, valPos.dist.dec); - - vettAxis[i].mAxFeedAct.Value = FeedRate; - - // calcolo distanza e salvo valore... - distPerc = newPos - prevPosAxis[i]; - - // sistemo direzione +/- (POS/NEG se lineari, CCW/CW se rotativi) - if (distPerc != 0) + catch { - newDir = Convert.ToInt32(distPerc / Math.Abs(distPerc)); + lg.Error(string.Format("Errore in lettura asse {0}", i)); } - else - { - newDir = prevDirAxis[i]; - } - - // verifico tipo direzione da tipo asse... - tipoAsse = vettAxis[i].mAxType.Value.ToString(); - if (tipoAsse == "LINEAR") - { - // ?: conditional operator. - direzione = (newDir > 0) ? "POSITIVE" : "NEGATIVE"; - } - else if (tipoAsse == "ROTARY") - { - direzione = (newDir > 0) ? "CLOCKWISE" : "COUNTER_CLOCKWISE"; - } - - vettAxis[i].mAxDir.Value = direzione; - - - if (utils.CRB("verbose")) - { - - sb.AppendLine(string.Format("Asse {0}: PosAct:{1:N3}, ToGo:{2:N3}{3} | {4}", valPos.abs.name, (double)(valPos.abs.data) / Math.Pow(10, valPos.abs.dec), valPos.dist.name, (double)(valPos.dist.data) / Math.Pow(10, valPos.dist.dec), direzione)); - } - - // salvo valori vettore prec... - prevPosAxis[i] = newPos; - prevDirAxis[i] = newDir; - - //vettAxis[i].mAxMainProc.Value = AxData.AxisMainProc; - //vettAxis[i].mAxIsMaster.Value = AxData.AxisIsMaster; - //vettAxis[i].mAxMastId.Value = AxData.AxisMastId; - vettAxis[i].mAxFeedOver.Value = FeedRateOver; - //vettAxis[i].mAxAccelAct.Value = AxData.AxisAccel; - //vettAxis[i].mAxBattery.Value = AxData.AxisBattery; } parentForm.dataMonitor += sb.ToString(); From 8129c0065ec1df7cc8877c3602ac64b61284c17f Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 1 Mar 2017 16:32:07 +0100 Subject: [PATCH 04/46] appunti x lettura assi oltre 6... --- MTC_Adapter/CMSCncLib/CMSCncLib.vbproj | 2 ++ MTC_Adapter/MTC_Adapter/AdapterFanuc.cs | 1 + 2 files changed, 3 insertions(+) diff --git a/MTC_Adapter/CMSCncLib/CMSCncLib.vbproj b/MTC_Adapter/CMSCncLib/CMSCncLib.vbproj index 8908e49..53b6576 100644 --- a/MTC_Adapter/CMSCncLib/CMSCncLib.vbproj +++ b/MTC_Adapter/CMSCncLib/CMSCncLib.vbproj @@ -29,6 +29,8 @@ bin\Release\ CMSCncLib.xml 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + + On diff --git a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs index 93af6c5..4be4613 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs @@ -1615,6 +1615,7 @@ namespace MTC_Adapter valLoad = loadAssi.svload8; break; default: + // 2017.03.01 suggerimento Fabio: in CMS_FANUC in advanced compiler options mettere FS30D=1,SIEMENS=1 x leggere + assi?!? valPos = posAssi.p1; valLoad = loadAssi.svload1; break; From 342e24d73e0b3befd52e703c817dca66a3949aff Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 2 Mar 2017 10:19:27 +0100 Subject: [PATCH 05/46] inserita nuova FWlib modificata x 32AXIS + conf parametro build del progetto CNC_FANUC --- MTC_Adapter/CMSCncLib/CMSCncLib.vbproj | 3 +- .../CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb | 4114 +++++++++-------- MTC_Adapter/MTC_Adapter/AdapterFanuc.cs | 32 + .../MTC_Adapter/DATA/CONF/AlarmList.map | 1301 ++++-- .../MTC_Adapter/DATA/CONF/EsaKvara.ini | 90 - .../MTC_Adapter/DATA/CONF/SCM_prodFile.pro | 6 - MTC_Adapter/MTC_Adapter/Resources/MTCA.ico | Bin 148333 -> 1150 bytes 7 files changed, 3136 insertions(+), 2410 deletions(-) delete mode 100644 MTC_Adapter/MTC_Adapter/DATA/CONF/EsaKvara.ini delete mode 100644 MTC_Adapter/MTC_Adapter/DATA/CONF/SCM_prodFile.pro diff --git a/MTC_Adapter/CMSCncLib/CMSCncLib.vbproj b/MTC_Adapter/CMSCncLib/CMSCncLib.vbproj index 53b6576..e808fa6 100644 --- a/MTC_Adapter/CMSCncLib/CMSCncLib.vbproj +++ b/MTC_Adapter/CMSCncLib/CMSCncLib.vbproj @@ -29,8 +29,7 @@ bin\Release\ CMSCncLib.xml 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 - - + FS30D=1 On diff --git a/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb b/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb index 86a4921..2a3b8ac 100644 --- a/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb +++ b/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb @@ -16,89 +16,89 @@ Public Class Focas1 Public Const MAX_AXIS = 32 #Else #If M_AXIS2 Then - Public Const MAX_AXIS = 24 + Public Const MAX_AXIS = 24 #Else #If FS15D Then - Public Const MAX_AXIS = 10 + Public Const MAX_AXIS = 10 #Else Public Const MAX_AXIS = 8 #End If #End If #End If - Public Const ALL_AXES = (-1) + Public Const ALL_AXES = (-1) Public Const ALL_SPINDLES = (-1) ' Error Codes - Public Const EW_PROTOCOL = (-17) ' protocol error - Public Const EW_SOCKET = (-16) ' Windows socket error - Public Const EW_NODLL = (-15) ' DLL not exist error - Public Const EW_BUS = (-11) ' bus error - Public Const EW_SYSTEM2 = (-10) ' system error - Public Const EW_HSSB = (-9) ' hssb communication error - Public Const EW_HANDLE = (-8) ' Windows library handle error - Public Const EW_VERSION = (-7) ' CNC/PMC version missmatch - Public Const EW_UNEXP = (-6) ' abnormal error - Public Const EW_SYSTEM = (-5) ' system error - Public Const EW_PARITY = (-4) ' shared RAM parity error - Public Const EW_MMCSYS = (-3) ' emm386 or mmcsys install error - Public Const EW_RESET = (-2) ' reset or stop occured error - Public Const EW_BUSY = (-1) ' busy error - Public Const EW_OK = 0 ' no problem - Public Const EW_FUNC = 1 ' command prepare error - Public Const EW_NOPMC = 1 ' pmc not exist - Public Const EW_LENGTH = 2 ' data block length error - Public Const EW_NUMBER = 3 ' data number error - Public Const EW_RANGE = 3 ' address range error - Public Const EW_ATTRIB = 4 ' data attribute error - Public Const EW_TYPE = 4 ' data type error - Public Const EW_DATA = 5 ' data error - Public Const EW_NOOPT = 6 ' no option error - Public Const EW_PROT = 7 ' write protect error - Public Const EW_OVRFLOW = 8 ' memory overflow error - Public Const EW_PARAM = 9 ' cnc parameter not correct error - Public Const EW_BUFFER = 10 ' buffer error - Public Const EW_PATH = 11 ' path error - Public Const EW_MODE = 12 ' cnc mode error - Public Const EW_REJECT = 13 ' execution rejected error - Public Const EW_DTSRVR = 14 ' data server error - Public Const EW_ALARM = 15 ' alarm has been occurred - Public Const EW_STOP = 16 ' CNC is not running - Public Const EW_PASSWD = 17 ' protection data error + Public Const EW_PROTOCOL = (-17) ' protocol error + Public Const EW_SOCKET = (-16) ' Windows socket error + Public Const EW_NODLL = (-15) ' DLL not exist error + Public Const EW_BUS = (-11) ' bus error + Public Const EW_SYSTEM2 = (-10) ' system error + Public Const EW_HSSB = (-9) ' hssb communication error + Public Const EW_HANDLE = (-8) ' Windows library handle error + Public Const EW_VERSION = (-7) ' CNC/PMC version missmatch + Public Const EW_UNEXP = (-6) ' abnormal error + Public Const EW_SYSTEM = (-5) ' system error + Public Const EW_PARITY = (-4) ' shared RAM parity error + Public Const EW_MMCSYS = (-3) ' emm386 or mmcsys install error + Public Const EW_RESET = (-2) ' reset or stop occured error + Public Const EW_BUSY = (-1) ' busy error + Public Const EW_OK = 0 ' no problem + Public Const EW_FUNC = 1 ' command prepare error + Public Const EW_NOPMC = 1 ' pmc not exist + Public Const EW_LENGTH = 2 ' data block length error + Public Const EW_NUMBER = 3 ' data number error + Public Const EW_RANGE = 3 ' address range error + Public Const EW_ATTRIB = 4 ' data attribute error + Public Const EW_TYPE = 4 ' data type error + Public Const EW_DATA = 5 ' data error + Public Const EW_NOOPT = 6 ' no option error + Public Const EW_PROT = 7 ' write protect error + Public Const EW_OVRFLOW = 8 ' memory overflow error + Public Const EW_PARAM = 9 ' cnc parameter not correct error + Public Const EW_BUFFER = 10 ' buffer error + Public Const EW_PATH = 11 ' path error + Public Const EW_MODE = 12 ' cnc mode error + Public Const EW_REJECT = 13 ' execution rejected error + Public Const EW_DTSRVR = 14 ' data server error + Public Const EW_ALARM = 15 ' alarm has been occurred + Public Const EW_STOP = 16 ' CNC is not running + Public Const EW_PASSWD = 17 ' protection data error ' Result codes of DNC operation - - Public Const DNC_NORMAL = (-1) ' normal completed - Public Const DNC_CANCEL = (-32768) ' DNC operation was canceled by CNC - Public Const DNC_OPENERR = (-514) ' file open error - Public Const DNC_NOFILE = (-516) ' file not found - Public Const DNC_READERR = (-517) ' read error -'-------------------- -' -' Structure Template -' -'-------------------- -'------------------------------------- -' CNC: Control axis / spindle related -'------------------------------------- + Public Const DNC_NORMAL = (-1) ' normal completed + Public Const DNC_CANCEL = (-32768) ' DNC operation was canceled by CNC + Public Const DNC_OPENERR = (-514) ' file open error + Public Const DNC_NOFILE = (-516) ' file not found + Public Const DNC_READERR = (-517) ' read error + + '-------------------- + ' + ' Structure Template + ' + '-------------------- + '------------------------------------- + ' CNC: Control axis / spindle related + '------------------------------------- ' cnc_actf:read actual axis feedrate(F) ' cnc_acts:read actual spindle speed(S) - _ + Public Structure ODBACT - _ + Public dummy As Short() ' dummy Public data As Integer ' actual feed / actual spindle End Structure 'ODBACT ' cnc_acts2:read actual spindle speed(S) ' (All or specified ) - _ + Public Structure ODBACT2 Public datano As Short ' spindle number Public type As Short ' dummy - _ + Public data As Integer() ' spindle data End Structure 'ODBACT2 @@ -111,35 +111,35 @@ Public Class Focas1 ' cnc_accdecdly:read acceleration/deceleration delay value ' cnc_absolute2:read absolute axis position 2 ' cnc_relative2:read relative axis position 2 - _ - Public Structure ODBAXIS + + Public Structure ODBAXIS Public dummy As Short ' dummy Public type As Short ' axis number - _ + Public data As Integer() ' data value End Structure 'ODBAXIS ' cnc_rddynamic:read all dynamic data - _ - Public Structure FAXIS - _ + + Public Structure FAXIS + Public absolute As Integer() ' absolute position - _ + Public machine As Integer() ' machine position - _ + Public relative As Integer() ' relative position - _ + Public distance As Integer() ' distance to go End Structure 'FAXIS - _ - Public Structure OAXIS - Public absolute As Integer ' absolute position - Public machine As Integer ' machine position - Public relative As Integer ' relative position - Public distance As Integer ' distance to go + + Public Structure OAXIS + Public absolute As Integer ' absolute position + Public machine As Integer ' machine position + Public relative As Integer ' relative position + Public distance As Integer ' distance to go End Structure #If ONO8D = Nothing Then - _ + Public Structure ODBDY_1 Public dummy As Short Public axis As Short ' axis number @@ -152,7 +152,7 @@ Public Class Focas1 Public pos As FAXIS End Structure - _ + Public Structure ODBDY_2 Public dummy As Short Public axis As Short ' axis number @@ -192,7 +192,7 @@ Public Class Focas1 #End If ' cnc_rddynamic2:read all dynamic data - _ + Public Structure ODBDY2_1 Public dummy As Short Public axis As Short ' axis number @@ -204,7 +204,7 @@ Public Class Focas1 Public acts As Integer ' actual spindle speed Public pos As FAXIS End Structure - _ + Public Structure ODBDY2_2 Public dummy As Short Public axis As Short ' axis number @@ -218,45 +218,45 @@ Public Class Focas1 End Structure ' cnc_wrrelpos:set origin / preset relative axis position - _ + Public Structure IDBWRR Public datano As Short ' dummy Public type As Short ' axis number - _ + Public data As Integer() ' preset data End Structure ' cnc_prstwkcd:preset work coordinate - _ + Public Structure IDBWRA Public datano As Short ' dummy Public type As Short ' axis number - _ + Public data As Integer() ' preset data End Structure ' cnc_rdmovrlap:read manual overlapped motion value - _ + Public Structure IODBOVL Public datano As Short ' dummy Public type As Short ' axis number - _ + Public data As Integer() ' data value:[2][MAX_AXIS] End Structure ' cnc_rdspload:read load information of serial spindle ' cnc_rdspmaxrpm:read maximum r.p.m. ratio of serial spindle ' cnc_rdspgear:read gear ratio of serial spindle - _ + Public Structure ODBSPN Public datano As Short ' dummy Public type As Short ' axis number - _ + Public data As Short() ' preset data End Structure ' cnc_rdposition:read tool position - _ + Public Structure POSELM Public data As Integer ' position data Public dec As Short ' place of decimal point of position data @@ -266,16 +266,15 @@ Public Class Focas1 Public suff As Char ' axis name preffix End Structure - _ + Public Structure POSELMALL Public abs As POSELM Public mach As POSELM Public rel As POSELM Public dist As POSELM End Structure - -#If M_AXIS2 Then - _ +#If FS30D Then + _ Public Structure ODBPOS Public p1 As POSELMALL Public p2 As POSELMALL @@ -301,28 +300,67 @@ Public Class Focas1 Public p22 As POSELMALL Public p23 As POSELMALL Public p24 As POSELMALL - ' In case of 24 axes. + Public p25 As POSELMALL + Public p26 As POSELMALL + Public p27 As POSELMALL + Public p28 As POSELMALL + Public p29 As POSELMALL + Public p30 As POSELMALL + Public p31 As POSELMALL + Public p32 As POSELMALL + ' In case of 32 axes. ' if you need the more information, you must be add the member. End Structure #Else +#If M_AXIS2 Then + _ + Public Structure ODBPOS + Public p1 As POSELMALL + Public p2 As POSELMALL + Public p3 As POSELMALL + Public p4 As POSELMALL + Public p5 As POSELMALL + Public p6 As POSELMALL + Public p7 As POSELMALL + Public p8 As POSELMALL + Public p9 As POSELMALL + Public p10 As POSELMALL + Public p11 As POSELMALL + Public p12 As POSELMALL + Public p13 As POSELMALL + Public p14 As POSELMALL + Public p15 As POSELMALL + Public p16 As POSELMALL + Public p17 As POSELMALL + Public p18 As POSELMALL + Public p19 As POSELMALL + Public p20 As POSELMALL + Public p21 As POSELMALL + Public p22 As POSELMALL + Public p23 As POSELMALL + Public p24 As POSELMALL + ' In case of 24 axes. + ' if you need the more information, you must be add the member. + End Structure +#Else #If FS15D Then - _ - Public Structure ODBPOS - Public p1 As POSELMALL - Public p2 As POSELMALL - Public p3 As POSELMALL - Public p4 As POSELMALL - Public p5 As POSELMALL - Public p6 As POSELMALL - Public p7 As POSELMALL - Public p8 As POSELMALL - Public p9 As POSELMALL - Public p10 As POSELMALL - ' In case of 10 axes. - ' if you need the more information, you must be add the member. - End Structure + _ + Public Structure ODBPOS + Public p1 As POSELMALL + Public p2 As POSELMALL + Public p3 As POSELMALL + Public p4 As POSELMALL + Public p5 As POSELMALL + Public p6 As POSELMALL + Public p7 As POSELMALL + Public p8 As POSELMALL + Public p9 As POSELMALL + Public p10 As POSELMALL + ' In case of 10 axes. + ' if you need the more information, you must be add the member. + End Structure #Else - _ + Public Structure ODBPOS Public p1 As POSELMALL Public p2 As POSELMALL @@ -336,10 +374,11 @@ Public Class Focas1 ' if you need the more information, you must be add the member. End Structure #End If +#End If #End If ' cnc_rdhndintrpt:read handle interruption - _ + Public Structure ODBHND_data Public input As POSELM ' input unit Public output As POSELM ' output unit @@ -392,7 +431,7 @@ Public Class Focas1 ' if you need the more information, you must be add the member. End Structure #Else - _ + Public Structure ODBHND Public p1 As ODBHND_data Public p2 As ODBHND_data @@ -409,7 +448,7 @@ Public Class Focas1 #End If ' cnc_rdspeed:read current speed - _ + Public Structure SPEEDELM Public data As Integer ' speed data Public dec As Short ' decimal position @@ -419,7 +458,7 @@ Public Class Focas1 Public suff As Byte ' suffix End Structure - _ + Public Structure ODBSPEED Public actf As SPEEDELM ' actual feed rate Public acts As SPEEDELM ' actual spindle speed @@ -427,10 +466,10 @@ Public Class Focas1 ' cnc_rdsvmeter:read servo load meter ' cnc_rdspmeter:read spindle load meter - _ + Public Structure LOADELM Public data As Integer ' load meter - Public dec As Short ' decimal position + Public dec As Short ' decimal position Public unit As Short ' unit Public name As Byte ' name of data Public suff1 As Byte ' suffix @@ -482,7 +521,7 @@ Public Class Focas1 Public svload10 As LOADELM ' servo load meter End Structure #Else - _ + Public Structure ODBSVLOAD Public svload1 As LOADELM ' servo load meter Public svload2 As LOADELM ' servo load meter @@ -496,12 +535,12 @@ Public Class Focas1 #End If #End If - _ + Public Structure ODBSPLOAD_data Public spload As LOADELM ' spindle load meter Public spspeed As LOADELM ' spindle speed End Structure - _ + Public Structure ODBSPLOAD Public spload1 As ODBSPLOAD_data ' spindle load Public spload2 As ODBSPLOAD_data ' spindle load @@ -510,14 +549,14 @@ Public Class Focas1 End Structure ' cnc_rdexecpt:read execution program pointer - _ + Public Structure PRGPNT Public prog_no As Integer ' program number - Public blk_no As Integer ' block number + Public blk_no As Integer ' block number End Structure ' cnc_rd5axmandt:read manual feed for 5-axis machining - _ + Public Structure ODB5AXMAN Public type1 As Short Public type2 As Short @@ -525,27 +564,27 @@ Public Class Focas1 Public data1 As Integer Public data2 As Integer Public data3 As Integer - Public c1 As Integer - Public c2 As Integer + Public c1 As Integer + Public c2 As Integer Public dummy As Integer - Public td As Integer - Public r1 As Integer - Public r2 As Integer - Public vr As Integer - Public h1 As Integer - Public h2 As Integer + Public td As Integer + Public r1 As Integer + Public r2 As Integer + Public vr As Integer + Public h1 As Integer + Public h2 As Integer End Structure -'---------------------- -' CNC: Program related -'---------------------- + '---------------------- + ' CNC: Program related + '---------------------- ' cnc_rddncdgndt:read the diagnosis data of DNC operation - _ + Public Structure ODBDNCDGN Public ctrl_word As Short Public can_word As Short - _ + Public nc_file As Char() Public read_ptr As Short Public write_ptr As Short @@ -555,31 +594,31 @@ Public Class Focas1 ' cnc_upload:upload NC program ' cnc_cupload:upload NC program(conditional) - _ + Public Structure ODBUP - _ + Public dummy As Short() ' dummy - _ + Public data As String ' data End Structure ' In case that the number of data is 256 ' cnc_buff:read buffer status for downloading/verification NC program - _ + Public Structure ODBBUF - _ + Public dummy As Short() ' dummy Public data As Short ' buffer status End Structure ' cnc_rdprogdir:read program directory - _ + Public Structure PRGDIR - _ + Public prg_data As Char() ' directory data End Structure ' In case that the number of data is 256 ' cnc_rdproginfo:read program information - _ + Public Structure ODBNC_1 Public reg_prg As Short ' registered program number Public unreg_prg As Short ' unregistered program number @@ -587,17 +626,17 @@ Public Class Focas1 Public unused_mem As Integer ' unused memory area End Structure - _ + Public Structure ODBNC_2 - _ + Public asc As Char() ' ASCII string type End Structure ' cnc_rdprgnum:read program number under execution #If ONO8D = Nothing Then - _ + Public Structure ODBPRO - _ + Public dummy As Short() ' dummy Public data As Short ' running program number Public mdata As Short ' main program number @@ -613,24 +652,24 @@ Public Class Focas1 #End If ' cnc_exeprgname:read program name under execution - _ + Public Structure ODBEXEPRG - _ - Public name As Char() ' running program name + + Public name As Char() ' running program name Public o_num As Integer ' running program number End Structure ' cnc_rdseqnum:read sequence number under execution - _ + Public Structure ODBSEQ - _ + Public dummy As Short() ' dummy Public data As Integer ' sequence number End Structure ' cnc_rdmdipntr:read execution pointer for MDI operation #If ONO8D = Nothing Then - _ + Public Structure ODBMDIP Public mdiprog As Short ' exec. program number Public mdipntr As Integer ' exec. pointer @@ -648,118 +687,118 @@ Public Class Focas1 #End If ' cnc_rdaxisdata:read various axis data - _ + Public Structure ODBAXDT_data - _ - Public name As String ' data - Public data As Integer ' position data - Public dec As Short ' decimal position - Public unit As Short ' data unit - Public flag As Short ' flags + + Public name As String ' data + Public data As Integer ' position data + Public dec As Short ' decimal position + Public unit As Short ' data unit + Public flag As Short ' flags Public reserve As Short ' reserve End Structure - _ + Public Structure ODBAXDT - Public data1 As ODBAXDT_data - Public data2 As ODBAXDT_data - Public data3 As ODBAXDT_data - Public data4 As ODBAXDT_data - Public data5 As ODBAXDT_data - Public data6 As ODBAXDT_data - Public data7 As ODBAXDT_data - Public data8 As ODBAXDT_data - Public data9 As ODBAXDT_data - Public data10 As ODBAXDT_data - Public data11 As ODBAXDT_data - Public data12 As ODBAXDT_data - Public data13 As ODBAXDT_data - Public data14 As ODBAXDT_data - Public data15 As ODBAXDT_data - Public data16 As ODBAXDT_data - Public data17 As ODBAXDT_data - Public data18 As ODBAXDT_data - Public data19 As ODBAXDT_data - Public data20 As ODBAXDT_data - Public data21 As ODBAXDT_data - Public data22 As ODBAXDT_data - Public data23 As ODBAXDT_data - Public data24 As ODBAXDT_data - Public data25 As ODBAXDT_data - Public data26 As ODBAXDT_data - Public data27 As ODBAXDT_data - Public data28 As ODBAXDT_data - Public data29 As ODBAXDT_data - Public data30 As ODBAXDT_data - Public data31 As ODBAXDT_data - Public data32 As ODBAXDT_data - Public data33 As ODBAXDT_data - Public data34 As ODBAXDT_data - Public data35 As ODBAXDT_data - Public data36 As ODBAXDT_data - Public data37 As ODBAXDT_data - Public data38 As ODBAXDT_data - Public data39 As ODBAXDT_data - Public data40 As ODBAXDT_data - Public data41 As ODBAXDT_data - Public data42 As ODBAXDT_data - Public data43 As ODBAXDT_data - Public data44 As ODBAXDT_data - Public data45 As ODBAXDT_data - Public data46 As ODBAXDT_data - Public data47 As ODBAXDT_data - Public data48 As ODBAXDT_data - Public data49 As ODBAXDT_data - Public data50 As ODBAXDT_data - Public data51 As ODBAXDT_data - Public data52 As ODBAXDT_data - Public data53 As ODBAXDT_data - Public data54 As ODBAXDT_data - Public data55 As ODBAXDT_data - Public data56 As ODBAXDT_data - Public data57 As ODBAXDT_data - Public data58 As ODBAXDT_data - Public data59 As ODBAXDT_data - Public data60 As ODBAXDT_data - Public data61 As ODBAXDT_data - Public data62 As ODBAXDT_data - Public data63 As ODBAXDT_data - Public data64 As ODBAXDT_data - Public data65 As ODBAXDT_data - Public data66 As ODBAXDT_data - Public data67 As ODBAXDT_data - Public data68 As ODBAXDT_data - Public data69 As ODBAXDT_data - Public data70 As ODBAXDT_data - Public data71 As ODBAXDT_data - Public data72 As ODBAXDT_data - Public data73 As ODBAXDT_data - Public data74 As ODBAXDT_data - Public data75 As ODBAXDT_data - Public data76 As ODBAXDT_data - Public data77 As ODBAXDT_data - Public data78 As ODBAXDT_data - Public data79 As ODBAXDT_data - Public data80 As ODBAXDT_data - Public data81 As ODBAXDT_data - Public data82 As ODBAXDT_data - Public data83 As ODBAXDT_data - Public data84 As ODBAXDT_data - Public data85 As ODBAXDT_data - Public data86 As ODBAXDT_data - Public data87 As ODBAXDT_data - Public data88 As ODBAXDT_data - Public data89 As ODBAXDT_data - Public data90 As ODBAXDT_data - Public data91 As ODBAXDT_data - Public data92 As ODBAXDT_data - Public data93 As ODBAXDT_data - Public data94 As ODBAXDT_data - Public data95 As ODBAXDT_data - Public data96 As ODBAXDT_data - Public data97 As ODBAXDT_data - Public data98 As ODBAXDT_data - Public data99 As ODBAXDT_data + Public data1 As ODBAXDT_data + Public data2 As ODBAXDT_data + Public data3 As ODBAXDT_data + Public data4 As ODBAXDT_data + Public data5 As ODBAXDT_data + Public data6 As ODBAXDT_data + Public data7 As ODBAXDT_data + Public data8 As ODBAXDT_data + Public data9 As ODBAXDT_data + Public data10 As ODBAXDT_data + Public data11 As ODBAXDT_data + Public data12 As ODBAXDT_data + Public data13 As ODBAXDT_data + Public data14 As ODBAXDT_data + Public data15 As ODBAXDT_data + Public data16 As ODBAXDT_data + Public data17 As ODBAXDT_data + Public data18 As ODBAXDT_data + Public data19 As ODBAXDT_data + Public data20 As ODBAXDT_data + Public data21 As ODBAXDT_data + Public data22 As ODBAXDT_data + Public data23 As ODBAXDT_data + Public data24 As ODBAXDT_data + Public data25 As ODBAXDT_data + Public data26 As ODBAXDT_data + Public data27 As ODBAXDT_data + Public data28 As ODBAXDT_data + Public data29 As ODBAXDT_data + Public data30 As ODBAXDT_data + Public data31 As ODBAXDT_data + Public data32 As ODBAXDT_data + Public data33 As ODBAXDT_data + Public data34 As ODBAXDT_data + Public data35 As ODBAXDT_data + Public data36 As ODBAXDT_data + Public data37 As ODBAXDT_data + Public data38 As ODBAXDT_data + Public data39 As ODBAXDT_data + Public data40 As ODBAXDT_data + Public data41 As ODBAXDT_data + Public data42 As ODBAXDT_data + Public data43 As ODBAXDT_data + Public data44 As ODBAXDT_data + Public data45 As ODBAXDT_data + Public data46 As ODBAXDT_data + Public data47 As ODBAXDT_data + Public data48 As ODBAXDT_data + Public data49 As ODBAXDT_data + Public data50 As ODBAXDT_data + Public data51 As ODBAXDT_data + Public data52 As ODBAXDT_data + Public data53 As ODBAXDT_data + Public data54 As ODBAXDT_data + Public data55 As ODBAXDT_data + Public data56 As ODBAXDT_data + Public data57 As ODBAXDT_data + Public data58 As ODBAXDT_data + Public data59 As ODBAXDT_data + Public data60 As ODBAXDT_data + Public data61 As ODBAXDT_data + Public data62 As ODBAXDT_data + Public data63 As ODBAXDT_data + Public data64 As ODBAXDT_data + Public data65 As ODBAXDT_data + Public data66 As ODBAXDT_data + Public data67 As ODBAXDT_data + Public data68 As ODBAXDT_data + Public data69 As ODBAXDT_data + Public data70 As ODBAXDT_data + Public data71 As ODBAXDT_data + Public data72 As ODBAXDT_data + Public data73 As ODBAXDT_data + Public data74 As ODBAXDT_data + Public data75 As ODBAXDT_data + Public data76 As ODBAXDT_data + Public data77 As ODBAXDT_data + Public data78 As ODBAXDT_data + Public data79 As ODBAXDT_data + Public data80 As ODBAXDT_data + Public data81 As ODBAXDT_data + Public data82 As ODBAXDT_data + Public data83 As ODBAXDT_data + Public data84 As ODBAXDT_data + Public data85 As ODBAXDT_data + Public data86 As ODBAXDT_data + Public data87 As ODBAXDT_data + Public data88 As ODBAXDT_data + Public data89 As ODBAXDT_data + Public data90 As ODBAXDT_data + Public data91 As ODBAXDT_data + Public data92 As ODBAXDT_data + Public data93 As ODBAXDT_data + Public data94 As ODBAXDT_data + Public data95 As ODBAXDT_data + Public data96 As ODBAXDT_data + Public data97 As ODBAXDT_data + Public data98 As ODBAXDT_data + Public data99 As ODBAXDT_data Public data100 As ODBAXDT_data Public data101 As ODBAXDT_data Public data102 As ODBAXDT_data @@ -792,7 +831,7 @@ Public Class Focas1 End Structure ' cnc_rdspcss:read constant surface speed data - _ + Public Structure ODBCSS Public srpm As Integer ' order spindle speed Public sspm As Integer ' order constant spindle speed @@ -800,124 +839,124 @@ Public Class Focas1 End Structure ' cnc_rdpdf_drive:read program drive directory - _ + Public Structure ODBPDFDRV Public max_num As Short ' maximum drive number - Public dummy As Short - _ - Public drive1 As String - _ - Public drive2 As String - _ - Public drive3 As String - _ - Public drive4 As String - _ - Public drive5 As String - _ - Public drive6 As String - _ - Public drive7 As String - _ - Public drive8 As String - _ - Public drive9 As String - _ + Public dummy As Short + + Public drive1 As String + + Public drive2 As String + + Public drive3 As String + + Public drive4 As String + + Public drive5 As String + + Public drive6 As String + + Public drive7 As String + + Public drive8 As String + + Public drive9 As String + Public drive10 As String - _ + Public drive11 As String - _ + Public drive12 As String - _ + Public drive13 As String - _ + Public drive14 As String - _ + Public drive15 As String - _ + Public drive16 As String End Structure ' cnc_rdpdf_inf:read program drive information - _ + Public Structure ODBPDFINF Public used_page As Integer ' used capacity - Public all_page As Integer ' all capacity - Public used_dir As Integer ' used directory number - Public all_dir As Integer ' all directory number + Public all_page As Integer ' all capacity + Public used_dir As Integer ' used directory number + Public all_dir As Integer ' all directory number End Structure ' cnc_rdpdf_subdir:read directory (sub directories) - _ + Public Structure IDBPDFSDIR - _ - Public path As String ' path name - Public req_num As Short ' entry number - Public dummy As Short + + Public path As String ' path name + Public req_num As Short ' entry number + Public dummy As Short End Structure ' cnc_rdpdf_subdir:read directory (sub directories) - _ + Public Structure ODBPDFSDIR Public sub_exist As Short ' existence of sub directory - Public dummy As Short - _ - Public d_f As String ' directory name + Public dummy As Short + + Public d_f As String ' directory name End Structure ' cnc_rdpdf_alldir:read directory (all files) - _ + Public Structure IDBPDFADIR - _ - Public path As String ' path name - Public req_num As Short ' entry number + + Public path As String ' path name + Public req_num As Short ' entry number Public size_kind As Short ' kind of size - Public type As Short ' kind of format - Public dummy As Short + Public type As Short ' kind of format + Public dummy As Short End Structure ' cnc_rdpdf_alldir:read directory (all files) - _ + Public Structure ODBPDFADIR Public data_kind As Short ' kinf of data - Public year As Short ' last date and time - Public mon As Short ' last date and time - Public day As Short ' last date and time - Public hour As Short ' last date and time - Public min As Short ' last date and time - Public sec As Short ' last date and time - Public dummy As Short - Public dummy2 As Integer - Public size As Integer ' size - Public attr As Integer ' attribute - _ - Public d_f As String ' path name - _ - Public comment As String ' comment - _ - Public o_time As String ' comment + Public year As Short ' last date and time + Public mon As Short ' last date and time + Public day As Short ' last date and time + Public hour As Short ' last date and time + Public min As Short ' last date and time + Public sec As Short ' last date and time + Public dummy As Short + Public dummy2 As Integer + Public size As Integer ' size + Public attr As Integer ' attribute + + Public d_f As String ' path name + + Public comment As String ' comment + + Public o_time As String ' comment End Structure ' cnc_rdpdf_subdirn:read file count the directory has - _ + Public Structure ODBPDFNFIL - Public dir_num As Short ' directory + Public dir_num As Short ' directory Public file_num As Short ' file End Structure - + ' cnc_wrpdf_attr:change attribute of program file and directory - _ + Public Structure IDBPDFTDIR - Public slct As Integer ' selection - Public attr As Integer ' data + Public slct As Integer ' selection + Public attr As Integer ' data End Structure -'--------------------------- -' CNC: NC file data related -'--------------------------- + '--------------------------- + ' CNC: NC file data related + '--------------------------- ' cnc_rdtofs:read tool offset value - _ + Public Structure ODBTOFS Public datano As Short ' data number Public type As Short ' data type @@ -926,39 +965,39 @@ Public Class Focas1 ' cnc_rdtofsr:read tool offset value(area specified) ' cnc_wrtofsr:write tool offset value(area specified) - _ + Public Structure OFS_1 - _ + Public m_ofs As Integer() ' M Each - _ + Public m_ofs_a As Integer() ' M-A All - _ + Public t_tip As Short() ' T Each, 2-byte - _ + Public t_ofs As Integer() ' T Each, 4-byte End Structure ' In case that the number of data is 5 - _ + Public Structure OFS_2 - _ + Public m_ofs_b As Integer() ' M-B All End Structure ' In case that the number of data is 5 - _ + Public Structure OFS_3 ' _ - _ + Public m_ofs_c As Integer() ' M-C All End Structure ' In case that the number of data is 5 - _ + Public Structure T_OFS_A Public tip As Short - _ + Public data As Integer() End Structure ' T-A All - _ + Public Structure T_OFS_A_data Public data1 As T_OFS_A Public data2 As T_OFS_A @@ -966,13 +1005,13 @@ Public Class Focas1 Public data4 As T_OFS_A Public data5 As T_OFS_A End Structure ' In case that the number of data is 5 - _ + Public Structure T_OFS_B Public tip As Short - _ + Public data As Integer() End Structure ' T-B All - _ + Public Structure T_OFS_B_data Public data1 As T_OFS_B Public data2 As T_OFS_B @@ -980,35 +1019,35 @@ Public Class Focas1 Public data4 As T_OFS_B Public data5 As T_OFS_B End Structure ' In case that the number of data is 5 - _ + Public Structure IODBTO_1_1 Public datano_s As Short ' start offset number Public type As Short ' offset type Public datano_e As Short ' end offset number Public ofs As OFS_1 End Structure - _ + Public Structure IODBTO_1_2 Public datano_s As Short ' start offset number Public type As Short ' offset type Public datano_e As Short ' end offset number Public ofs As OFS_2 End Structure - _ + Public Structure IODBTO_1_3 Public datano_s As Short ' start offset number Public type As Short ' offset type Public datano_e As Short ' end offset number Public ofs As OFS_3 End Structure - _ + Public Structure IODBTO_2 Public datano_s As Short ' start offset number Public type As Short ' offset type Public datano_e As Short ' end offset number Public tofsa As T_OFS_A_data End Structure - _ + Public Structure IODBTO_3 Public datano_s As Short ' start offset number Public type As Short ' offset type @@ -1018,33 +1057,33 @@ Public Class Focas1 ' cnc_rdzofs:read work zero offset value ' cnc_wrzofs:write work zero offset value - _ + Public Structure IODBZOFS Public datano As Short ' offset NO. Public type As Short ' axis number - _ + Public data As Integer() ' data value End Structure ' cnc_rdzofsr:read work zero offset value(area specified) ' cnc_wrzofsr:write work zero offset value(area specified) - _ + Public Structure IODBZOR Public datano_s As Short ' start offset number Public type As Short ' axis number Public datano_e As Short ' end offset number - _ + Public data As Integer() ' offset value End Structure ' In case that the number of axes is MAX_AXIS, the number of data is 7 ' cnc_rdmsptype:read mesured point value ' cnc_wrmsptype:write mesured point value - _ + Public Structure IODBMSTP Public datano_s As Short ' start offset number Public dummy As Short ' dummy Public datano_e As Short ' end offset number - _ + Public data As SByte() ' mesured point value End Structure @@ -1056,7 +1095,7 @@ Public Class Focas1 ' cnc_wrparas:write parameter(plural specified) ' cnc_rdsetr:read setting data(area specified) ' cnc_wrsets:write setting data(plural specified) - _ + Public Structure REALPRM Public prm_val As Integer ' data of real parameter Public dec_val As Integer ' decimal point of real parameter @@ -1105,7 +1144,7 @@ Public Class Focas1 Public rdata10 As REALPRM End Structure ' In case that the number of alarm is 10 #Else - _ + Public Structure REALPRMS Public rdata1 As REALPRM Public rdata2 As REALPRM @@ -1119,48 +1158,48 @@ Public Class Focas1 #End If #End If - _ + Public Structure IODBPSD_1 - _ + Public datano As Short ' data number - _ + Public type As Short ' axis number - _ + Public cdata As Byte ' parameter / setting data - _ + Public idata As Short - _ + Public ldata As Integer End Structure - _ + Public Structure IODBPSD_2 Public datano As Short ' data number Public type As Short ' axis number Public rdata As REALPRM End Structure - _ + Public Structure IODBPSD_3 - _ + Public datano As Short ' data number - _ + Public type As Short ' axis number - _ + Public cdatas As Byte() - _ + Public idatas As Short() - _ + Public ldatas As Integer() End Structure - _ + Public Structure IODBPSD_4 Public datano As Short ' data number Public type As Short ' axis number Public rdatas As REALPRMS End Structure - _ + Public Structure IODBPSD_A Public data1 As IODBPSD_1 Public data2 As IODBPSD_1 @@ -1170,7 +1209,7 @@ Public Class Focas1 Public data6 As IODBPSD_1 Public data7 As IODBPSD_1 End Structure ' (sample) must be modified - _ + Public Structure IODBPSD_B Public data1 As IODBPSD_2 Public data2 As IODBPSD_2 @@ -1180,7 +1219,7 @@ Public Class Focas1 Public data6 As IODBPSD_2 Public data7 As IODBPSD_2 End Structure ' (sample) must be modified - _ + Public Structure IODBPSD_C Public data1 As IODBPSD_3 Public data2 As IODBPSD_3 @@ -1190,7 +1229,7 @@ Public Class Focas1 Public data6 As IODBPSD_3 Public data7 As IODBPSD_3 End Structure ' (sample) must be modified - _ + Public Structure IODBPSD_D Public data1 As IODBPSD_4 Public data2 As IODBPSD_4 @@ -1204,17 +1243,17 @@ Public Class Focas1 ' cnc_rdparam_ext:read parameAers ' cnc_rddiag_ext:read diagnosis data ' cnc_start_async_wrparam:async parameter write start - _ + Public Structure IODBPRMNO - _ + Public prm As Integer() End Structure - _ + Public Structure IODBPRM_data Public prm_val As Integer ' parameter / setting data Public dec_val As Integer End Structure - _ + Public Structure IODBPRM1 Public data1 As IODBPRM_data Public data2 As IODBPRM_data @@ -1249,7 +1288,7 @@ Public Class Focas1 Public data31 As IODBPRM_data Public data32 As IODBPRM_data End Structure - _ + Public Structure IODBPRM2 Public datano As Integer ' data number Public type As Short ' data type @@ -1258,7 +1297,7 @@ Public Class Focas1 Public unit As Short ' unit information Public data As IODBPRM1 End Structure - _ + Public Structure IODBPRM Public prm1 As IODBPRM2 Public prm2 As IODBPRM2 @@ -1274,17 +1313,17 @@ Public Class Focas1 ' cnc_rdpitchr:read pitch error compensation data(area specified) ' cnc_wrpitchr:write pitch error compensation data(area specified) - _ + Public Structure IODBPI Public datano_s As Short ' start pitch number Public dummy As Short ' dummy Public datano_e As Short ' end pitch number - _ + Public data As SByte() ' offset value End Structure ' In case that the number of data is 5 ' cnc_rdmacro:read custom macro variable - _ + Public Structure ODBM Public datano As Short ' variable number Public dummy As Short ' dummy @@ -1294,12 +1333,12 @@ Public Class Focas1 ' cnc_rdmacror:read custom macro variables(area specified) ' cnc_wrmacror:write custom macro variables(area specified) - _ + Public Structure IODBMR_data Public mcr_val As Integer ' macro variable Public dec_val As Short ' decimal point End Structure - _ + Public Structure IODBMR1 Public data1 As IODBMR_data Public data2 As IODBMR_data @@ -1307,7 +1346,7 @@ Public Class Focas1 Public data4 As IODBMR_data Public data5 As IODBMR_data End Structure ' In case that the number of data is 5 - _ + Public Structure IODBMR Public datano_s As Short ' start macro number Public dummy As Short ' dummy @@ -1316,7 +1355,7 @@ Public Class Focas1 End Structure ' cnc_rdpmacro:read P code macro variable - _ + Public Structure ODBPM Public datano As Integer ' variable number Public dummy As Short ' dummy @@ -1330,7 +1369,7 @@ Public Class Focas1 Public mcr_val As Integer ' macro variable Public dec_val As Short ' decimal point End Structure - _ + Public Structure IODBPR1 Public data1 As IODBPR_data Public data2 As IODBPR_data @@ -1338,7 +1377,7 @@ Public Class Focas1 Public data4 As IODBPR_data Public data5 As IODBPR_data End Structure ' In case that the number of data is 5 - _ + Public Structure IODBPR Public datano_s As Integer ' start macro number Public dummy As Short ' dummy @@ -1347,14 +1386,14 @@ Public Class Focas1 End Structure ' cnc_rdtofsinfo:read tool offset information - _ + Public Structure ODBTLINF Public ofs_type As Short Public use_no As Short End Structure ' cnc_rdtofsinfo2:read tool offset information(2) - _ + Public Structure ODBTLINF2 Public ofs_type As Short Public use_no As Short @@ -1362,14 +1401,14 @@ Public Class Focas1 End Structure ' cnc_rdmacroinfo:read custom macro variable information - _ + Public Structure ODBMVINF Public use_no1 As Short Public use_no2 As Short End Structure ' cnc_rdpmacroinfo:read P code macro variable information - _ + Public Structure ODBPMINF Public use_no1 As Short #If PCD_UWORD Then @@ -1381,147 +1420,147 @@ Public Class Focas1 End Structure ' cnc_tofs_rnge:read validity of tool offset - _ + Public Structure ODBDATRNG Public data_min As Integer ' lower limit Public data_max As Integer ' upper limit - Public status As Integer ' status of setting + Public status As Integer ' status of setting End Structure ' cnc_rdhsprminfo:read the information for function cnc_rdhsparam() - _ + Public Structure HSPINFO_data - _ - Public data1 As Byte() - _ - Public data2 As Byte() - _ - Public data3 As Byte() - _ - Public data4 As Byte() - _ - Public data5 As Byte() - _ - Public data6 As Byte() - _ - Public data7 As Byte() - _ - Public data8 As Byte() + + Public data1 As Byte() + + Public data2 As Byte() + + Public data3 As Byte() + + Public data4 As Byte() + + Public data5 As Byte() + + Public data6 As Byte() + + Public data7 As Byte() + + Public data8 As Byte() End Structure - _ + Public Structure HSPINFO - Public prminfo1 As HSPINFO_data - Public prminfo2 As HSPINFO_data - Public prminfo3 As HSPINFO_data - Public prminfo4 As HSPINFO_data - Public prminfo5 As HSPINFO_data - Public prminfo6 As HSPINFO_data - Public prminfo7 As HSPINFO_data - Public prminfo8 As HSPINFO_data - Public prminfo9 As HSPINFO_data + Public prminfo1 As HSPINFO_data + Public prminfo2 As HSPINFO_data + Public prminfo3 As HSPINFO_data + Public prminfo4 As HSPINFO_data + Public prminfo5 As HSPINFO_data + Public prminfo6 As HSPINFO_data + Public prminfo7 As HSPINFO_data + Public prminfo8 As HSPINFO_data + Public prminfo9 As HSPINFO_data Public prminfo10 As HSPINFO_data End Structure ' In case that the number of data is 10 ' cnc_rdhsparam:read parameters at the high speed - _ + Public Structure HSPDATA_1 - _ - Public cdatas1 As Byte() - _ - Public cdatas2 As Byte() - _ - Public cdatas3 As Byte() - _ - Public cdatas4 As Byte() - _ - Public cdatas5 As Byte() - _ - Public cdatas6 As Byte() - _ - Public cdatas7 As Byte() - _ - Public cdatas8 As Byte() - _ - Public cdatas9 As Byte() - _ + + Public cdatas1 As Byte() + + Public cdatas2 As Byte() + + Public cdatas3 As Byte() + + Public cdatas4 As Byte() + + Public cdatas5 As Byte() + + Public cdatas6 As Byte() + + Public cdatas7 As Byte() + + Public cdatas8 As Byte() + + Public cdatas9 As Byte() + Public cdatas10 As Byte() End Structure ' In case that the number of data is 10 - _ + Public Structure HSPDATA_2 - _ - Public idatas1 As Short() - _ - Public idatas2 As Short() - _ - Public idatas3 As Short() - _ - Public idatas4 As Short() - _ - Public idatas5 As Short() - _ - Public idatas6 As Short() - _ - Public idatas7 As Short() - _ - Public idatas8 As Short() - _ - Public idatas9 As Short() - _ + + Public idatas1 As Short() + + Public idatas2 As Short() + + Public idatas3 As Short() + + Public idatas4 As Short() + + Public idatas5 As Short() + + Public idatas6 As Short() + + Public idatas7 As Short() + + Public idatas8 As Short() + + Public idatas9 As Short() + Public idatas10 As Short() End Structure ' In case that the number of data is 10 - _ + Public Structure HSPDATA_3 - _ - Public ldatas1 As Integer() - _ - Public ldatas2 As Integer() - _ - Public ldatas3 As Integer() - _ - Public ldatas4 As Integer() - _ - Public ldatas5 As Integer() - _ - Public ldatas6 As Integer() - _ - Public ldatas7 As Integer() - _ - Public ldatas8 As Integer() - _ - Public ldatas9 As Integer() - _ + + Public ldatas1 As Integer() + + Public ldatas2 As Integer() + + Public ldatas3 As Integer() + + Public ldatas4 As Integer() + + Public ldatas5 As Integer() + + Public ldatas6 As Integer() + + Public ldatas7 As Integer() + + Public ldatas8 As Integer() + + Public ldatas9 As Integer() + Public ldatas10 As Integer() End Structure ' In case that the number of data is 10 -'---------------------------------------- -' CNC: Tool life management data related -'---------------------------------------- + '---------------------------------------- + ' CNC: Tool life management data related + '---------------------------------------- ' cnc_rdgrpid:read tool life management data(tool group number) - _ + Public Structure ODBTLIFE1 Public dummy As Short ' dummy Public type As Short ' data type @@ -1529,9 +1568,9 @@ Public Class Focas1 End Structure ' cnc_rdngrp:read tool life management data(number of tool groups) - _ + Public Structure ODBTLIFE2 - _ + Public dummy As Short() ' dummy Public data As Integer ' data End Structure @@ -1539,7 +1578,7 @@ Public Class Focas1 ' cnc_rdntool:read tool life management data(number of tools) ' cnc_rdlife:read tool life management data(tool life) ' cnc_rdcount:read tool life management data(tool lift counter) - _ + Public Structure ODBTLIFE3 Public datano As Short ' data number Public dummy As Short ' dummy @@ -1553,7 +1592,7 @@ Public Class Focas1 ' cnc_t1info:read tool life management data(tool information-1) ' cnc_t2info:read tool life management data(tool information-2) ' cnc_toolnum:read tool life management data(tool number) - _ + Public Structure ODBTLIFE4 Public datano As Short ' data number Public type As Short ' data type @@ -1561,7 +1600,7 @@ Public Class Focas1 End Structure ' cnc_rdgrpid2:read tool life management data(tool group number) 2 - _ + Public Structure ODBTLIFE5 Public dummy As Integer ' dummy Public type As Integer ' data type @@ -1569,13 +1608,13 @@ Public Class Focas1 End Structure ' cnc_rdtoolrng:read tool life management data(tool number, tool life, tool life counter)(area specified) - _ + Public Structure IODBTR_data Public ntool As Integer ' tool number Public life As Integer ' tool life Public count As Integer ' tool life counter End Structure - _ + Public Structure IODBTR1 Public data1 As IODBTR_data Public data2 As IODBTR_data @@ -1583,7 +1622,7 @@ Public Class Focas1 Public data4 As IODBTR_data Public data5 As IODBTR_data End Structure ' In case that the number of data is 5 - _ + Public Structure IODBTR Public datano_s As Short ' start group number Public dummy As Short ' dummy @@ -1592,7 +1631,7 @@ Public Class Focas1 End Structure ' cnc_rdtoolgrp:read tool life management data(all data within group) - _ + Public Structure ODBTG_data Public tuse_num As Integer ' tool number Public tool_num As Integer ' tool life @@ -1600,7 +1639,7 @@ Public Class Focas1 Public radius_num As Integer ' tool life counter Public tinfo As Integer ' tool life counter End Structure - _ + Public Structure ODBTG1 Public data1 As ODBTG_data Public data2 As ODBTG_data @@ -1608,10 +1647,10 @@ Public Class Focas1 Public data4 As ODBTG_data Public data5 As ODBTG_data End Structure ' In case that the number of data is 5 - _ + Public Structure ODBTG Public grp_num As Short ' start group number - _ + Public dummy As Short() ' dummy Public ntool As Integer ' tool number Public life As Integer ' tool life @@ -1620,13 +1659,13 @@ Public Class Focas1 End Structure ' cnc_wrcountr:write tool life management data(tool life counter) (area specified) - _ + Public Structure IDBWRC_data - _ + Public dummy As Integer() ' dummy Public count As Integer ' tool life counter End Structure - _ + Public Structure IDBWRC1 Public data1 As IDBWRC_data Public data2 As IDBWRC_data @@ -1634,7 +1673,7 @@ Public Class Focas1 Public data4 As IDBWRC_data Public data5 As IDBWRC_data End Structure ' In case that the number of data is 5 - _ + Public Structure IDBWRC Public datano_s As Short ' start group number Public dummy As Short ' dummy @@ -1643,7 +1682,7 @@ Public Class Focas1 End Structure ' cnc_rdusegrpid:read tool life management data(used tool group number) - _ + Public Structure ODBUSEGR Public datano As Short ' dummy Public type As Short ' dummy @@ -1654,7 +1693,7 @@ Public Class Focas1 ' cnc_rdmaxgrp:read tool life management data(max. number of tool groups) ' cnc_rdmaxtool:read tool life management data(maximum number of tool within group) - _ + Public Structure ODBLFNO Public datano As Short ' dummy Public type As Short ' dummy @@ -1662,20 +1701,20 @@ Public Class Focas1 End Structure ' cnc_rdusetlno:read tool life management data(used tool no within group) - _ + Public Structure ODBTLUSE Public s_grp As Short ' start group number Public dummy As Short ' dummy Public e_grp As Short ' end group number - _ - Public data As Integer() ' tool using number + + Public data As Integer() ' tool using number End Structure ' In case that the number of group is 5 ' cnc_rd1tlifedata:read tool life management data(tool data1) ' cnc_rd2tlifedata:read tool life management data(tool data2) ' cnc_wr1tlifedata:write tool life management data(tool data1) ' cnc_wr2tlifedata:write tool life management data(tool data2) - _ + Public Structure IODBTD Public datano As Short ' tool group number Public type As Short ' tool using number @@ -1687,7 +1726,7 @@ Public Class Focas1 ' cnc_rd1tlifedat2:read tool life management data(tool data1) 2 ' cnc_wr1tlifedat2:write tool life management data(tool data1) 2 - _ + Public Structure IODBTD2 Public datano As Short ' tool group number Public dummy As Short ' dummy @@ -1700,14 +1739,14 @@ Public Class Focas1 ' cnc_rdgrpinfo:read tool life management data(tool group information) ' cnc_wrgrpinfo:write tool life management data(tool group information) - _ + Public Structure IODBTGI_data Public n_tool As Integer ' number of tool Public count_value As Integer ' tool life Public counter As Integer ' tool life counter Public count_type As Integer ' tool life counter type End Structure - _ + Public Structure IODBTGI1 Public data1 As IODBTGI_data Public data2 As IODBTGI_data @@ -1715,7 +1754,7 @@ Public Class Focas1 Public data4 As IODBTGI_data Public data5 As IODBTGI_data End Structure ' In case that the number of data is 5 - _ + Public Structure IODBTGI Public s_grp As Short ' start group number Public dummy As Short ' dummy @@ -1725,40 +1764,40 @@ Public Class Focas1 ' cnc_rdgrpinfo2:read tool life management data(tool group information 2) ' cnc_wrgrpinfo2:write tool life management data(tool group information 2) - _ + Public Structure IODBTGI2 Public s_grp As Short ' start group number Public dummy As Short ' dummy Public e_grp As Short ' end group number - _ + Public opt_grpno As Integer() ' optional group number of tool End Structure ' In case that the number of group is 5 ' cnc_rdgrpinfo3:read tool life management data(tool group information 3) ' cnc_wrgrpinfo3:write tool life management data(tool group information 3) - _ + Public Structure IODBTGI3 Public s_grp As Short ' start group number Public dummy As Short ' dummy Public e_grp As Short ' end group number - _ + Public life_rest As Integer() ' tool life rest count End Structure ' In case that the number of group is 5 ' cnc_rdgrpinfo4:read tool life management data(tool group information 4) - _ + Public Structure IODBTGI4 - Public grp_no As Short - Public n_tool As Integer + Public grp_no As Short + Public n_tool As Integer Public count_value As Integer - Public counter As Integer - Public count_type As Integer - Public opt_grpno As Integer - Public life_rest As Integer + Public counter As Integer + Public count_type As Integer + Public opt_grpno As Integer + Public life_rest As Integer End Structure ' cnc_instlifedt:insert tool life management data(tool data) - _ + Public Structure IDBITD Public datano As Short ' tool group number Public type As Short ' tool using number @@ -1766,7 +1805,7 @@ Public Class Focas1 End Structure ' cnc_rdtlinfo:read tool life management data - _ + Public Structure ODBTLINFO Public max_group As Integer ' maximum number of tool groups Public max_tool As Integer ' maximum number of tool within group @@ -1775,7 +1814,7 @@ Public Class Focas1 End Structure ' cnc_rdtlusegrp:read tool life management data(used tool group number) - _ + Public Structure ODBUSEGRP Public iNext As Integer ' next use group number Public use As Integer ' using group number @@ -1786,7 +1825,7 @@ Public Class Focas1 End Structure ' cnc_rdtlgrp:read tool life management data(tool group information 2) - _ + Public Structure IODBTLGRP_data Public ntool As Integer ' number of all tool Public nfree As Integer ' number of free tool @@ -1798,7 +1837,7 @@ Public Class Focas1 Public rest_sig As Short ' tool life rest signal Public count_type As Short ' tool life counter type End Structure - _ + Public Structure IODBTLGRP Public data1 As IODBTLGRP_data Public data2 As IODBTLGRP_data @@ -1808,14 +1847,14 @@ Public Class Focas1 End Structure ' In case that the number of group is 5 ' cnc_rdtltool:read tool life management data (tool data1) - _ + Public Structure IODBTLTOOL_data Public tool_num As Integer ' tool number Public h_code As Integer ' H code Public d_code As Integer ' D code Public tool_inf As Integer ' tool information End Structure - _ + Public Structure IODBTLTOOL Public data1 As IODBTLTOOL_data Public data2 As IODBTLTOOL_data @@ -1824,23 +1863,23 @@ Public Class Focas1 Public data5 As IODBTLTOOL_data End Structure ' In case that the number of group is 5 - _ + Public Structure ODBEXGP_data Public grp_no As Integer ' group number Public opt_grpno As Integer ' optional group number - End Structure + End Structure - _ + Public Structure ODBEXGP - Public data1 As ODBEXGP_data - Public data2 As ODBEXGP_data - Public data3 As ODBEXGP_data - Public data4 As ODBEXGP_data - Public data5 As ODBEXGP_data - Public data6 As ODBEXGP_data - Public data7 As ODBEXGP_data - Public data8 As ODBEXGP_data - Public data9 As ODBEXGP_data + Public data1 As ODBEXGP_data + Public data2 As ODBEXGP_data + Public data3 As ODBEXGP_data + Public data4 As ODBEXGP_data + Public data5 As ODBEXGP_data + Public data6 As ODBEXGP_data + Public data7 As ODBEXGP_data + Public data8 As ODBEXGP_data + Public data9 As ODBEXGP_data Public data10 As ODBEXGP_data Public data11 As ODBEXGP_data Public data12 As ODBEXGP_data @@ -1864,16 +1903,16 @@ Public Class Focas1 Public data30 As ODBEXGP_data Public data31 As ODBEXGP_data Public data32 As ODBEXGP_data - End Structure + End Structure -'----------------------------------- -' CNC: Tool management data related -'----------------------------------- + '----------------------------------- + ' CNC: Tool management data related + '----------------------------------- ' cnc_regtool:new registration of tool management data ' cnc_rdtool:lead of tool management data ' cnc_wrtool:write of tool management data - _ + Public Structure IODBTLMNG_data Public T_code As Integer Public life_count As Integer @@ -1890,9 +1929,9 @@ Public Class Focas1 Public pot As Short Public G_code As Short Public W_code As Short - Public gno As Short - public m_ofs As Short - _ + Public gno As Short + Public m_ofs As Short + Public reserved As Integer() Public custom1 As Integer Public custom2 As Integer @@ -1915,8 +1954,8 @@ Public Class Focas1 Public custom19 As Integer Public custom20 As Integer End Structure - _ - Public Structure IODBTLMNG + + Public Structure IODBTLMNG Public data1 As IODBTLMNG_data Public data2 As IODBTLMNG_data Public data3 As IODBTLMNG_data @@ -1926,7 +1965,7 @@ Public Class Focas1 ' cnc_regtool_f2:new registration of tool management data ' cnc_rdtool_f2:lead of tool management data - _ + Public Structure IODBTLMNG_F2_data Public T_code As Integer Public life_count As Integer @@ -1940,12 +1979,12 @@ Public Class Focas1 Public spindle_speed As Integer Public feedrate As Integer Public magazine As Short - Public pot As Short - Public G_code As Short - Public W_code As Short - Public gno As Short - public m_ofs As Short - _ + Public pot As Short + Public G_code As Short + Public W_code As Short + Public gno As Short + Public m_ofs As Short + Public reserved As Integer() Public custom1 As Integer Public custom2 As Integer @@ -1988,7 +2027,7 @@ Public Class Focas1 Public custom39 As Integer Public custom40 As Integer End Structure - _ + Public Structure IODBTLMNG_F2 Public data1 As IODBTLMNG_F2_data Public data2 As IODBTLMNG_F2_data @@ -1998,16 +2037,16 @@ Public Class Focas1 End Structure ' In case that the number of group is 5 ' cnc_wrtool2:write of individual data of tool management data - _ + Public Structure IDBTLM_item - _ + Public data1 As SByte - _ + Public data2 As Short - _ + Public data4 As Integer End Structure - _ + Public Structure IDBTLM Public data_id As Short Public item As IDBTLM_item @@ -2015,13 +2054,13 @@ Public Class Focas1 ' cnc_regmagazine:new registration of magazine management data ' cnc_rdmagazine:lead of magazine management data - _ + Public Structure IODBTLMAG_data Public magazine As Short Public pot As Short Public tool_index As Short End Structure - _ + Public Structure IODBTLMAG Public data1 As IODBTLMAG_data Public data2 As IODBTLMAG_data @@ -2031,12 +2070,12 @@ Public Class Focas1 End Structure ' In case that the number of group is 5 ' cnc_delmagazine:deletion of magazine management data - _ + Public Structure IODBTLMAG2_data Public magazine As Short Public pot As Short End Structure - _ + Public Structure IODBTLMAG2 Public data1 As IODBTLMAG2_data Public data2 As IODBTLMAG2_data @@ -2046,12 +2085,12 @@ Public Class Focas1 End Structure ' In case that the number of group is 5 -'------------------------------------- -' CNC: Operation history data related -'------------------------------------- + '------------------------------------- + ' CNC: Operation history data related + '------------------------------------- ' cnc_rdophistry:read operation history data - _ + Public Structure REC_ALM Public rec_type As Short ' record type Public alm_grp As Short ' alarm group @@ -2059,15 +2098,15 @@ Public Class Focas1 Public axis_no As SByte ' axis number Public dummy As SByte End Structure - _ + Public Structure REC_MDI Public rec_type As Short ' record type Public key_code As Byte ' key code Public pw_flag As Byte ' power on flag - _ + Public dummy As SByte() End Structure - _ + Public Structure REC_SGN Public rec_type As Short ' record type Public sig_name As SByte ' signal name @@ -2076,107 +2115,107 @@ Public Class Focas1 Public dummy As SByte Public sig_no As Short ' signal number End Structure - _ + Public Structure REC_DATE Public rec_type As Short ' record type Public year As SByte ' year Public month As SByte ' month Public day As SByte ' day Public pw_flag As SByte ' power on flag - _ + Public dummy As SByte() End Structure - _ + Public Structure REC_TIME Public rec_type As Short ' record flag Public hour As SByte ' hour Public minute As SByte ' minute Public second As SByte ' second Public pw_flag As SByte ' power on flag - _ + Public dummy As SByte() End Structure - _ + Public Structure ODBHIS_data ' record type - _ + Public rec_type As Short ' record type ' alarm record - _ + Public alm_rec_type As Short ' record type - _ + Public alm_alm_grp As Short ' alarm group - _ + Public alm_alm_no As Short ' alarm number - _ + Public alm_axis_no As SByte ' axis number - _ + Public alm_dummy As SByte ' mdi record - _ + Public mdi_rec_type As Short ' record type - _ + Public mdi_key_code As Byte ' key code - _ + Public mdi_pw_flag As Byte ' power on flag - _ + Public mdi_dummy1 As SByte - _ + Public mdi_dummy2 As SByte - _ + Public mdi_dummy3 As SByte - _ + Public mdi_dummy4 As SByte ' sign record - _ + Public sgn_rec_type As Short ' record type - _ + Public sgn_sig_name As SByte ' signal name - _ + Public sgn_sig_old As Byte ' old signal bit pattern - _ + Public sgn_sig_new As Byte ' new signal bit pattern - _ + Public sgn_dummy As SByte - _ + Public sgn_sig_no As Short ' signal number ' date record - _ + Public date_rec_type As Short ' record type - _ + Public date_year As SByte ' year - _ + Public date_month As SByte ' month - _ + Public date_day As SByte ' day - _ + Public date_pw_flag As SByte ' power on flag - _ + Public date_dummy1 As SByte - _ + Public date_dummy2 As SByte ' time record - _ + Public time_rec_type As Short ' record flag - _ + Public time_hour As SByte ' hour - _ + Public time_minute As SByte ' minute - _ + Public time_second As SByte ' second - _ + Public time_pw_flag As SByte ' power on flag - _ + Public time_dummy1 As SByte - _ + Public time_dummy2 As SByte End Structure - _ + Public Structure ODBHIS1 Public data1 As ODBHIS_data Public data2 As ODBHIS_data @@ -2189,7 +2228,7 @@ Public Class Focas1 Public data9 As ODBHIS_data Public data10 As ODBHIS_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBHIS Public s_no As Short ' start number C# ushort Public type As Short ' dummy @@ -2198,19 +2237,19 @@ Public Class Focas1 End Structure ' cnc_rdophistry2:read operation history data - _ + Public Structure REC_MDI2 Public key_code As Byte ' key code Public pw_flag As Byte ' power on flag Public dummy As Short End Structure - _ + Public Structure REC_MDI2_data Public rec_len As Short ' length Public rec_type As Short ' record type Public data As REC_MDI2 End Structure - _ + Public Structure REC_SGN2 Public sig_name As Short ' signal name Public sig_no As Short ' signal number @@ -2218,13 +2257,13 @@ Public Class Focas1 Public sig_new As Byte ' new signal bit pattern Public dummy As Short End Structure - _ + Public Structure REC_SGN2_data Public rec_len As Short ' length Public rec_type As Short ' record type Public data As REC_SGN2 End Structure - _ + Public Structure REC_ALM2 Public alm_grp As Short ' alarm group Public alm_no As Short ' alarm number @@ -2237,13 +2276,13 @@ Public Class Focas1 Public second As Short ' second Public dummy As Short End Structure - _ + Public Structure REC_ALM2_data Public rec_len As Short ' length Public rec_type As Short ' record type Public data As REC_ALM2 End Structure - _ + Public Structure REC_DATE2 Public evnt_type As Short ' event type Public year As Short ' year @@ -2254,412 +2293,412 @@ Public Class Focas1 Public second As Short ' second Public dummy As Short End Structure - _ + Public Structure REC_DATE2_data Public rec_len As Short ' length Public rec_type As Short ' record type Public data As REC_DATE2 End Structure - _ + Public Structure ODBOPHIS - _ + Public rec_mdi As REC_MDI2_data - _ + Public rec_sgn As REC_SGN2_data - _ + Public rec_alm As REC_ALM2_data - _ + Public rec_date As REC_DATE2_data End Structure ' cnc_rdophistry4:read operation history data - _ + Public Structure REC_MDI4 Public key_code As Char ' key code - Public pw_flag As Char ' power on flag - Public pth_no As Short ' path index - Public ex_flag As Short ' kxternal key flag - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second + Public pw_flag As Char ' power on flag + Public pth_no As Short ' path index + Public ex_flag As Short ' kxternal key flag + Public hour As Short ' hour + Public minute As Short ' minute + Public second As Short ' second End Structure - _ + Public Structure REC_MDI4_data - Public rec_len As Short ' length + Public rec_len As Short ' length Public rec_type As Short ' record type - Public data As REC_MDI4 + Public data As REC_MDI4 End Structure - _ + Public Structure REC_SGN4 Public sig_name As Short ' signal name - Public sig_no As Short ' signal number - Public sig_old As Char ' old signal bit pattern - Public sig_new As Char ' new signal bit pattern - Public pmc_no As Short ' pmc index - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public dummy As Short + Public sig_no As Short ' signal number + Public sig_old As Char ' old signal bit pattern + Public sig_new As Char ' new signal bit pattern + Public pmc_no As Short ' pmc index + Public hour As Short ' hour + Public minute As Short ' minute + Public second As Short ' second + Public dummy As Short End Structure - _ + Public Structure REC_SGN4_data - Public rec_len As Short ' length + Public rec_len As Short ' length Public rec_type As Short ' record type - Public data As REC_SGN4 + Public data As REC_SGN4 End Structure - _ + Public Structure REC_ALM4 - Public alm_grp As Short ' alarm group - Public alm_no As Short ' alarm number - Public axis_no As Short ' axis number - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public pth_no As Short ' path index + Public alm_grp As Short ' alarm group + Public alm_no As Short ' alarm number + Public axis_no As Short ' axis number + Public year As Short ' year + Public month As Short ' month + Public day As Short ' day + Public hour As Short ' hour + Public minute As Short ' minute + Public second As Short ' second + Public pth_no As Short ' path index End Structure - _ + Public Structure REC_ALM4_data - Public rec_len As Short ' length + Public rec_len As Short ' length Public rec_type As Short ' record type - Public data As REC_ALM4 + Public data As REC_ALM4 End Structure - _ + Public Structure REC_DATE4 Public evnt_type As Short ' event type - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public dummy As Short + Public year As Short ' year + Public month As Short ' month + Public day As Short ' day + Public hour As Short ' hour + Public minute As Short ' minute + Public second As Short ' second + Public dummy As Short End Structure - _ + Public Structure REC_DATE4_data - Public rec_len As Short ' length + Public rec_len As Short ' length Public rec_type As Short ' record type - Public data As REC_DATE4 + Public data As REC_DATE4 End Structure - _ + Public Structure REC_IAL4 - Public alm_grp As Short ' alarm group - Public alm_no As Short ' alarm number - Public axis_no As Short ' axis number - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public pth_no As Short ' path index - Public sys_alm As Short ' sys alarm - Public dsp_flg As Short ' message dsp flag + Public alm_grp As Short ' alarm group + Public alm_no As Short ' alarm number + Public axis_no As Short ' axis number + Public year As Short ' year + Public month As Short ' month + Public day As Short ' day + Public hour As Short ' hour + Public minute As Short ' minute + Public second As Short ' second + Public pth_no As Short ' path index + Public sys_alm As Short ' sys alarm + Public dsp_flg As Short ' message dsp flag Public axis_num As Short ' axis num - _ - Public g_modal As Integer() ' G code Modal - _ - Public g_dp As Char() ' #7:1 Block #6`#0 dp - _ - Public a_modal As Integer() ' B,D,E,F,H,M,N,O,S,T code Modal - _ - Public a_dp As Char() ' #7:1 Block #6`#0 dp - _ - Public abs_pos As Integer() ' Abs pos - _ - Public abs_dp As Char() ' Abs dp - _ - Public mcn_pos As Integer() ' Mcn pos - _ - Public mcn_dp As Char() ' Mcn dp + + Public g_modal As Integer() ' G code Modal + + Public g_dp As Char() ' #7:1 Block #6`#0 dp + + Public a_modal As Integer() ' B,D,E,F,H,M,N,O,S,T code Modal + + Public a_dp As Char() ' #7:1 Block #6`#0 dp + + Public abs_pos As Integer() ' Abs pos + + Public abs_dp As Char() ' Abs dp + + Public mcn_pos As Integer() ' Mcn pos + + Public mcn_dp As Char() ' Mcn dp End Structure - _ + Public Structure REC_IAL4_data - Public rec_len As Short ' length + Public rec_len As Short ' length Public rec_type As Short ' record type - Public data As REC_IAL4 + Public data As REC_IAL4 End Structure - _ + Public Structure REC_MAL4 - Public alm_grp As Short ' alarm group - Public alm_no As Short ' alarm number - Public axis_no As Short ' axis number - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public pth_no As Short ' path index - Public sys_alm As Short ' sys alarm - Public dsp_flg As Short ' message dsp flag + Public alm_grp As Short ' alarm group + Public alm_no As Short ' alarm number + Public axis_no As Short ' axis number + Public year As Short ' year + Public month As Short ' month + Public day As Short ' day + Public hour As Short ' hour + Public minute As Short ' minute + Public second As Short ' second + Public pth_no As Short ' path index + Public sys_alm As Short ' sys alarm + Public dsp_flg As Short ' message dsp flag Public axis_num As Short ' axis num - _ - Public alm_msg As Char() ' alarm message - _ - Public g_modal As Integer() ' G code Modal - _ - Public g_dp As Char() ' #7:1 Block #6`#0 dp - _ - Public a_modal As Integer() ' B,D,E,F,H,M,N,O,S,T code Modal - _ - Public a_dp As Char() ' #7:1 Block #6`#0 dp - _ - Public abs_pos As Integer() ' Abs pos - _ - Public abs_dp As Char() ' Abs dp - _ - Public mcn_pos As Integer() ' Mcn pos - _ - Public mcn_dp As Char() ' Mcn dp + + Public alm_msg As Char() ' alarm message + + Public g_modal As Integer() ' G code Modal + + Public g_dp As Char() ' #7:1 Block #6`#0 dp + + Public a_modal As Integer() ' B,D,E,F,H,M,N,O,S,T code Modal + + Public a_dp As Char() ' #7:1 Block #6`#0 dp + + Public abs_pos As Integer() ' Abs pos + + Public abs_dp As Char() ' Abs dp + + Public mcn_pos As Integer() ' Mcn pos + + Public mcn_dp As Char() ' Mcn dp End Structure - _ + Public Structure REC_MAL4_data - Public rec_len As Short ' length + Public rec_len As Short ' length Public rec_type As Short ' record type - Public data As REC_MAL4 + Public data As REC_MAL4 End Structure - _ + Public Structure REC_OPM4 - Public dsp_flg As Short ' Dysplay flag(ON/OFF) - Public om_no As Short ' message number - Public year As Short ' year - Public month As Short ' month - Public day As Short ' day - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - _ - Public ope_msg As Char() ' alarm message + Public dsp_flg As Short ' Dysplay flag(ON/OFF) + Public om_no As Short ' message number + Public year As Short ' year + Public month As Short ' month + Public day As Short ' day + Public hour As Short ' hour + Public minute As Short ' minute + Public second As Short ' second + + Public ope_msg As Char() ' alarm message End Structure - _ + Public Structure REC_OPM4_data - Public rec_len As Short ' length + Public rec_len As Short ' length Public rec_type As Short ' record type - Public data As REC_OPM4 + Public data As REC_OPM4 End Structure - _ + Public Structure REC_OFS4 - Public ofs_grp As Short ' Tool offset group - Public ofs_no As Short ' Tool offset number - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public pth_no As Short ' path index - Public ofs_old As Integer ' old data - Public ofs_new As Integer ' new data - Public old_dp As Short ' old data decimal point - Public new_dp As Short ' new data decimal point + Public ofs_grp As Short ' Tool offset group + Public ofs_no As Short ' Tool offset number + Public hour As Short ' hour + Public minute As Short ' minute + Public second As Short ' second + Public pth_no As Short ' path index + Public ofs_old As Integer ' old data + Public ofs_new As Integer ' new data + Public old_dp As Short ' old data decimal point + Public new_dp As Short ' new data decimal point End Structure - _ + Public Structure REC_OFS4_data - Public rec_len As Short ' length + Public rec_len As Short ' length Public rec_type As Short ' record type - Public data As REC_OFS4 + Public data As REC_OFS4 End Structure - _ + Public Structure REC_PRM4 - Public prm_grp As Short ' paramater group - Public prm_num As Short ' paramater number - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public prm_len As Short ' paramater data length - Public prm_no As Integer ' paramater no - Public prm_old As Integer ' old data - Public prm_new As Integer ' new data - Public old_dp As Short ' old data decimal point - Public new_dp As Short ' new data decimal point + Public prm_grp As Short ' paramater group + Public prm_num As Short ' paramater number + Public hour As Short ' hour + Public minute As Short ' minute + Public second As Short ' second + Public prm_len As Short ' paramater data length + Public prm_no As Integer ' paramater no + Public prm_old As Integer ' old data + Public prm_new As Integer ' new data + Public old_dp As Short ' old data decimal point + Public new_dp As Short ' new data decimal point End Structure - _ + Public Structure REC_PRM4_data - Public rec_len As Short ' length + Public rec_len As Short ' length Public rec_type As Short ' record type - Public data As REC_PRM4 + Public data As REC_PRM4 End Structure - _ + Public Structure REC_WOF4 - Public ofs_grp As Short ' Work offset group - Public ofs_no As Short ' Work offset number - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public pth_no As Short ' path index - Public axis_no As Short ' path axis num - Public dummy As Short - Public ofs_old As Integer ' old data - Public ofs_new As Integer ' new data - Public old_dp As Short ' old data decimal point - Public new_dp As Short ' new data decimal point + Public ofs_grp As Short ' Work offset group + Public ofs_no As Short ' Work offset number + Public hour As Short ' hour + Public minute As Short ' minute + Public second As Short ' second + Public pth_no As Short ' path index + Public axis_no As Short ' path axis num + Public dummy As Short + Public ofs_old As Integer ' old data + Public ofs_new As Integer ' new data + Public old_dp As Short ' old data decimal point + Public new_dp As Short ' new data decimal point End Structure - _ + Public Structure REC_WOF4_data - Public rec_len As Short ' length + Public rec_len As Short ' length Public rec_type As Short ' record type - Public data As REC_WOF4 + Public data As REC_WOF4 End Structure - _ + Public Structure REC_MAC4 - Public mac_no As Short ' macro val number - Public hour As Short ' hour - Public minute As Short ' minute - Public second As Short ' second - Public pth_no As Short ' path index - Public mac_old As Integer ' old data - Public mac_new As Integer ' new data - Public old_dp As Short ' old data decimal point - Public new_dp As Short ' new data decimal point + Public mac_no As Short ' macro val number + Public hour As Short ' hour + Public minute As Short ' minute + Public second As Short ' second + Public pth_no As Short ' path index + Public mac_old As Integer ' old data + Public mac_new As Integer ' new data + Public old_dp As Short ' old data decimal point + Public new_dp As Short ' new data decimal point End Structure - _ + Public Structure REC_MAC4_data - Public rec_len As Short ' length + Public rec_len As Short ' length Public rec_type As Short ' record type - Public data As REC_MAC4 + Public data As REC_MAC4 End Structure - _ + Public Structure ODBOPHIS4_1 - Public rec_mdi1 As REC_MDI4_data - Public rec_mdi2 As REC_MDI4_data - Public rec_mdi3 As REC_MDI4_data - Public rec_mdi4 As REC_MDI4_data - Public rec_mdi5 As REC_MDI4_data - Public rec_mdi6 As REC_MDI4_data - Public rec_mdi7 As REC_MDI4_data - Public rec_mdi8 As REC_MDI4_data - Public rec_mdi9 As REC_MDI4_data + Public rec_mdi1 As REC_MDI4_data + Public rec_mdi2 As REC_MDI4_data + Public rec_mdi3 As REC_MDI4_data + Public rec_mdi4 As REC_MDI4_data + Public rec_mdi5 As REC_MDI4_data + Public rec_mdi6 As REC_MDI4_data + Public rec_mdi7 As REC_MDI4_data + Public rec_mdi8 As REC_MDI4_data + Public rec_mdi9 As REC_MDI4_data Public rec_mdi10 As REC_MDI4_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBOPHIS4_2 - Public rec_sgn1 As REC_SGN4_data - Public rec_sgn2 As REC_SGN4_data - Public rec_sgn3 As REC_SGN4_data - Public rec_sgn4 As REC_SGN4_data - Public rec_sgn5 As REC_SGN4_data - Public rec_sgn6 As REC_SGN4_data - Public rec_sgn7 As REC_SGN4_data - Public rec_sgn8 As REC_SGN4_data - Public rec_sgn9 As REC_SGN4_data + Public rec_sgn1 As REC_SGN4_data + Public rec_sgn2 As REC_SGN4_data + Public rec_sgn3 As REC_SGN4_data + Public rec_sgn4 As REC_SGN4_data + Public rec_sgn5 As REC_SGN4_data + Public rec_sgn6 As REC_SGN4_data + Public rec_sgn7 As REC_SGN4_data + Public rec_sgn8 As REC_SGN4_data + Public rec_sgn9 As REC_SGN4_data Public rec_sgn10 As REC_SGN4_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBOPHIS4_3 - Public rec_alm1 As REC_ALM4_data - Public rec_alm2 As REC_ALM4_data - Public rec_alm3 As REC_ALM4_data - Public rec_alm4 As REC_ALM4_data - Public rec_alm5 As REC_ALM4_data - Public rec_alm6 As REC_ALM4_data - Public rec_alm7 As REC_ALM4_data - Public rec_alm8 As REC_ALM4_data - Public rec_alm9 As REC_ALM4_data + Public rec_alm1 As REC_ALM4_data + Public rec_alm2 As REC_ALM4_data + Public rec_alm3 As REC_ALM4_data + Public rec_alm4 As REC_ALM4_data + Public rec_alm5 As REC_ALM4_data + Public rec_alm6 As REC_ALM4_data + Public rec_alm7 As REC_ALM4_data + Public rec_alm8 As REC_ALM4_data + Public rec_alm9 As REC_ALM4_data Public rec_alm10 As REC_ALM4_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBOPHIS4_4 - Public rec_date1 As REC_DATE4_data - Public rec_date2 As REC_DATE4_data - Public rec_date3 As REC_DATE4_data - Public rec_date4 As REC_DATE4_data - Public rec_date5 As REC_DATE4_data - Public rec_date6 As REC_DATE4_data - Public rec_date7 As REC_DATE4_data - Public rec_date8 As REC_DATE4_data - Public rec_date9 As REC_DATE4_data + Public rec_date1 As REC_DATE4_data + Public rec_date2 As REC_DATE4_data + Public rec_date3 As REC_DATE4_data + Public rec_date4 As REC_DATE4_data + Public rec_date5 As REC_DATE4_data + Public rec_date6 As REC_DATE4_data + Public rec_date7 As REC_DATE4_data + Public rec_date8 As REC_DATE4_data + Public rec_date9 As REC_DATE4_data Public rec_date10 As REC_DATE4_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBOPHIS4_5 - Public rec_ial1 As REC_IAL4_data - Public rec_ial2 As REC_IAL4_data - Public rec_ial3 As REC_IAL4_data - Public rec_ial4 As REC_IAL4_data - Public rec_ial5 As REC_IAL4_data - Public rec_ial6 As REC_IAL4_data - Public rec_ial7 As REC_IAL4_data - Public rec_ial8 As REC_IAL4_data - Public rec_ial9 As REC_IAL4_data + Public rec_ial1 As REC_IAL4_data + Public rec_ial2 As REC_IAL4_data + Public rec_ial3 As REC_IAL4_data + Public rec_ial4 As REC_IAL4_data + Public rec_ial5 As REC_IAL4_data + Public rec_ial6 As REC_IAL4_data + Public rec_ial7 As REC_IAL4_data + Public rec_ial8 As REC_IAL4_data + Public rec_ial9 As REC_IAL4_data Public rec_ial10 As REC_IAL4_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBOPHIS4_6 - Public rec_mal1 As REC_MAL4_data - Public rec_mal2 As REC_MAL4_data - Public rec_mal3 As REC_MAL4_data - Public rec_mal4 As REC_MAL4_data - Public rec_mal5 As REC_MAL4_data - Public rec_mal6 As REC_MAL4_data - Public rec_mal7 As REC_MAL4_data - Public rec_mal8 As REC_MAL4_data - Public rec_mal9 As REC_MAL4_data + Public rec_mal1 As REC_MAL4_data + Public rec_mal2 As REC_MAL4_data + Public rec_mal3 As REC_MAL4_data + Public rec_mal4 As REC_MAL4_data + Public rec_mal5 As REC_MAL4_data + Public rec_mal6 As REC_MAL4_data + Public rec_mal7 As REC_MAL4_data + Public rec_mal8 As REC_MAL4_data + Public rec_mal9 As REC_MAL4_data Public rec_mal10 As REC_MAL4_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBOPHIS4_7 - Public rec_opm1 As REC_OPM4_data - Public rec_opm2 As REC_OPM4_data - Public rec_opm3 As REC_OPM4_data - Public rec_opm4 As REC_OPM4_data - Public rec_opm5 As REC_OPM4_data - Public rec_opm6 As REC_OPM4_data - Public rec_opm7 As REC_OPM4_data - Public rec_opm8 As REC_OPM4_data - Public rec_opm9 As REC_OPM4_data + Public rec_opm1 As REC_OPM4_data + Public rec_opm2 As REC_OPM4_data + Public rec_opm3 As REC_OPM4_data + Public rec_opm4 As REC_OPM4_data + Public rec_opm5 As REC_OPM4_data + Public rec_opm6 As REC_OPM4_data + Public rec_opm7 As REC_OPM4_data + Public rec_opm8 As REC_OPM4_data + Public rec_opm9 As REC_OPM4_data Public rec_opm10 As REC_OPM4_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBOPHIS4_8 - Public rec_ofs1 As REC_OFS4_data - Public rec_ofs2 As REC_OFS4_data - Public rec_ofs3 As REC_OFS4_data - Public rec_ofs4 As REC_OFS4_data - Public rec_ofs5 As REC_OFS4_data - Public rec_ofs6 As REC_OFS4_data - Public rec_ofs7 As REC_OFS4_data - Public rec_ofs8 As REC_OFS4_data - Public rec_ofs9 As REC_OFS4_data + Public rec_ofs1 As REC_OFS4_data + Public rec_ofs2 As REC_OFS4_data + Public rec_ofs3 As REC_OFS4_data + Public rec_ofs4 As REC_OFS4_data + Public rec_ofs5 As REC_OFS4_data + Public rec_ofs6 As REC_OFS4_data + Public rec_ofs7 As REC_OFS4_data + Public rec_ofs8 As REC_OFS4_data + Public rec_ofs9 As REC_OFS4_data Public rec_ofs10 As REC_OFS4_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBOPHIS4_9 - Public rec_prm1 As REC_PRM4_data - Public rec_prm2 As REC_PRM4_data - Public rec_prm3 As REC_PRM4_data - Public rec_prm4 As REC_PRM4_data - Public rec_prm5 As REC_PRM4_data - Public rec_prm6 As REC_PRM4_data - Public rec_prm7 As REC_PRM4_data - Public rec_prm8 As REC_PRM4_data - Public rec_prm9 As REC_PRM4_data + Public rec_prm1 As REC_PRM4_data + Public rec_prm2 As REC_PRM4_data + Public rec_prm3 As REC_PRM4_data + Public rec_prm4 As REC_PRM4_data + Public rec_prm5 As REC_PRM4_data + Public rec_prm6 As REC_PRM4_data + Public rec_prm7 As REC_PRM4_data + Public rec_prm8 As REC_PRM4_data + Public rec_prm9 As REC_PRM4_data Public rec_prm10 As REC_PRM4_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBOPHIS4_10 - Public rec_wof1 As REC_WOF4_data - Public rec_wof2 As REC_WOF4_data - Public rec_wof3 As REC_WOF4_data - Public rec_wof4 As REC_WOF4_data - Public rec_wof5 As REC_WOF4_data - Public rec_wof6 As REC_WOF4_data - Public rec_wof7 As REC_WOF4_data - Public rec_wof8 As REC_WOF4_data - Public rec_wof9 As REC_WOF4_data + Public rec_wof1 As REC_WOF4_data + Public rec_wof2 As REC_WOF4_data + Public rec_wof3 As REC_WOF4_data + Public rec_wof4 As REC_WOF4_data + Public rec_wof5 As REC_WOF4_data + Public rec_wof6 As REC_WOF4_data + Public rec_wof7 As REC_WOF4_data + Public rec_wof8 As REC_WOF4_data + Public rec_wof9 As REC_WOF4_data Public rec_wof10 As REC_WOF4_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBOPHIS4_11 Public rec_mac1 As REC_MAC4_data Public rec_mac2 As REC_MAC4_data @@ -2674,7 +2713,7 @@ Public Class Focas1 End Structure ' In case that the number of data is 10 ' cnc_rdalmhistry:read alarm history data - _ + Public Structure ALM_HIS_data Public dummy As Short Public alm_grp As Short ' alarm group @@ -2688,10 +2727,10 @@ Public Class Focas1 Public second As Byte ' second Public dummy2 As Byte Public len_msg As Short ' alarm message length - _ + Public alm_msg As String ' alarm message End Structure - _ + Public Structure ALM_HIS1 Public data1 As ALM_HIS_data Public data2 As ALM_HIS_data @@ -2704,7 +2743,7 @@ Public Class Focas1 Public data9 As ALM_HIS_data Public data10 As ALM_HIS_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBAHIS Public s_no As Short ' start number C# ushort Public type As Short ' dummy @@ -2713,7 +2752,7 @@ Public Class Focas1 End Structure ' cnc_rdalmhistry2:read alarm history data - _ + Public Structure ALM_HIS2_data Public alm_grp As Short ' alarm group Public alm_no As Short ' alarm number @@ -2725,10 +2764,10 @@ Public Class Focas1 Public minute As Short ' minute Public second As Short ' second Public len_msg As Short ' alarm message length - _ + Public alm_msg As String ' alarm message End Structure - _ + Public Structure ALM_HIS2 Public data1 As ALM_HIS2_data Public data2 As ALM_HIS2_data @@ -2741,7 +2780,7 @@ Public Class Focas1 Public data9 As ALM_HIS2_data Public data10 As ALM_HIS2_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBAHIS2 Public s_no As Short ' start number C# ushort Public e_no As Short ' end number C# ushort @@ -2749,7 +2788,7 @@ Public Class Focas1 End Structure ' cnc_rdalmhistry3:read alarm history data - _ + Public Structure ALM_HIS3_data Public alm_grp As Short ' alarm group Public alm_no As Short ' alarm number @@ -2763,10 +2802,10 @@ Public Class Focas1 Public len_msg As Short ' alarm message length Public pth_no As Short ' path index Public dummy As Short - _ + Public alm_msg As String ' alarm message End Structure - _ + Public Structure ALM_HIS3 Public data1 As ALM_HIS3_data Public data2 As ALM_HIS3_data @@ -2779,7 +2818,7 @@ Public Class Focas1 Public data9 As ALM_HIS3_data Public data10 As ALM_HIS3_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBAHIS3 Public s_no As Short ' start number C# ushort Public e_no As Short ' end number C# ushort @@ -2787,7 +2826,7 @@ Public Class Focas1 End Structure ' cnc_rdalmhistry5:read alarm history data - _ + Public Structure ALM_HIS5_data Public alm_grp As Short ' alarm group Public alm_no As Short ' alarm number @@ -2803,26 +2842,26 @@ Public Class Focas1 Public sys_alm As Short ' sys alarm Public dsp_flg As Short ' message dsp flag Public axis_num As Short ' sum axis num - _ + Public alm_msg As String ' alarm message - _ + Public g_modal As Integer() ' G code Modal - _ + Public g_dp As Char() ' #7:1 Block #6`#0 dp - _ + Public a_modal As Integer() ' B,D,E,F,H,M,N,O,S,T code Modal - _ + Public a_dp As Char() ' #7:1 Block #6`#0 dp - _ + Public abs_pos As Integer() ' Abs pos - _ + Public abs_dp As Char() ' Abs dp - _ + Public mcn_pos As Integer() ' Mcn pos - _ + Public mcn_dp As Char() ' Mcn dp End Structure - _ + Public Structure ALM_HIS5 Public data1 As ALM_HIS5_data Public data2 As ALM_HIS5_data @@ -2835,7 +2874,7 @@ Public Class Focas1 Public data9 As ALM_HIS5_data Public data10 As ALM_HIS5_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBAHIS5 Public s_no As Short ' start number C# ushort Public e_no As Short ' end number C# ushort @@ -2843,7 +2882,7 @@ Public Class Focas1 End Structure ' cnc_rdomhistry2:read operater message history data - _ + Public Structure ODBOMHIS2_data Public dsp_flg As Short ' Dysplay flag(ON/OFF) Public om_no As Short ' operater message number @@ -2853,39 +2892,39 @@ Public Class Focas1 Public hour As Short ' Hour Public minute As Short ' Minute Public second As Short ' Second - _ + Public alm_msg As String ' Messege End Structure - _ + Public Structure OPM_HIS - Public data1 As ODBOMHIS2_data - Public data2 As ODBOMHIS2_data - Public data3 As ODBOMHIS2_data - Public data4 As ODBOMHIS2_data - Public data5 As ODBOMHIS2_data - Public data6 As ODBOMHIS2_data - Public data7 As ODBOMHIS2_data - Public data8 As ODBOMHIS2_data - Public data9 As ODBOMHIS2_data + Public data1 As ODBOMHIS2_data + Public data2 As ODBOMHIS2_data + Public data3 As ODBOMHIS2_data + Public data4 As ODBOMHIS2_data + Public data5 As ODBOMHIS2_data + Public data6 As ODBOMHIS2_data + Public data7 As ODBOMHIS2_data + Public data8 As ODBOMHIS2_data + Public data9 As ODBOMHIS2_data Public data10 As ODBOMHIS2_data End Structure - _ + Public Structure ODBOMHIS2 - Public s_no As Short ' start number - Public e_no As Short ' end number + Public s_no As Short ' start number + Public e_no As Short ' end number Public opm_his As OPM_HIS End Structure ' cnc_rdhissgnl:read signals related operation history ' cnc_wrhissgnl:write signals related operation history - _ + Public Structure IODBSIG_data Public ent_no As Short ' entry number Public sig_no As Short ' signal number Public sig_name As Byte ' signal name Public mask_pat As Byte ' signal mask pattern End Structure - _ + Public Structure IODBSIG1 Public data1 As IODBSIG_data Public data2 As IODBSIG_data @@ -2908,33 +2947,33 @@ Public Class Focas1 Public data19 As IODBSIG_data Public data20 As IODBSIG_data End Structure - _ + Public Structure IODBSIG - Public datano As Short' dummy + Public datano As Short ' dummy Public type As Short ' dummy Public data As IODBSIG1 End Structure ' cnc_rdhissgnl2:read signals related operation history 2 ' cnc_wrhissgnl2:write signals related operation history 2 - _ + Public Structure _IODBSIG2_data Public ent_no As Short ' entry number Public sig_no As Short ' signal number Public sig_name As Byte ' signal name Public mask_pat As Byte ' signal mask pattern End Structure - _ + Public Structure IODBSIG2_data - Public data1 As _IODBSIG2_data - Public data2 As _IODBSIG2_data - Public data3 As _IODBSIG2_data - Public data4 As _IODBSIG2_data - Public data5 As _IODBSIG2_data - Public data6 As _IODBSIG2_data - Public data7 As _IODBSIG2_data - Public data8 As _IODBSIG2_data - Public data9 As _IODBSIG2_data + Public data1 As _IODBSIG2_data + Public data2 As _IODBSIG2_data + Public data3 As _IODBSIG2_data + Public data4 As _IODBSIG2_data + Public data5 As _IODBSIG2_data + Public data6 As _IODBSIG2_data + Public data7 As _IODBSIG2_data + Public data8 As _IODBSIG2_data + Public data9 As _IODBSIG2_data Public data10 As _IODBSIG2_data Public data11 As _IODBSIG2_data Public data12 As _IODBSIG2_data @@ -2972,7 +3011,7 @@ Public Class Focas1 Public data44 As _IODBSIG2_data Public data45 As _IODBSIG2_data End Structure - _ + Public Structure IODBSIG2 Public datano As Short ' dummy Public type As Short ' dummy @@ -2981,7 +3020,7 @@ Public Class Focas1 ' cnc_rdhissgnl3:read signals related operation history ' cnc_wrhissgnl3:write signals related operation history - _ + Public Structure _IODBSIG3_data Public ent_no As Short ' entry number Public pmc_no As Short ' pmc number @@ -2989,17 +3028,17 @@ Public Class Focas1 Public sig_name As Byte ' signal name Public mask_pat As Byte ' signal mask pattern End Structure - _ + Public Structure IODBSIG3_data - Public data1 As _IODBSIG3_data - Public data2 As _IODBSIG3_data - Public data3 As _IODBSIG3_data - Public data4 As _IODBSIG3_data - Public data5 As _IODBSIG3_data - Public data6 As _IODBSIG3_data - Public data7 As _IODBSIG3_data - Public data8 As _IODBSIG3_data - Public data9 As _IODBSIG3_data + Public data1 As _IODBSIG3_data + Public data2 As _IODBSIG3_data + Public data3 As _IODBSIG3_data + Public data4 As _IODBSIG3_data + Public data5 As _IODBSIG3_data + Public data6 As _IODBSIG3_data + Public data7 As _IODBSIG3_data + Public data8 As _IODBSIG3_data + Public data9 As _IODBSIG3_data Public data10 As _IODBSIG3_data Public data11 As _IODBSIG3_data Public data12 As _IODBSIG3_data @@ -3052,31 +3091,31 @@ Public Class Focas1 Public data59 As _IODBSIG3_data Public data60 As _IODBSIG3_data End Structure - _ + Public Structure IODBSIG3 - Public datano As Short' dummy + Public datano As Short ' dummy Public type As Short ' dummy Public data As IODBSIG3_data End Structure -'------------- -' CNC: Others -'------------- + '------------- + ' CNC: Others + '------------- ' cnc_sysinfo:read CNC system information - _ + Public Structure ODBSYS Public addinfo As Short Public max_axis As Short - _ + Public cnc_type As Char() - _ + Public mt_type As Char() - _ + Public series As Char() - _ + Public version As Char() - _ + Public axes As Char() End Structure @@ -3101,7 +3140,7 @@ Public Class Focas1 End Structure #Else ' cnc_statinfo:read CNC status information - _ + Public Structure ODBST Public dummy As Short ' dummy Public tmmode As Short ' T/M mode @@ -3116,9 +3155,9 @@ Public Class Focas1 #End If ' cnc_alarm:read alarm status - _ + Public Structure ODBALM - _ + Public dummy As Short() Public data As Short ' C# ushort End Structure @@ -3140,22 +3179,22 @@ Public Class Focas1 Public alm_msg As String ' alarm message End Structure #Else - _ + Public Structure ALMINFO1_data Public axis As Short Public alm_no As Short End Structure - _ + Public Structure ALMINFO2_data Public axis As Short Public alm_no As Short Public msg_len As Short - _ + Public alm_msg As String ' alarm message End Structure #End If - _ + Public Structure ALMINFO_1 Public msg1 As ALMINFO1_data Public msg2 As ALMINFO1_data @@ -3165,7 +3204,7 @@ Public Class Focas1 Public data_end As Short End Structure ' In case that the number of alarm is 5 - _ + Public Structure ALMINFO_2 Public msg1 As ALMINFO2_data Public msg2 As ALMINFO2_data @@ -3176,17 +3215,17 @@ Public Class Focas1 End Structure ' In case that the number of alarm is 5 ' cnc_rdalmmsg:read alarm messages - _ + Public Structure ODBALMMSG_data Public alm_no As Integer Public type As Short Public axis As Short Public dummy As Short Public msg_len As Short - _ + Public alm_msg As String ' alarm message End Structure - _ + Public Structure ODBALMMSG Public msg1 As ODBALMMSG_data Public msg2 As ODBALMMSG_data @@ -3201,17 +3240,17 @@ Public Class Focas1 End Structure ' In case that the number of alarm is 10 ' cnc_rdalmmsg2:read alarm messages - _ + Public Structure ODBALMMSG2_data Public alm_no As Integer Public type As Short Public axis As Short Public dummy As Short Public msg_len As Short - _ + Public alm_msg As String ' alarm message End Structure - _ + Public Structure ODBALMMSG2 Public msg1 As ODBALMMSG2_data Public msg2 As ODBALMMSG2_data @@ -3226,13 +3265,13 @@ Public Class Focas1 End Structure ' In case that the number of alarm is 10 ' cnc_modal:read modal data - _ + Public Structure MODAL_AUX_data Public aux_data As Integer Public flag1 As Byte Public flag2 As Byte End Structure - _ + Public Structure MODAL_RAUX1_data Public data1 As MODAL_AUX_data Public data2 As MODAL_AUX_data @@ -3306,7 +3345,7 @@ Public Class Focas1 Public data10 As MODAL_AUX_data End Structure #Else - _ + Public Structure MODAL_RAUX2_data Public data1 As MODAL_AUX_data Public data2 As MODAL_AUX_data @@ -3320,41 +3359,41 @@ Public Class Focas1 #End If #End If - _ + Public Structure ODBMDL_1 - _ + Public datano As Short - _ + Public type As Short - _ + Public g_data As Char End Structure - _ + Public Structure ODBMDL_2 - _ + Public datano As Short - _ + Public type As Short - _ + Public g_1shot As Byte() - _ + Public g_rdata As Byte() End Structure - _ + Public Structure ODBMDL_3 Public datano As Short Public type As Short Public aux As MODAL_AUX_data End Structure - _ + Public Structure ODBMDL_4 Public datano As Short Public type As Short Public raux1 As MODAL_RAUX1_data End Structure - _ + Public Structure ODBMDL_5 Public datano As Short Public type As Short @@ -3362,25 +3401,25 @@ Public Class Focas1 End Structure ' cnc_rdgcode: read G code - _ + Public Structure ODBGCD_data Public group As Short Public flag As Short - _ + Public code As String End Structure - _ + Public Structure ODBGCD - Public gcd0 As ODBGCD_data - Public gcd1 As ODBGCD_data - Public gcd2 As ODBGCD_data - Public gcd3 As ODBGCD_data - Public gcd4 As ODBGCD_data - Public gcd5 As ODBGCD_data - Public gcd6 As ODBGCD_data - Public gcd7 As ODBGCD_data - Public gcd8 As ODBGCD_data - Public gcd9 As ODBGCD_data + Public gcd0 As ODBGCD_data + Public gcd1 As ODBGCD_data + Public gcd2 As ODBGCD_data + Public gcd3 As ODBGCD_data + Public gcd4 As ODBGCD_data + Public gcd5 As ODBGCD_data + Public gcd6 As ODBGCD_data + Public gcd7 As ODBGCD_data + Public gcd8 As ODBGCD_data + Public gcd9 As ODBGCD_data Public gcd10 As ODBGCD_data Public gcd11 As ODBGCD_data Public gcd12 As ODBGCD_data @@ -3402,7 +3441,7 @@ Public Class Focas1 End Structure ' cnc_rdcommand: read command value - _ + Public Structure ODBCMD_data Public adrs As Byte Public num As Byte @@ -3410,18 +3449,18 @@ Public Class Focas1 Public cmd_val As Integer Public dec_val As Integer End Structure - _ + Public Structure ODBCMD - Public cmd0 As ODBCMD_data - Public cmd1 As ODBCMD_data - Public cmd2 As ODBCMD_data - Public cmd3 As ODBCMD_data - Public cmd4 As ODBCMD_data - Public cmd5 As ODBCMD_data - Public cmd6 As ODBCMD_data - Public cmd7 As ODBCMD_data - Public cmd8 As ODBCMD_data - Public cmd9 As ODBCMD_data + Public cmd0 As ODBCMD_data + Public cmd1 As ODBCMD_data + Public cmd2 As ODBCMD_data + Public cmd3 As ODBCMD_data + Public cmd4 As ODBCMD_data + Public cmd5 As ODBCMD_data + Public cmd6 As ODBCMD_data + Public cmd7 As ODBCMD_data + Public cmd8 As ODBCMD_data + Public cmd9 As ODBCMD_data Public cmd10 As ODBCMD_data Public cmd11 As ODBCMD_data Public cmd12 As ODBCMD_data @@ -3446,7 +3485,7 @@ Public Class Focas1 ' cnc_diagnoss:read diagnosis data ' cnc_diagnosr:read diagnosis data(area specified) - _ + Public Structure REALDGN Public dgn_val As Integer ' data of real diagnoss Public dec_val As Integer ' decimal point of real diagnoss @@ -3496,7 +3535,7 @@ Public Class Focas1 Public rdata10 As REALDGN End Structure ' In case that the number of alarm is 10 #Else - _ + Public Structure REALDGNS Public rdata1 As REALDGN Public rdata2 As REALDGN @@ -3510,48 +3549,48 @@ Public Class Focas1 #End If #End If - _ + Public Structure ODBDGN_1 - _ + Public datano As Short ' data number - _ + Public type As Short ' axis number - _ + Public cdata As Byte ' parameter / setting data - _ + Public idata As Short - _ + Public ldata As Integer End Structure - _ + Public Structure ODBDGN_2 Public datano As Short ' data number Public type As Short ' axis number Public rdata As REALDGN End Structure - _ + Public Structure ODBDGN_3 - _ + Public datano As Short ' data number - _ + Public type As Short ' axis number - _ + Public cdatas As Byte() - _ + Public idatas As Short() - _ + Public ldatas As Integer() End Structure - _ + Public Structure ODBDGN_4 Public datano As Short ' data number Public type As Short ' axis number Public rdatas As REALDGNS End Structure - _ + Public Structure ODBDGN_A Public data1 As ODBDGN_1 Public data2 As ODBDGN_1 @@ -3561,7 +3600,7 @@ Public Class Focas1 Public data6 As ODBDGN_1 Public data7 As ODBDGN_1 End Structure ' (sample) must be modified - _ + Public Structure ODBDGN_B Public data1 As ODBDGN_2 Public data2 As ODBDGN_2 @@ -3571,7 +3610,7 @@ Public Class Focas1 Public data6 As ODBDGN_2 Public data7 As ODBDGN_2 End Structure ' (sample) must be modified - _ + Public Structure ODBDGN_C Public data1 As ODBDGN_3 Public data2 As ODBDGN_3 @@ -3581,7 +3620,7 @@ Public Class Focas1 Public data6 As ODBDGN_3 Public data7 As ODBDGN_3 End Structure ' (sample) must be modified - _ + Public Structure ODBDGN_D Public data1 As ODBDGN_4 Public data2 As ODBDGN_4 @@ -3593,7 +3632,7 @@ Public Class Focas1 End Structure ' (sample) must be modified ' cnc_adcnv:read A/D conversion data - _ + Public Structure ODBAD Public datano As Short ' input analog voltage type Public type As Short ' analog voltage type @@ -3611,16 +3650,16 @@ Public Class Focas1 Public data As String ' operator's message string End Structure ' In case that the data length is 129 #Else - _ + Public Structure OPMSG_data Public datano As Short ' operator's message number Public type As Short ' operator's message type Public char_num As Short ' message string length - _ + Public data As String ' operator's message string End Structure ' In case that the data length is 256 #End If - _ + Public Structure OPMSG Public msg1 As OPMSG_data Public msg2 As OPMSG_data @@ -3630,15 +3669,15 @@ Public Class Focas1 End Structure ' cnc_rdopmsg2:read operator's message - _ + Public Structure OPMSG2_data Public datano As Short ' operator's message number Public type As Short ' operator's message type Public char_num As Short ' message string length - _ + Public data As String ' operator's message string End Structure ' In case that the data length is 64 - _ + Public Structure OPMSG2 Public msg1 As OPMSG2_data Public msg2 As OPMSG2_data @@ -3648,15 +3687,15 @@ Public Class Focas1 End Structure ' cnc_rdopmsg3:read operator's message - _ + Public Structure OPMSG3_data Public datano As Short ' operator's message number Public type As Short ' operator's message type Public char_num As Short ' message string length - _ + Public data As String ' operator's message string End Structure ' In case that the data length is 256 - _ + Public Structure OPMSG3 Public msg1 As OPMSG3_data Public msg2 As OPMSG3_data @@ -3666,95 +3705,95 @@ Public Class Focas1 End Structure ' cnc_sysconfig:read CNC configuration information - _ + Public Structure ODBSYSC - _ + Public slot_no_p As Byte() - _ + Public slot_no_l As Byte() - _ + Public mod_id As Short() - _ + Public soft_id As Short() - _ + Public s_series1 As String - _ + Public s_series2 As String - _ + Public s_series3 As String - _ + Public s_series4 As String - _ + Public s_series5 As String - _ + Public s_series6 As String - _ + Public s_series7 As String - _ + Public s_series8 As String - _ + Public s_series9 As String - _ + Public s_series10 As String - _ + Public s_series11 As String - _ + Public s_series12 As String - _ + Public s_series13 As String - _ + Public s_series14 As String - _ + Public s_series15 As String - _ + Public s_series16 As String - _ + Public s_version1 As String - _ + Public s_version2 As String - _ + Public s_version3 As String - _ + Public s_version4 As String - _ + Public s_version5 As String - _ + Public s_version6 As String - _ + Public s_version7 As String - _ + Public s_version8 As String - _ + Public s_version9 As String - _ + Public s_version10 As String - _ + Public s_version11 As String - _ + Public s_version12 As String - _ + Public s_version13 As String - _ + Public s_version14 As String - _ + Public s_version15 As String - _ + Public s_version16 As String - _ + Public dummy As Byte() Public m_rom As Short Public s_rom As Short - _ + Public svo_soft As Char() - _ + Public pmc_soft As Char() - _ + Public lad_soft As Char() - _ + Public mcr_soft As Char() - _ + Public spl1_soft As Char() - _ + Public spl2_soft As Char() Public frmmin As Short Public drmmin As Short @@ -3802,22 +3841,22 @@ Public Class Focas1 End Structure ' cnc_rdprstrinfo:read program restart information - _ + Public Structure ODBPRS Public datano As Short ' dummy Public type As Short ' dummy - _ + Public data_info As Short() ' data setting information Public rstr_bc As Integer ' block counter - _ + Public rstr_m As Integer() ' M code value - _ + Public rstr_t As Integer() ' T code value Public rstr_s As Integer ' S code value Public rstr_b As Integer ' B code value - _ + Public dest As Integer() ' program re-start position - _ + Public dist As Integer() ' program re-start distance End Structure @@ -3848,7 +3887,7 @@ Public Class Focas1 #Else ' cnc_rdopnlsgnl:read output signal image of software operator's panel ' cnc_wropnlsgnl:write output signal of software operator's panel - _ + Public Structure IODBSGNL Public datano As Short ' dummy Public type As Short ' data select flag @@ -3861,7 +3900,7 @@ Public Class Focas1 Public spdl_ovrd As Short ' (not used) Public blck_del As Short ' optional block skip signal Public sngl_blck As Short ' single block signal - Public machn_lock As Short' machine lock signal + Public machn_lock As Short ' machine lock signal Public dry_run As Short ' dry run signal Public mem_prtct As Short ' memory protection signal Public feed_hold As Short ' automatic operation halt signal @@ -3870,39 +3909,39 @@ Public Class Focas1 ' cnc_rdopnlgnrl:read general signal image of software operator's panel ' cnc_wropnlgnrl:write general signal image of software operator's panel - _ + Public Structure IODBGNRL - Public datano As Short' dummy - Public type As Short' data select flag + Public datano As Short ' dummy + Public type As Short ' data select flag Public sgnal As Byte ' general signal End Structure ' cnc_rdopnlgsname:read general signal name of software operator's panel ' cnc_wropnlgsname:write general signal name of software operator's panel - _ + Public Structure IODBRDNA Public datano As Short ' dummy Public type As Short ' data select flag - _ + Public sgnl1_name As String ' general signal 1 name - _ + Public sgnl2_name As String ' general signal 2 name - _ + Public sgnl3_name As String ' general signal 3 name - _ + Public sgnl4_name As String ' general signal 4 name - _ + Public sgnl5_name As String ' general signal 5 name - _ + Public sgnl6_name As String ' general signal 6 name - _ + Public sgnl7_name As String ' general signal 7 name - _ + Public sgnl8_name As String ' general signal 8 name End Structure ' cnc_getdtailerr:get detail error - _ + Public Structure ODBERR Public err_no As Short Public err_dtno As Short @@ -3910,12 +3949,12 @@ Public Class Focas1 ' cnc_rdparainfo:read informations of CNC parameter - _ + Public Structure ODBPARAIF_info Public prm_no As Short Public prm_type As Short End Structure - _ + Public Structure ODBPARAIF1 Public info1 As ODBPARAIF_info Public info2 As ODBPARAIF_info @@ -3928,7 +3967,7 @@ Public Class Focas1 Public info9 As ODBPARAIF_info Public info10 As ODBPARAIF_info End Structure ' In case that the number of data is 10 - _ + Public Structure ODBPARAIF Public info_no As Short ' C# ushort Public prev_no As Short @@ -3937,12 +3976,12 @@ Public Class Focas1 End Structure ' cnc_rdsetinfo:read informations of CNC setting data - _ + Public Structure ODBSETIF_info Public set_no As Short Public set_type As Short End Structure - _ + Public Structure ODBSETIF1 Public info1 As ODBSETIF_info Public info2 As ODBSETIF_info @@ -3955,7 +3994,7 @@ Public Class Focas1 Public info9 As ODBSETIF_info Public info10 As ODBSETIF_info End Structure ' In case that the number of data is 10 - _ + Public Structure ODBSETIF Public info_no As Short 'C# ushort Public prev_no As Short @@ -3964,12 +4003,12 @@ Public Class Focas1 End Structure ' cnc_rddiaginfo:read informations of CNC diagnose data - _ + Public Structure ODBDIAGIF_info Public diag_no As Short Public diag_type As Short End Structure - _ + Public Structure ODBDIAGIF1 Public info1 As ODBDIAGIF_info Public info2 As ODBDIAGIF_info @@ -3982,7 +4021,7 @@ Public Class Focas1 Public info9 As ODBDIAGIF_info Public info10 As ODBDIAGIF_info End Structure ' In case that the number of data is 10 - _ + Public Structure ODBDIAGIF Public info_no As Short ' C# ushort Public prev_no As Short @@ -3991,7 +4030,7 @@ Public Class Focas1 End Structure ' cnc_rdparanum:read maximum, minimum and total number of CNC parameter - _ + Public Structure ODBPARANUM Public para_min As Short ' C# ushort Public para_max As Short ' C# ushort @@ -3999,7 +4038,7 @@ Public Class Focas1 End Structure ' cnc_rdsetnum:read maximum, minimum and total number of CNC setting data - _ + Public Structure ODBSETNUM Public set_min As Short ' C# ushort Public set_max As Short ' C# ushort @@ -4007,7 +4046,7 @@ Public Class Focas1 End Structure ' cnc_rddiagnum:read maximum, minimum and total number of CNC diagnose data - _ + Public Structure ODBDIAGNUM Public diag_min As Short ' C# ushort Public diag_max As Short ' C# ushort @@ -4015,13 +4054,13 @@ Public Class Focas1 End Structure ' cnc_rdfrominfo:read F-ROM information on CNC - _ + Public Structure ODBFINFO_info - _ + Public sysname As String ' F-ROM SYSTEM data Name Public fromsize As Integer ' F-ROM Size End Structure - _ + Public Structure ODBFINFO1 Public info1 As ODBFINFO_info Public info2 As ODBFINFO_info @@ -4056,23 +4095,23 @@ Public Class Focas1 Public info31 As ODBFINFO_info Public info32 As ODBFINFO_info End Structure - _ + Public Structure ODBFINFO - _ + Public slotname As String ' Slot Name Public fromnum As Integer ' Number of F-ROM SYSTEM data Public info As ODBFINFO1 End Structure ' cnc_getfrominfo:read F-ROM information on CNC - _ + Public Structure ODBFINFORM_info - _ + Public sysname As String ' F-ROM SYSTEM data Name Public fromsize As Integer ' F-ROM Size Public fromattrib As Integer ' F-ROM data attribute End Structure - _ + Public Structure ODBFINFORM1 Public info1 As ODBFINFORM_info Public info2 As ODBFINFORM_info @@ -4107,10 +4146,10 @@ Public Class Focas1 Public info31 As ODBFINFORM_info Public info32 As ODBFINFORM_info End Structure - _ + Public Structure ODBFINFORM Public slotno As Integer ' Slot Number - _ + Public slotname As String ' Slot Name Public fromnum As Integer ' Number of F-ROM SYSTEM data Public info As ODBFINFORM1 @@ -4118,26 +4157,26 @@ Public Class Focas1 ' cnc_rdsraminfo:read S-RAM information on CNC ' cnc_getsraminfo:read S-RAM information on CNC - _ + Public Structure ODBSINFO_info - _ + Public sramname As String ' S-RAM data Name Public sramsize As Integer ' S-RAM data Size Public divnumber As Short ' Division number of S-RAM file - _ + Public fname1 As String ' S-RAM data Name1 - _ + Public fname2 As String ' S-RAM data Name2 - _ + Public fname3 As String ' S-RAM data Name3 - _ + Public fname4 As String ' S-RAM data Name4 - _ + Public fname5 As String ' S-RAM data Name5 - _ + Public fname6 As String ' S-RAM data Name6 End Structure - _ + Public Structure ODBSINFO1 Public info1 As ODBSINFO_info Public info2 As ODBSINFO_info @@ -4148,14 +4187,14 @@ Public Class Focas1 Public info7 As ODBSINFO_info Public info8 As ODBSINFO_info End Structure - _ + Public Structure ODBSINFO Public sramnum As Integer ' Number of S-RAM data Public info As ODBSINFO1 End Structure ' cnc_rdsramaddr:read S-RAM address on CNC - _ + Public Structure SRAMADDR Public type As Short ' SRAM data type Public size As Integer ' SRAM data size @@ -4163,17 +4202,17 @@ Public Class Focas1 End Structure ' cnc_dtsvrdpgdir:read file directory in Data Server - _ + Public Structure ODBDSDIR_data - _ + Public file_name As String - _ + Public comment As String Public size As Integer - _ + Public sDate As String End Structure - _ + Public Structure ODBDSDIR1 Public data1 As ODBDSDIR_data Public data2 As ODBDSDIR_data @@ -4208,7 +4247,7 @@ Public Class Focas1 Public data31 As ODBDSDIR_data Public data32 As ODBDSDIR_data End Structure - _ + Public Structure ODBDSDIR Public file_num As Integer Public remainder As Integer @@ -4218,26 +4257,26 @@ Public Class Focas1 ' cnc_dtsvrdset:read setting data for Data Server ' cnc_dtsvwrset:write setting data for Data Server - _ + Public Structure IODBDSSET - _ + Public host_ip As String - _ + Public host_uname As String - _ + Public host_passwd As String - _ + Public host_dir As String - _ + Public dtsv_mac As String - _ + Public dtsv_ip As String - _ + Public dtsv_mask As String End Structure ' cnc_dtsvmntinfo:read maintenance information for Data Server - _ + Public Structure ODBDSMNT Public empty_cnt As Integer Public total_size As Integer @@ -4246,21 +4285,21 @@ Public Class Focas1 End Structure ' cnc_rdposerrs2:read the position deviation S1 and S2 - _ + Public Structure ODBPSER Public poserr1 As Integer Public poserr2 As Integer End Structure ' cnc_rdctrldi:read the control input signal - _ + Public Structure ODBSPDI_data Public sgnl1 As Byte Public sgnl2 As Byte Public sgnl3 As Byte Public sgnl4 As Byte End Structure - _ + Public Structure ODBSPDI Public di1 As ODBSPDI_data Public di2 As ODBSPDI_data @@ -4269,14 +4308,14 @@ Public Class Focas1 End Structure ' cnc_rdctrldo:read the control output signal - _ + Public Structure ODBSPDO_data Public sgnl1 As Byte Public sgnl2 As Byte Public sgnl3 As Byte Public sgnl4 As Byte End Structure - _ + Public Structure ODBSPDO Public do1 As ODBSPDO_data Public do2 As ODBSPDO_data @@ -4286,29 +4325,29 @@ Public Class Focas1 ' cnc_rdwaveprm:read the parameter of wave diagnosis ' cnc_wrwaveprm:write the parameter of wave diagnosis - _ + Public Structure IODBWAVE_io Public adr As Byte Public bit As Byte Public no As Short End Structure - _ + Public Structure IODBWAVE_axis Public axis As Short End Structure - _ + Public Structure IODBWAVE_u - _ + Public io As IODBWAVE_io - _ + Public axis As IODBWAVE_axis End Structure - _ + Public Structure IODBWAVE_ch_data Public kind As Short Public u As IODBWAVE_u End Structure - _ + Public Structure IODBWAVE_ch Public ch1 As IODBWAVE_ch_data Public ch2 As IODBWAVE_ch_data @@ -4323,7 +4362,7 @@ Public Class Focas1 Public ch11 As IODBWAVE_ch_data Public ch12 As IODBWAVE_ch_data End Structure - _ + Public Structure IODBWAVE Public condition As Short Public trg_adr As Char @@ -4336,30 +4375,30 @@ Public Class Focas1 ' cnc_rdwaveprm2:read the parameter of wave diagnosis 2 ' cnc_wrwaveprm2:write the parameter of wave diagnosis 2 - _ + Public Structure IODBWVPRM_io Public adr As Byte Public bit As Byte Public no As Short End Structure - _ + Public Structure IODBWVPRM_axis Public axis As Short End Structure - _ + Public Structure IODBWVPRM_u - _ + Public io As IODBWVPRM_io - _ + Public axis As IODBWVPRM_axis End Structure - _ + Public Structure IODBWVPRM_ch_data Public kind As Short Public u As IODBWVPRM_u Public reserve2 As Integer End Structure - _ + Public Structure IODBWVPRM_ch Public ch1 As IODBWVPRM_ch_data Public ch2 As IODBWVPRM_ch_data @@ -4374,7 +4413,7 @@ Public Class Focas1 Public ch11 As IODBWVPRM_ch_data Public ch12 As IODBWVPRM_ch_data End Structure - _ + Public Structure IODBWVPRM Public condition As Short Public trg_adr As Byte @@ -4387,24 +4426,24 @@ Public Class Focas1 End Structure ' cnc_rdwavedata:read the data of wave diagnosis - _ + Public Structure ODBWVDT_io Public adr As Byte Public bit As Byte Public no As Short End Structure - _ + Public Structure ODBWVDT_axis Public axis As Short End Structure - _ + Public Structure ODBWVDT_u - _ + Public io As ODBWVDT_io - _ + Public axis As ODBWVDT_axis End Structure - _ + Public Structure ODBWVDT Public channel As Short Public kind As Short @@ -4416,38 +4455,38 @@ Public Class Focas1 Public minute As Byte Public second As Byte Public t_cycle As Short - _ + Public data As Short() End Structure ' cnc_rdrmtwaveprm:read the parameter of wave diagnosis for remort diagnosis ' cnc_wrrmtwaveprm:write the parameter of wave diagnosis for remort diagnosis - _ + Public Structure IODBRMTPRM_alm Public no As Short Public axis As SByte Public type As Byte End Structure - _ + Public Structure IODBRMTPRM_io Public adr As Char Public bit As Byte Public no As Short End Structure - _ + Public Structure IODBRMTPRM_trg - _ + Public alm As IODBRMTPRM_alm - _ + Public io As IODBRMTPRM_alm End Structure - _ + Public Structure IODBRMTPRM_smpl - Public adr As Char - Public bit As Byte - Public no As Short + Public adr As Char + Public bit As Byte + Public no As Short End Structure - _ + Public Structure IODBRMTPRM1 Public ampl1 As IODBRMTPRM_smpl Public ampl2 As IODBRMTPRM_smpl @@ -4482,7 +4521,7 @@ Public Class Focas1 Public ampl31 As IODBRMTPRM_smpl Public ampl32 As IODBRMTPRM_smpl End Structure - _ + Public Structure IODBRMTPRM Public condition As Short Public reserve As Short @@ -4496,7 +4535,7 @@ Public Class Focas1 End Structure ' cnc_rdrmtwavedt:read the data of wave diagnosis for remort diagnosis - _ + Public Structure ODBRMTDT Public channel As Short Public kind As Short @@ -4510,13 +4549,13 @@ Public Class Focas1 Public trg_data As Short Public ins_ptr As Integer Public t_delta As Short - _ + Public data As Short() End Structure ' cnc_rdsavsigadr:read of address for PMC signal batch save ' cnc_wrsavsigadr:write of address for PMC signal batch save - _ + Public Structure IODBSIGAD Public adr As Byte Public reserve As Byte @@ -4525,15 +4564,15 @@ Public Class Focas1 End Structure ' cnc_rdmgrpdata:read M-code group data - _ + Public Structure ODBMGRP_data Public m_code As Integer Public grp_no As Short - _ + Public m_name As String Public dummy As Byte End Structure - _ + Public Structure ODBMGRP Public mgrp1 As ODBMGRP_data Public mgrp2 As ODBMGRP_data @@ -4548,22 +4587,22 @@ Public Class Focas1 End Structure ' cnc_wrmgrpdata:write M-code group data - _ + Public Structure IDBMGRP Public s_no As Short Public dummy As Short Public num As Short - _ + Public group As Short() End Structure ' cnc_rdexecmcode:read executing M-code group data - _ + Public Structure ODBEXEM_data Public no As Integer Public flag As Short End Structure - _ + Public Structure ODBEXEM1 Public m_code1 As ODBEXEM_data Public m_code2 As ODBEXEM_data @@ -4571,23 +4610,23 @@ Public Class Focas1 Public m_code4 As ODBEXEM_data Public m_code5 As ODBEXEM_data End Structure - _ + Public Structure ODBEXEM Public grp_no As Short Public mem_no As Short Public m_code As ODBEXEM1 - _ + Public m_name As String Public dummy As Byte End Structure ' cnc_rdrstrmcode:read program restart M-code group data - _ + Public Structure M_CODE_data Public no As Integer Public flag As Short End Structure - _ + Public Structure M_CODE1 Public m_code1 As M_CODE_data Public m_code2 As M_CODE_data @@ -4595,7 +4634,7 @@ Public Class Focas1 Public m_code4 As M_CODE_data Public m_code5 As M_CODE_data End Structure - _ + Public Structure ODBRSTRM Public grp_no As Short Public mem_no As Short @@ -4603,14 +4642,14 @@ Public Class Focas1 End Structure ' cnc_rdproctime:read processing time stamp data - _ + Public Structure ODBPTIME_data Public prg_no As Integer Public hour As Short Public minute As Byte Public second As Byte End Structure - _ + Public Structure ODBPTIME1 Public data1 As ODBPTIME_data Public data2 As ODBPTIME_data @@ -4623,22 +4662,22 @@ Public Class Focas1 Public data9 As ODBPTIME_data Public data10 As ODBPTIME_data End Structure ' In case that the number of data is 10 - _ + Public Structure ODBPTIME Public num As Short Public data As ODBPTIME1 End Structure ' cnc_rdprgdirtime:read program directory for processing time data - _ + Public Structure PRGDIRTM_data Public prg_no As Integer - _ + Public m_name As String - _ + Public cuttime As String End Structure - _ + Public Structure PRGDIRTM Public data1 As PRGDIRTM_data Public data2 As PRGDIRTM_data @@ -4654,11 +4693,11 @@ Public Class Focas1 ' cnc_rdprogdir2:read program directory 2 #If ONO8D = Nothing Then - _ + Public Structure PRGDIR2_data Public number As Short Public length As Integer - _ + Public comment As String Public dummy As Byte End Structure @@ -4672,7 +4711,7 @@ Public Class Focas1 Public dummy As Byte End Structure #End If - _ + Public Structure PRGDIR2 Public dir1 As PRGDIR2_data Public dir2 As PRGDIR2_data @@ -4687,35 +4726,35 @@ Public Class Focas1 End Structure ' In case that the number of data is 10 ' cnc_rdprogdir3:read program directory 3 - _ + Public Structure DIR3_MDATE - Public year As Short - Public month As Short - Public day As Short - Public hour As Short - Public minute As Short - Public dummy As Short + Public year As Short + Public month As Short + Public day As Short + Public hour As Short + Public minute As Short + Public dummy As Short End Structure - _ + Public Structure DIR3_CDATE - Public year As Short - Public month As Short - Public day As Short - Public hour As Short - Public minute As Short - Public dummy As Short + Public year As Short + Public month As Short + Public day As Short + Public hour As Short + Public minute As Short + Public dummy As Short End Structure - _ + Public Structure PRGDIR3_data Public number As Integer Public length As Integer Public page As Integer - _ + Public comment As String Public mdate As DIR3_MDATE Public cdate1 As DIR3_CDATE End Structure - _ + Public Structure PRGDIR3 Public dir1 As PRGDIR3_data Public dir2 As PRGDIR3_data @@ -4730,35 +4769,35 @@ Public Class Focas1 End Structure ' In case that the number of data is 10 ' cnc_rdprogdir4:read program directory 4 - _ + Public Structure DIR4_MDATE - Public year As Short - Public month As Short - Public day As Short - Public hour As Short - Public minute As Short - Public dummy As Short + Public year As Short + Public month As Short + Public day As Short + Public hour As Short + Public minute As Short + Public dummy As Short End Structure - _ + Public Structure DIR4_CDATE - Public year As Short - Public month As Short - Public day As Short - Public hour As Short - Public minute As Short - Public dummy As Short + Public year As Short + Public month As Short + Public day As Short + Public hour As Short + Public minute As Short + Public dummy As Short End Structure - _ + Public Structure PRGDIR4_data Public number As Integer Public length As Integer Public page As Integer - _ + Public comment As String Public mdate As DIR3_MDATE Public cdate1 As DIR3_CDATE End Structure - _ + Public Structure PRGDIR4 Public dir1 As PRGDIR4_data Public dir2 As PRGDIR4_data @@ -4774,12 +4813,12 @@ Public Class Focas1 ' cnc_rdcomparam:read communication parameter for DNC1, DNC2, OSI-Ethernet ' cnc_wrcomparam:write communication parameter for DNC1, DNC2, OSI-Ethernet - _ + Public Structure IODBCPRM - _ + Public NcApli As String Public Dummy1 As Byte - _ + Public HostApli As String Public Dummy2 As Byte Public StatPstv As Integer ' C# uint @@ -4796,12 +4835,12 @@ Public Class Focas1 ' cnc_rdintchk:read interference check ' cnc_wrintchk:write interference check - _ + Public Structure IODBINT Public datano_s As Short ' start offset No. Public type As Short ' kind of position Public datano_e As Short ' end offset No. - _ + Public data As Integer() ' position value of area for not attach End Structure @@ -4809,16 +4848,16 @@ Public Class Focas1 ' cnc_wrwkcdshft:write work coordinate shift ' cnc_rdwkcdsfms:read work coordinate shift measure ' cnc_wrwkcdsfms:write work coordinate shift measure - _ + Public Structure IODBWCSF Public datano As Short ' datano Public type As Short ' axis number - _ + Public data As Integer() ' data End Structure ' cnc_rdomhisinfo:read operator message history information - _ + Public Structure ODBOMIF Public om_max As Short ' maximum operator message history C# ushort Public om_sum As Short ' actually operator message history C# ushort @@ -4826,19 +4865,19 @@ Public Class Focas1 End Structure ' cnc_rdomhistry:read operator message history - _ + Public Structure ODBOMHIS_data Public om_no As Short ' operator message number Public year As Short ' year Public month As Short ' month Public day As Short ' day Public hour As Short ' hour - Public minute As Short' mimute - Public second As Short' second - _ + Public minute As Short ' mimute + Public second As Short ' second + Public om_msg As String End Structure - _ + Public Structure ODBOMHIS Public omhis1 As ODBOMHIS_data Public omhis2 As ODBOMHIS_data @@ -4854,17 +4893,17 @@ Public Class Focas1 ' cnc_rdbtofsr:read b-axis tool offset value(area specified) ' cnc_wrbtofsr:write b-axis tool offset value(area specified) - _ + Public Structure IODBBTO - Public datano_s As Short ' start offset number - Public type As Short ' offset type + Public datano_s As Short ' start offset number + Public type As Short ' offset type Public datano_e As Short ' end offset number - _ + Public ofs As Integer() ' offset End Structure ' In case that the number of data is 9 (B type) ' cnc_rdbtofsinfo:read b-axis tool offset information - _ + Public Structure ODBBTLINF Public ofs_type As Short ' memory type Public use_no As Short ' sum of b-axis offset @@ -4872,7 +4911,7 @@ Public Class Focas1 End Structure ' cnc_rdbaxis:read b-axis command - _ + Public Structure ODBBAXIS Public flag As Short ' b-axis command exist or not Public command As Short ' b-axis command @@ -4881,392 +4920,392 @@ Public Class Focas1 End Structure ' cnc_rdsyssoft:read CNC system soft series and version - _ + Public Structure ODBSYSS - _ + Public slot_no_p As Byte() - _ + Public slot_no_l As Byte() - _ + Public module_id As Short() - _ + Public soft_id As Short() - _ + Public soft_series1 As String - _ + Public soft_series2 As String - _ + Public soft_series3 As String - _ + Public soft_series4 As String - _ + Public soft_series5 As String - _ + Public soft_series6 As String - _ + Public soft_series7 As String - _ + Public soft_series8 As String - _ + Public soft_series9 As String - _ + Public soft_series10 As String - _ + Public soft_series11 As String - _ + Public soft_series12 As String - _ + Public soft_series13 As String - _ + Public soft_series14 As String - _ + Public soft_series15 As String - _ + Public soft_series16 As String - _ + Public soft_version1 As String - _ + Public soft_version2 As String - _ + Public soft_version3 As String - _ + Public soft_version4 As String - _ + Public soft_version5 As String - _ + Public soft_version6 As String - _ + Public soft_version7 As String - _ + Public soft_version8 As String - _ + Public soft_version9 As String - _ + Public soft_version10 As String - _ + Public soft_version11 As String - _ + Public soft_version12 As String - _ + Public soft_version13 As String - _ + Public soft_version14 As String - _ + Public soft_version15 As String - _ + Public soft_version16 As String Public soft_inst As Short - _ + Public boot_ser As String - _ + Public boot_ver As String - _ + Public servo_ser As String - _ + Public servo_ver As String - _ + Public pmc_ser As String - _ + Public pmc_ver As String - _ + Public ladder_ser As String - _ + Public ladder_ver As String - _ + Public mcrlib_ser As String - _ + Public mcrlib_ver As String - _ + Public mcrapl_ser As String - _ + Public mcrapl_ver As String - _ + Public spl1_ser As String - _ + Public spl1_ver As String - _ + Public spl2_ser As String - _ + Public spl2_ver As String - _ + Public spl3_ser As String - _ + Public spl3_ver As String - _ + Public c_exelib_ser As String - _ + Public c_exelib_ver As String - _ + Public c_exeapl_ser As String - _ + Public c_exeapl_ver As String - _ + Public int_vga_ser As String - _ + Public int_vga_ver As String - _ + Public out_vga_ser As String - _ + Public out_vga_ver As String - _ + Public pmm_ser As String - _ + Public pmm_ver As String - _ + Public pmc_mng_ser As String - _ + Public pmc_mng_ver As String - _ + Public pmc_shin_ser As String - _ + Public pmc_shin_ver As String - _ + Public pmc_shout_ser As String - _ + Public pmc_shout_ver As String - _ + Public pmc_c_ser As String - _ + Public pmc_c_ver As String - _ + Public pmc_edit_ser As String - _ + Public pmc_edit_ver As String - _ + Public lddr_mng_ser As String - _ + Public lddr_mng_ver As String - _ + Public lddr_apl_ser As String - _ + Public lddr_apl_ver As String - _ + Public spl4_ser As String - _ + Public spl4_ver As String - _ + Public mcr2_ser As String - _ + Public mcr2_ver As String - _ + Public mcr3_ser As String - _ + Public mcr3_ver As String - _ + Public eth_boot_ser As String - _ + Public eth_boot_ver As String - _ + Public reserve As Byte() End Structure ' cnc_rdsyssoft2:read CNC system soft series and version (2) - _ + Public Structure ODBSYSS2 - _ + Public slot_no_p As Byte() - _ + Public slot_no_l As Byte() - _ + Public module_id As Short() - _ + Public soft_id As Short() - _ + Public soft_series1 As String - _ + Public soft_series2 As String - _ + Public soft_series3 As String - _ + Public soft_series4 As String - _ + Public soft_series5 As String - _ + Public soft_series6 As String - _ + Public soft_series7 As String - _ + Public soft_series8 As String - _ + Public soft_series9 As String - _ + Public soft_series10 As String - _ + Public soft_series11 As String - _ + Public soft_series12 As String - _ + Public soft_series13 As String - _ + Public soft_series14 As String - _ + Public soft_series15 As String - _ + Public soft_series16 As String - _ + Public soft_version1 As String - _ + Public soft_version2 As String - _ + Public soft_version3 As String - _ + Public soft_version4 As String - _ + Public soft_version5 As String - _ + Public soft_version6 As String - _ + Public soft_version7 As String - _ + Public soft_version8 As String - _ + Public soft_version9 As String - _ + Public soft_version10 As String - _ + Public soft_version11 As String - _ + Public soft_version12 As String - _ + Public soft_version13 As String - _ + Public soft_version14 As String - _ + Public soft_version15 As String - _ + Public soft_version16 As String Public soft_inst As Short - _ + Public boot_ser As String - _ + Public boot_ver As String - _ + Public servo_ser As String - _ + Public servo_ver As String - _ + Public pmc_ser As String - _ + Public pmc_ver As String - _ + Public ladder_ser As String - _ + Public ladder_ver As String - _ + Public mcrlib_ser As String - _ + Public mcrlib_ver As String - _ + Public mcrapl_ser As String - _ + Public mcrapl_ver As String - _ + Public spl1_ser As String - _ + Public spl1_ver As String - _ + Public spl2_ser As String - _ + Public spl2_ver As String - _ + Public spl3_ser As String - _ + Public spl3_ver As String - _ + Public c_exelib_ser As String - _ + Public c_exelib_ver As String - _ + Public c_exeapl_ser As String - _ + Public c_exeapl_ver As String - _ + Public int_vga_ser As String - _ + Public int_vga_ver As String - _ + Public out_vga_ser As String - _ + Public out_vga_ver As String - _ + Public pmm_ser As String - _ + Public pmm_ver As String - _ + Public pmc_mng_ser As String - _ + Public pmc_mng_ver As String - _ + Public pmc_shin_ser As String - _ + Public pmc_shin_ver As String - _ + Public pmc_shout_ser As String - _ + Public pmc_shout_ver As String - _ + Public pmc_c_ser As String - _ + Public pmc_c_ver As String - _ + Public pmc_edit_ser As String - _ + Public pmc_edit_ver As String - _ + Public lddr_mng_ser As String - _ + Public lddr_mng_ver As String - _ + Public lddr_apl_ser As String - _ + Public lddr_apl_ver As String - _ + Public spl4_ser As String - _ + Public spl4_ver As String - _ + Public mcr2_ser As String - _ + Public mcr2_ver As String - _ + Public mcr3_ser As String - _ + Public mcr3_ver As String - _ + Public eth_boot_ser As String - _ + Public eth_boot_ver As String - _ + Public reserve As Byte() - _ + Public embEthe_ser As String - _ + Public embEthe_ver As String - _ + Public reserve2 As Byte() End Structure '@cnc_rdsyssoft3:read CNC system soft series and version (3) - _ + Public Structure ODBSYSS3_data Public soft_id As Short - _ + Public soft_series As Char() - _ + Public soft_edition As Char() End Structure - _ + Public Structure ODBSYSS3 - Public p1 As ODBSYSS3_data - Public p2 As ODBSYSS3_data - Public p3 As ODBSYSS3_data - Public p4 As ODBSYSS3_data - Public p5 As ODBSYSS3_data - Public p6 As ODBSYSS3_data - Public p7 As ODBSYSS3_data - Public p8 As ODBSYSS3_data - Public p9 As ODBSYSS3_data + Public p1 As ODBSYSS3_data + Public p2 As ODBSYSS3_data + Public p3 As ODBSYSS3_data + Public p4 As ODBSYSS3_data + Public p5 As ODBSYSS3_data + Public p6 As ODBSYSS3_data + Public p7 As ODBSYSS3_data + Public p8 As ODBSYSS3_data + Public p9 As ODBSYSS3_data Public p10 As ODBSYSS3_data Public p11 As ODBSYSS3_data Public p12 As ODBSYSS3_data @@ -5301,28 +5340,28 @@ Public Class Focas1 End Structure ' cnc_rdsyshard:read CNC system hard info - _ + Public Structure ODBSYSH_data - Public id1 As Integer - Public id2 As Integer - Public group_id As Short - Public hard_id As Short - Public hard_num As Short - Public slot_no As Short + Public id1 As Integer + Public id2 As Integer + Public group_id As Short + Public hard_id As Short + Public hard_num As Short + Public slot_no As Short Public id1_format As Short Public id2_format As Short End Structure - _ + Public Structure ODBSYSH - Public data1 As ODBSYSH_data - Public data2 As ODBSYSH_data - Public data3 As ODBSYSH_data - Public data4 As ODBSYSH_data - Public data5 As ODBSYSH_data - Public data6 As ODBSYSH_data - Public data7 As ODBSYSH_data - Public data8 As ODBSYSH_data - Public data9 As ODBSYSH_data + Public data1 As ODBSYSH_data + Public data2 As ODBSYSH_data + Public data3 As ODBSYSH_data + Public data4 As ODBSYSH_data + Public data5 As ODBSYSH_data + Public data6 As ODBSYSH_data + Public data7 As ODBSYSH_data + Public data8 As ODBSYSH_data + Public data9 As ODBSYSH_data Public data10 As ODBSYSH_data Public data11 As ODBSYSH_data Public data12 As ODBSYSH_data @@ -5342,7 +5381,7 @@ Public Class Focas1 End Structure ' cnc_rdmdlconfig:read CNC module configuration information - _ + Public Structure ODBMDLC Public from As Short Public dram As Short @@ -5356,7 +5395,7 @@ Public Class Focas1 Public sic As Short Public pos_lsi As Short Public hi_aio As Short - _ + Public reserve As Short() Public drmmrc As Short Public drmarc As Short @@ -5392,13 +5431,13 @@ Public Class Focas1 Public asrbgg As Short Public edtpsc As Short Public slcpsc As Short - _ + Public reserve2 As Short() End Structure ' cnc_rdpscdproc:read processing condition file (processing data) ' cnc_wrpscdproc:write processing condition file (processing data) - _ + Public Structure IODBPSCD_data Public slct As Short Public feed As Integer @@ -5412,10 +5451,10 @@ Public Class Focas1 Public supple As Integer Public edge_slt As Short Public appr_slt As Short - _ + Public reserve As Short() End Structure - _ + Public Structure IODBPSCD Public data1 As IODBPSCD_data Public data2 As IODBPSCD_data @@ -5431,7 +5470,7 @@ Public Class Focas1 ' cnc_rdpscdpirc:read processing condition file (piercing data) ' cnc_wrpscdpirc:write processing condition file (piercing data) - _ + Public Structure IODBPIRC_data Public slct As Short Public power As Short @@ -5446,10 +5485,10 @@ Public Class Focas1 Public g_kind As Short Public g_time As Short Public def_pos As Short - _ + Public reserve As Short() End Structure - _ + Public Structure IODBPIRC Public data1 As IODBPIRC_data Public data2 As IODBPIRC_data @@ -5458,7 +5497,7 @@ Public Class Focas1 ' cnc_rdpscdedge:read processing condition file (edging data) ' cnc_wrpscdedge:write processing condition file (edging data) - _ + Public Structure IODBEDGE_data Public slct As Short Public angle As Short @@ -5472,10 +5511,10 @@ Public Class Focas1 Public r_feed As Short Public r_freq As Short Public r_duty As Short - _ + Public reserve As Short() End Structure - _ + Public Structure IODBEDGE Public data1 As IODBEDGE_data Public data2 As IODBEDGE_data @@ -5486,19 +5525,19 @@ Public Class Focas1 ' cnc_rdpscdslop:read processing condition file (slope data) ' cnc_wrpscdslop:write processing condition file (slope data) - _ + Public Structure IODBSLOP_data Public slct As Integer Public upleng As Integer - _ + Public upsp As Short() Public dwleng As Integer - _ + Public dwsp As Short() - _ + Public reserve As Short() End Structure - _ + Public Structure IODBSLOP Public data1 As IODBSLOP_data Public data2 As IODBSLOP_data @@ -5509,41 +5548,41 @@ Public Class Focas1 ' cnc_rdlpwrdty:read power controll duty data ' cnc_wrlpwrdty:write power controll duty data - _ + Public Structure IODBLPWDT Public slct As Short Public dty_const As Short Public dty_min As Short - _ + Public reserve As Short() End Structure ' cnc_rdlpwrdat:read laser power data - _ + Public Structure ODBLOPDT Public slct As Short Public pwr_mon As Short Public pwr_ofs As Short Public pwr_act As Short Public feed_act As Integer - _ + Public reserve As Short() End Structure ' cnc_rdlagslt:read laser assist gas selection ' cnc_wrlagslt:write laser assist gas selection - _ + Public Structure IODBLAGSL Public slct As Short Public ag_slt As Short Public agflow_slt As Short - _ + Public reserve As Short() End Structure ' cnc_rdlagst:read laser assist gas flow ' cnc_wrlagst:write laser assist gas flow - _ + Public Structure GASFLOW Public slct As Short Public pre_time As Short @@ -5551,10 +5590,10 @@ Public Class Focas1 Public proc_press As Short Public end_time As Short Public end_press As Short - _ + Public reserve As Short() End Structure - _ + Public Structure IODBLAGST Public data1 As GASFLOW Public data2 As GASFLOW @@ -5563,31 +5602,31 @@ Public Class Focas1 ' cnc_rdledgprc:read laser power for edge processing ' cnc_wrledgprc:write laser power for edge processing - _ + Public Structure IODBLEGPR Public slct As Short Public power As Short Public freq As Short Public duty As Short - _ + Public reserve As Short() End Structure ' cnc_rdlprcprc:read laser power for piercing ' cnc_wrlprcprc:write laser power for piercing - _ + Public Structure IODBLPCPR Public slct As Short Public power As Short Public freq As Short Public duty As Short Public time As Integer - _ + Public reserve As Short() End Structure ' cnc_rdlcmddat:read laser command data - _ + Public Structure ODBLCMDT Public slct As Short Public feed As Integer @@ -5599,30 +5638,30 @@ Public Class Focas1 Public g_press As Short Public error1 As Short Public dsplc As Integer - _ + Public reserve As Short() End Structure ' cnc_rdlactnum:read active number - _ + Public Structure ODBLACTN Public slct As Short Public act_proc As Short Public act_pirce As Short Public act_slop As Short - _ + Public reserve As Short() End Structure ' cnc_rdlcmmt:read laser comment - _ + Public Structure ODBLCMMT - _ + Public comment As String End Structure ' cnc_rdpwofsthis:read power correction factor history data - _ + Public Structure ODBPWOFST_data Public pwratio As Integer Public rfvolt As Integer @@ -5633,7 +5672,7 @@ Public Class Focas1 Public minute As Short ' C# ushort Public second As Short ' C# ushort End Structure - _ + Public Structure ODBPWOFST Public data1 As ODBPWOFST_data Public data2 As ODBPWOFST_data @@ -5669,12 +5708,12 @@ Public Class Focas1 ' cnc_rdmngtime:read management time ' cnc_wrmngtime:write management time - _ + Public Structure IODBMNGTIME_data Public life As Integer ' C# uint Public tota As Integer ' C# uint End Structure - _ + Public Structure IODBMNGTIME Public data1 As IODBMNGTIME_data Public data2 As IODBMNGTIME_data @@ -5689,7 +5728,7 @@ Public Class Focas1 End Structure ' In case that the number of data is 10 ' cnc_rddischarge:read data related to electrical discharge at power correction ends - _ + Public Structure ODBDISCHRG Public aps As Short ' C# ushort Public year As Short ' C# ushort @@ -5703,20 +5742,20 @@ Public Class Focas1 Public hdt As Short Public hpa As Short Public hce As Integer - _ + Public rfi As Integer() - _ + Public rfv As Integer() - _ + Public dci As Integer() - _ + Public dcv As Integer() - _ + Public dcw As Integer() End Structure ' cnc_rddischrgalm:read alarm history data related to electrical discharg - _ + Public Structure ODBDISCHRGALM_data Public year As Short ' C# ushort Public month As Short ' C# ushort @@ -5734,21 +5773,21 @@ Public Class Focas1 Public asq As Short ' C# ushort Public psu As Short ' C# ushort Public aps As Short ' C# ushort - Public dummy As Short - _ + Public dummy As Short + Public rfi As Integer() - _ + Public rfv As Integer() - _ + Public dci As Integer() - _ + Public dcv As Integer() - _ + Public dcw As Integer() - _ + Public almcd As Short() End Structure - _ + Public Structure ODBDISCHRGALM Public data1 As ODBDISCHRGALM_data Public data2 As ODBDISCHRGALM_data @@ -5759,33 +5798,33 @@ Public Class Focas1 ' cnc_gettimer:get date and time from cnc ' cnc_settimer:set date and time for cnc - _ + Public Structure TIMER_DATE Public year As Short Public month As Short Public date1 As Short End Structure - _ + Public Structure TIMER_TIME Public hour As Short Public minute As Short Public second As Short End Structure - _ + Public Structure IODBTIMER - _ + Public type As Short - _ + Public dummy As Short - _ + Public date1 As TIMER_DATE - _ + Public time As TIMER_TIME End Structure ' cnc_rdtimer:read timer data from cnc ' cnc_wrtimer:write timer data for cnc - _ + Public Structure IODBTIME Public minute As Integer Public msec As Integer @@ -5793,22 +5832,22 @@ Public Class Focas1 ' cnc_rdtlctldata: read tool controll data ' cnc_wrtlctldata: write tool controll data - _ + Public Structure IODBTLCTL Public slct As Short Public used_tool As Short Public turret_indx As Short Public zero_tl_no As Integer Public t_axis_move As Integer - _ + Public total_punch As Integer() - _ + Public reserve As Short() End Structure ' cnc_rdtooldata: read tool data ' cnc_wrtooldata: read tool data - _ + Public Structure IODBTLDT_data Public slct As Short Public tool_no As Integer @@ -5824,10 +5863,10 @@ Public Class Focas1 Public tl_size_i As Integer Public tl_size_j As Integer Public tl_angle As Integer - _ + Public reserve As Integer() End Structure - _ + Public Structure IODBTLDT Public data1 As IODBTLDT_data Public data2 As IODBTLDT_data @@ -5843,7 +5882,7 @@ Public Class Focas1 ' cnc_rdmultitldt: read multi tool data ' cnc_wrmultitldt: write multi tool data - _ + Public Structure IODBMLTTL_data Public slct As Short Public m_tl_no As Short @@ -5855,10 +5894,10 @@ Public Class Focas1 Public tl_size_i As Integer Public tl_size_j As Integer Public tl_angle As Integer - _ + Public reserve As Integer() End Structure - _ + Public Structure IODBMLTTL Public data1 As IODBMLTTL_data Public data2 As IODBMLTTL_data @@ -5874,7 +5913,7 @@ Public Class Focas1 ' cnc_rdmtapdata: read multi tap data ' cnc_wrmtapdata: write multi tap data - _ + Public Structure IODBMTAP_data Public slct As Short Public tool_no As Integer @@ -5882,10 +5921,10 @@ Public Class Focas1 Public y_axis_ofs As Integer Public punch_count As Integer Public tool_life As Integer - _ + Public reserve As Integer() End Structure - _ + Public Structure IODBMTAP Public data1 As IODBMTAP_data Public data2 As IODBMTAP_data @@ -5900,28 +5939,28 @@ Public Class Focas1 End Structure ' cnc_rdtoolinfo: read tool information - _ + Public Structure ODBPTLINF Public tld_max As Short Public mlt_max As Short Public reserve As Short - _ + Public tld_size As Short() - _ + Public mlt_size As Short() - _ + Public reserves As Short() End Structure ' cnc_rdsafetyzone: read safetyzone data ' cnc_wrsafetyzone: write safetyzone data - _ + Public Structure IODBSAFE_data Public slct As Short - _ + Public data As Integer() End Structure - _ + Public Structure IODBSAFE Public data1 As IODBSAFE_data Public data2 As IODBSAFE_data @@ -5931,13 +5970,13 @@ Public Class Focas1 ' cnc_rdtoolzone: read toolzone data ' cnc_wrtoolzone: write toolzone data - _ + Public Structure IODBTLZN_data Public slct As Short - _ + Public data As Integer() End Structure - _ + Public Structure IODBTLZN Public data1 As IODBTLZN_data Public data2 As IODBTLZN_data @@ -5954,45 +5993,45 @@ Public Class Focas1 End Structure ' In case that the number of data is 12 ' cnc_rdacttlzone: read active toolzone data - _ + Public Structure ODBACTTLZN Public act_no As Short - _ + Public data As Integer() End Structure ' cnc_rdbrstrinfo:read block restart information - _ + Public Structure ODBBRS - _ + Public dest As Integer() - _ + Public dist As Integer() End Structure ' In case that the number of axes is MAX_AXIS ' cnc_rdradofs:read tool radius offset for position data - _ + Public Structure ODBROFS Public mode As Short - _ + Public pln_axes As Short() - _ + Public ofsvct As Integer() End Structure ' cnc_rdlenofs:read tool length offset for position data - _ + Public Structure ODBLOFS Public mode As Short - _ + Public ofsvct As Integer() End Structure ' In case that the number of axes is MAX_AXIS ' cnc_rdfixcycle:read fixed cycle for position data - _ + Public Structure ODBFIX Public mode As Short - _ + Public pln_axes As Short() Public drl_axes As Short Public i_pos As Integer @@ -6001,76 +6040,76 @@ Public Class Focas1 Public cmd_cnt As Integer Public act_cnt As Integer Public cut As Integer - _ + Public shift As Integer() End Structure ' cnc_rdcdrotate:read coordinate rotate for position data - _ + Public Structure ODBROT Public mode As Short - _ + Public pln_axes As Short() - _ + Public center As Integer() Public angle As Integer End Structure ' cnc_rd3dcdcnv:read 3D coordinate convert for position data - _ + Public Structure ODB3DCD Public mode As Short Public dno As Short - _ + Public cd_axes As Short() - _ + Public center As Integer() - _ + Public direct As Integer() - _ + Public angle As Integer() End Structure ' cnc_rdmirimage:read programable mirror image for position data - _ + Public Structure ODBMIR Public mode As Short Public mir_flag As Integer - _ + Public mir_pos As Integer() End Structure ' In case that the number of axes is MAX_AXIS ' cnc_rdscaling:read scaling data for position data - _ + Public Structure ODBSCL Public mode As Short - _ + Public center As Integer() - _ + Public magnif As Integer() End Structure ' In case that the number of axes is MAX_AXIS ' cnc_rd3dtofs:read 3D tool offset for position data - _ + Public Structure ODB3DTO Public mode As Short - _ + Public ofs_axes As Short() - _ + Public ofsvct As Integer() End Structure ' cnc_rdposofs:read tool position offset for position data - _ + Public Structure ODBPOFS Public mode As Short - _ + Public ofsvct As Integer() End Structure ' In case that the number of axes is MAX_AXIS ' cnc_rdhpccset:read hpcc setting data ' cnc_wrhpccset:write hpcc setting data - _ + Public Structure IODBHPST Public slct As Short Public hpcc As Short @@ -6082,13 +6121,13 @@ Public Class Focas1 Public ovr2 As Short Public ovr3 As Short Public ovr4 As Short - _ + Public reserve As Integer() End Structure ' cnc_rdhpcctupr:read hpcc tuning data ( parameter input ) ' cnc_wrhpcctupr:write hpcc tuning data ( parameter input ) - _ + Public Structure IODBHPPR_tune Public slct As Short Public diff As Short @@ -6103,10 +6142,10 @@ Public Class Focas1 Public max_cf As Integer Public min_cf As Integer Public foward As Integer - _ + Public reserve As Integer() End Structure - _ + Public Structure IODBHPPR Public tune1 As IODBHPPR_tune Public tune2 As IODBHPPR_tune @@ -6115,7 +6154,7 @@ Public Class Focas1 ' cnc_rdhpcctuac:read hpcc tuning data ( acc input ) ' cnc_wrhpcctuac:write hpcc tuning data ( acc input ) - _ + Public Structure IODBHPAC_tune Public slct As Short Public diff As Short @@ -6127,10 +6166,10 @@ Public Class Focas1 Public clamp As Integer Public c_acc As Integer Public foward As Integer - _ + Public reserve As Integer() End Structure - _ + Public Structure IODBHPAC Public tune1 As IODBHPAC_tune Public tune2 As IODBHPAC_tune @@ -6139,36 +6178,36 @@ Public Class Focas1 ' cnc_rd3dtooltip:read tip of tool for 3D handle ' cnc_rd3dmovrlap:read move overrlap of tool for 3D handle - _ + Public Structure ODB3DHDL_data - _ + Public axes As Short() - _ + Public data As Integer() End Structure - _ + Public Structure ODB3DHDL Public data1 As ODB3DHDL_data Public data2 As ODB3DHDL_data End Structure ' cnc_rd3dpulse:read pulse for 3D handle - _ + Public Structure ODB3DPLS_data Public right_angle_x As Integer Public right_angle_y As Integer - Public tool_axis As Integer - Public tool_tip_a_b As Integer - Public tool_tip_c As Integer + Public tool_axis As Integer + Public tool_tip_a_b As Integer + Public tool_tip_c As Integer End Structure - _ + Public Structure ODB3DPLS Public pls1 As ODB3DPLS_data Public pls2 As ODB3DPLS_data End Structure ' cnc_rdaxisname: read axis name - _ + Public Structure ODBAXISNAME_data Public name As Byte ' axis name Public suff As Byte ' suffix @@ -6217,7 +6256,7 @@ Public Class Focas1 Public data10 As ODBAXISNAME_data End Structure #Else - _ + Public Structure ODBAXISNAME Public data1 As ODBAXISNAME_data Public data2 As ODBAXISNAME_data @@ -6232,14 +6271,14 @@ Public Class Focas1 #End If ' cnc_rdspdlname: read spindle name - _ + Public Structure ODBSPDLNAME_data Public name As Byte ' spindle name Public suff1 As Byte ' suffix Public suff2 As Byte ' suffix Public suff3 As Byte ' suffix End Structure - _ + Public Structure ODBSPDLNAME Public data1 As ODBSPDLNAME_data Public data2 As ODBSPDLNAME_data @@ -6248,100 +6287,100 @@ Public Class Focas1 End Structure ' cnc_exaxisname: read spindle name - _ + Public Structure ODBEXAXISNAME - _ - Public axname1 As String - _ - Public axname2 As String - _ - Public axname3 As String - _ - Public axname4 As String - _ - Public axname5 As String - _ - Public axname6 As String - _ - Public axname7 As String - _ - Public axname8 As String - _ - Public axname9 As String - _ - Public axname10 As String - _ - Public axname11 As String - _ - Public axname12 As String - _ - Public axname13 As String - _ - Public axname14 As String - _ - Public axname15 As String - _ - Public axname16 As String - _ - Public axname17 As String - _ - Public axname18 As String - _ - Public axname19 As String - _ + + Public axname1 As String + + Public axname2 As String + + Public axname3 As String + + Public axname4 As String + + Public axname5 As String + + Public axname6 As String + + Public axname7 As String + + Public axname8 As String + + Public axname9 As String + + Public axname10 As String + + Public axname11 As String + + Public axname12 As String + + Public axname13 As String + + Public axname14 As String + + Public axname15 As String + + Public axname16 As String + + Public axname17 As String + + Public axname18 As String + + Public axname19 As String + Public axname20 As String - _ - Public axname21 As String - _ - Public axname22 As String - _ - Public axname23 As String - _ - Public axname24 As String - _ - Public axname25 As String - _ - Public axname26 As String - _ - Public axname27 As String - _ - Public axname28 As String - _ - Public axname29 As String - _ + + Public axname21 As String + + Public axname22 As String + + Public axname23 As String + + Public axname24 As String + + Public axname25 As String + + Public axname26 As String + + Public axname27 As String + + Public axname28 As String + + Public axname29 As String + Public axname30 As String - _ - Public axname31 As String - _ + + Public axname31 As String + Public axname32 As String End Structure ' cnc_wrunsolicprm: Set the unsolicited message parameters ' cnc_rdunsolicprm: Get the unsolicited message parameters - _ + Public Structure IODBUNSOLIC_pmc Public type As Short Public rdaddr As Short Public rdno As Short Public rdsize As Short End Structure - _ + Public Structure IODBUNSOLIC_dmy Public type As Short Public dummy1 As Integer Public dummy2 As Short End Structure - _ + Public Structure IODBUNSOLIC_rddata - _ + Public pmc As IODBUNSOLIC_pmc - _ + Public dmy As IODBUNSOLIC_dmy End Structure - _ + Public Structure IODBUNSOLIC - _ + Public ipaddr As String Public port As Short ' C# ushort Public reqaddr As Short @@ -6356,19 +6395,19 @@ Public Class Focas1 End Structure ' cnc_rdunsolicmsg: Reads the unsolicited message data - _ + Public Structure IDBUNSOLICMSG_msg Public rdsize As Short - _ + Public data As Object End Structure - _ + Public Structure IDBUNSOLICMSG1 Public msg1 As IDBUNSOLICMSG_msg Public msg2 As IDBUNSOLICMSG_msg Public msg3 As IDBUNSOLICMSG_msg End Structure - _ + Public Structure IDBUNSOLICMSG Public getno As Short Public msg As IDBUNSOLICMSG1 @@ -6377,105 +6416,105 @@ Public Class Focas1 ' cnc_rdpm_cncitem: read cnc maintenance item ' cnc_rdpm_mcnitem: read machine specific maintenance item ' cnc_wrpm_mcnitem: write machine specific maintenance item - _ + Public Structure IODBITEM - _ - Public name1 As String - _ - Public name2 As String - _ - Public name3 As String - _ - Public name4 As String - _ - Public name5 As String - _ - Public name6 As String - _ - Public name7 As String - _ - Public name8 As String - _ - Public name9 As String - _ + + Public name1 As String + + Public name2 As String + + Public name3 As String + + Public name4 As String + + Public name5 As String + + Public name6 As String + + Public name7 As String + + Public name8 As String + + Public name9 As String + Public name10 As String End Structure ' cnc_rdpm_item:read maintenance item status - _ + Public Structure IODBPMAINTE_data - _ - Public name As String ' name - Public type As Integer ' life count type - Public total As Integer ' total life time (minite basis) - Public remain As Integer ' life rest time - Public stat As Integer ' life state + + Public name As String ' name + Public type As Integer ' life count type + Public total As Integer ' total life time (minite basis) + Public remain As Integer ' life rest time + Public stat As Integer ' life state End Structure - _ + Public Structure IODBPMAINTE - Public data1 As IODBPMAINTE_data - Public data2 As IODBPMAINTE_data - Public data3 As IODBPMAINTE_data - Public data4 As IODBPMAINTE_data - Public data5 As IODBPMAINTE_data - Public data6 As IODBPMAINTE_data - Public data7 As IODBPMAINTE_data - Public data8 As IODBPMAINTE_data - Public data9 As IODBPMAINTE_data + Public data1 As IODBPMAINTE_data + Public data2 As IODBPMAINTE_data + Public data3 As IODBPMAINTE_data + Public data4 As IODBPMAINTE_data + Public data5 As IODBPMAINTE_data + Public data6 As IODBPMAINTE_data + Public data7 As IODBPMAINTE_data + Public data8 As IODBPMAINTE_data + Public data9 As IODBPMAINTE_data Public data10 As IODBPMAINTE_data End Structure ' cnc_sysinfo_ex:read CNC system path information - _ + Public Structure ODBSYSEX_path - Public system As Short - Public group As Short - Public attrib As Short + Public system As Short + Public group As Short + Public attrib As Short Public ctrl_axis As Short Public ctrl_srvo As Short Public ctrl_spdl As Short - Public mchn_no As Short - Public reserved As Short + Public mchn_no As Short + Public reserved As Short End Structure - _ + Public Structure ODBSYSEX_data - Public data1 As ODBSYSEX_path - Public data2 As ODBSYSEX_path - Public data3 As ODBSYSEX_path - Public data4 As ODBSYSEX_path - Public data5 As ODBSYSEX_path - Public data6 As ODBSYSEX_path - Public data7 As ODBSYSEX_path - Public data8 As ODBSYSEX_path - Public data9 As ODBSYSEX_path + Public data1 As ODBSYSEX_path + Public data2 As ODBSYSEX_path + Public data3 As ODBSYSEX_path + Public data4 As ODBSYSEX_path + Public data5 As ODBSYSEX_path + Public data6 As ODBSYSEX_path + Public data7 As ODBSYSEX_path + Public data8 As ODBSYSEX_path + Public data9 As ODBSYSEX_path Public data10 As ODBSYSEX_path End Structure - _ + Public Structure ODBSYSEX - Public max_axis As Short - Public max_spdl As Short - Public max_path As Short - Public max_mchn As Short + Public max_axis As Short + Public max_spdl As Short + Public max_path As Short + Public max_mchn As Short Public ctrl_axis As Short Public ctrl_srvo As Short Public ctrl_spdl As Short Public ctrl_path As Short Public ctrl_mchn As Short - _ + Public reserved As Short() Public path As ODBSYSEX_data End Structure -'------------------ -' CNC : SERCOS I/F -'------------------ + '------------------ + ' CNC : SERCOS I/F + '------------------ ' cnc_srcsrdidinfo:Read ID information of SERCOS I/F ' cnc_srcswridinfo:Write ID information of SERCOS I/F - _ + Public Structure IODBIDINF Public id_no As Integer Public drv_no As Short @@ -6489,19 +6528,19 @@ Public Class Focas1 Public err_max_val As Short Public id_name_len As Short Public id_name_max As Short - _ + Public id_name As String Public attr As Integer Public unit_len As Short Public unit_max As Short - _ + Public unit As Byte() Public min_val As Integer Public max_val As Integer End Structure ' cnc_srcsrdexstat:Get execution status of reading/writing operation data of SERCOS I/F - _ + Public Structure ODBSRCSST Public acc_element As Short Public err_general As Short @@ -6511,21 +6550,21 @@ Public Class Focas1 End Structure ' cnc_srcsrdlayout:Read drive assign of SERCOS I/F - _ + Public Structure ODBSRCSLYT - _ + Public spndl As Short() - _ + Public servo As Short() - _ + Public axis_name As String End Structure -'---------------------------- -' CNC : Servo Guide -'---------------------------- + '---------------------------- + ' CNC : Servo Guide + '---------------------------- ' cnc_sdsetchnl:Servo Guide (Channel data set) - _ + Public Structure IDBCHAN_data Public chno As Byte Public axis As SByte @@ -6533,7 +6572,7 @@ Public Class Focas1 Public datainf As Short ' C# ushort Public dataadr As Short End Structure - _ + Public Structure IDBCHAN Public data1 As IDBCHAN_data Public data2 As IDBCHAN_data @@ -6547,14 +6586,14 @@ Public Class Focas1 ' cnc_sdsetchnl:Servo Guide (read Sampling data) ' cnc_sfbreadsmpl:Servo feedback data (read Sampling data) - _ + Public Structure ODBSD Public chadata As IntPtr Public count As IntPtr End Structure ' cnc_sfbsetchnl:Servo feedback data (Channel data set) - _ + Public Structure IDBSFBCHAN Public chno As Byte Public axis As SByte @@ -6562,28 +6601,28 @@ Public Class Focas1 End Structure -'------------------------- -' CNC : FS18-LN function -'------------------------- + '------------------------- + ' CNC : FS18-LN function + '------------------------- ' cnc_allowcnd:read allowanced state - _ + Public Structure ODBCAXIS Public dummy As Short ' dummy Public type As Short ' axis number - _ + Public data As SByte() ' data value End Structure -'--------------------------------- -' CNC : C-EXE SRAM file function -'--------------------------------- + '--------------------------------- + ' CNC : C-EXE SRAM file function + '--------------------------------- ' read C-EXE SRAM disk directory - _ + Public Structure CFILEINFO_data - _ + Public fname As String ' file name Public file_size As Integer ' file size (bytes) Public file_attr As Integer ' attribute @@ -6594,7 +6633,7 @@ Public Class Focas1 Public minute As Short ' mimute Public second As Short ' second End Structure - _ + Public Structure CFILEINFO Public data1 As CFILEINFO_data Public data2 As CFILEINFO_data @@ -6608,64 +6647,64 @@ Public Class Focas1 Public data10 As CFILEINFO_data End Structure -'----- -' PMC -'----- + '----- + ' PMC + '----- ' pmc_rdpmcrng:read PMC data(area specified) ' pmc_wrpmcrng:write PMC data(area specified) - _ + Public Structure IODBPMC0 - _ + Public type_a As Short ' PMC address type - _ + Public type_d As Short ' PMC data type - _ + Public datano_s As Short ' start PMC address - _ + Public datano_e As Short ' end PMC address - _ + Public cdata As Byte() ' PMC data End Structure ' In case that the number of data is 8 - _ + Public Structure IODBPMC1 - _ + Public type_a As Short ' PMC address type - _ + Public type_d As Short ' PMC data type - _ + Public datano_s As Short ' start PMC address - _ + Public datano_e As Short ' end PMC address - _ + Public idata As UShort() End Structure ' In case that the number of data is 8 - _ + Public Structure IODBPMC2 - _ + Public type_a As Short ' PMC address type - _ + Public type_d As Short ' PMC data type - _ + Public datano_s As Short ' start PMC address - _ + Public datano_e As Short ' end PMC address - _ + Public ldata As UInteger() End Structure ' In case that the number of data is 8 ' pmc_rdpmcinfo:read informations of PMC data - _ + Public Structure ODBPMCINF_info Public pmc_adr As Char Public adr_attr As Byte Public top_num As Short ' C# ushort Public last_num As Short ' C# ushort End Structure - _ + Public Structure ODBPMCINF1 Public info1 As ODBPMCINF_info Public info2 As ODBPMCINF_info @@ -6732,7 +6771,7 @@ Public Class Focas1 Public info63 As ODBPMCINF_info Public info64 As ODBPMCINF_info End Structure - _ + Public Structure ODBPMCINF Public datano As Short Public info As ODBPMCINF1 @@ -6740,7 +6779,7 @@ Public Class Focas1 ' pmc_rdcntldata:read PMC parameter data table control data ' pmc_wrcntldata:write PMC parameter data table control data - _ + Public Structure IODBPMCCNTL_info Public tbl_prm As Byte Public data_type As Byte @@ -6748,7 +6787,7 @@ Public Class Focas1 Public data_dsp As Short ' C# ushort Public dummy As Short End Structure - _ + Public Structure IODBPMCCNTL1 Public info1 As IODBPMCCNTL_info Public info2 As IODBPMCCNTL_info @@ -6851,7 +6890,7 @@ Public Class Focas1 Public info99 As IODBPMCCNTL_info Public info100 As IODBPMCCNTL_info End Structure - _ + Public Structure IODBPMCCNTL Public datano_s As Short Public dummy As Short @@ -6860,12 +6899,12 @@ Public Class Focas1 End Structure ' pmc_rdalmmsg:read PMC alarm message - _ + Public Structure ODBPMCALM_data - _ + Public almmsg As String ' alarm message End Structure - _ + Public Structure ODBPMCALM Public msg1 As ODBPMCALM_data Public msg2 As ODBPMCALM_data @@ -6880,39 +6919,39 @@ Public Class Focas1 End Structure ' In case that the number of data is 10 ' pmc_getdtailerr:get detail error for pmc - _ + Public Structure ODBPMCERR Public err_no As Short Public err_dtno As Short End Structure ' pmc_rdpmctitle:read pmc title data - _ + Public Structure ODBPMCTITLE - _ + Public mtb As String - _ + Public machine As String - _ + Public type As String - _ + Public prgno As String - _ + Public prgvers As String - _ + Public prgdraw As String - _ + Public date1 As String - _ + Public design As String - _ + Public written As String - _ + Public remarks As String End Structure ' pmc_rdpmcrng_ext:read PMC data - _ + Public Structure IODBPMCEXT Public type_a As Short ' PMC address type Public type_d As Short ' PMC data type @@ -6920,12 +6959,12 @@ Public Class Focas1 Public datano_e As Short ' end PMC address Public err_code As Short ' error code Public reserved As Short ' reserved - _ + Public data As Object ' pointer to buffer End Structure ' pmc_rdpmcaddr:read PMC address information - _ + Public Structure ODBPMCADR_info Public pmc_adr As Byte Public adr_attr As Byte @@ -6933,7 +6972,7 @@ Public Class Focas1 Public top As Short ' C# ushort Public num As Short ' C# ushort End Structure - _ + Public Structure ODBPMCADR1 Public info1 As ODBPMCADR_info Public info2 As ODBPMCADR_info @@ -7000,7 +7039,7 @@ Public Class Focas1 Public info63 As ODBPMCADR_info Public info64 As ODBPMCADR_info End Structure - _ + Public Structure ODBPMCADR Public io_adr As Integer ' C# uint Public datano As Short @@ -7008,30 +7047,30 @@ Public Class Focas1 End Structure -'-------------------------- -' PROFIBUS function -'-------------------------- + '-------------------------- + ' PROFIBUS function + '-------------------------- ' pmc_prfrdconfig:read PROFIBUS configration data - _ + Public Structure ODBPRFCNF - _ + Public master_ser As String - _ + Public master_ver As String - _ + Public slave_ser As String - _ + Public slave_ver As String - _ + Public cntl_ser As String - _ + Public cntl_ver As String End Structure ' pmc_prfrdbusprm:read bus parameter for master function ' pmc_prfwrbusprm:write bus parameter for master function - _ + Public Structure IODBBUSPRM Public fdl_add As SByte Public baudrate As SByte @@ -7048,26 +7087,26 @@ Public Class Focas1 Public min_slv_int As Short ' C# ushort Public poll_tout As Short ' C# ushort Public data_cntl As Short ' C# ushort - _ + Public reserve1 As Byte() - _ + Public cls2_name As Byte() Public user_dlen As Short - _ + Public user_data As Byte() - _ + Public reserve2 As Byte() End Structure ' pmc_prfrdslvprm:read slave parameter for master function ' pmc_prfwrslvprm:write slave parameter for master function - _ + Public Structure IODBSLVPRM Public dis_enb As Short Public ident_no As Short ' C# ushort Public slv_flag As Byte Public slv_type As Byte - _ + Public reserve1 As Byte() Public slv_stat As Byte Public wd_fact1 As Byte @@ -7076,25 +7115,25 @@ Public Class Focas1 Public reserve2 As Char Public grp_ident As Byte Public user_plen As Short - _ + Public user_pdata As Byte() Public cnfg_dlen As Short - _ + Public cnfg_data As Byte() Public slv_ulen As Short - _ + Public slv_udata As Byte() - _ + Public reserve3 As Byte() End Structure - _ + Public Structure IODBSLVPRM2 Public dis_enb As Short Public ident_no As Short ' C# ushort Public slv_flag As Byte Public slv_type As Byte - _ + Public reserve1 As Byte() Public slv_stat As Byte Public wd_fact1 As Byte @@ -7103,21 +7142,21 @@ Public Class Focas1 Public reserve2 As SByte Public grp_ident As Byte Public user_plen As Short - _ + Public user_pdata As Byte() Public cnfg_dlen As Short - _ + Public cnfg_data As Byte() Public slv_ulen As Short - _ + Public slv_udata As Byte() - _ + Public reserve3 As Byte() End Structure ' pmc_prfrdallcadr:read allocation address for master function ' pmc_prfwrallcadr:set allocation address for master function - _ + Public Structure IODBPRFADR Public di_size As Byte Public di_type As Byte @@ -7134,7 +7173,7 @@ Public Class Focas1 ' pmc_prfrdslvaddr:read allocation address for slave function ' pmc_prfwrslvaddr:set allocation address for slave function - _ + Public Structure IODBSLVADR Public slave_no As Byte Public di_size As Byte @@ -7143,26 +7182,26 @@ Public Class Focas1 Public do_size As Byte Public do_type As Byte Public do_addr As Short ' C# ushort - _ + Public reserve As Byte() End Structure ' pmc_prfrdslvstat:read status for slave function - _ + Public Structure ODBSLVST Public cnfg_stat As Byte - Public prm_stat As Byte - Public wdg_stat As SByte + Public prm_stat As Byte + Public wdg_stat As SByte Public live_stat As Byte - Public ident_no As Short + Public ident_no As Short End Structure ' pmc_prfwrslvid:Writes slave index data of master function - _ + Public Structure IODBSLVID - Public dis_enb As Short + Public dis_enb As Short Public slave_no As Short - Public nsl As Short + Public nsl As Short Public dgn_size As Byte Public dgn_type As Char Public dgn_addr As Short @@ -7170,12 +7209,12 @@ Public Class Focas1 ' pmc_prfrdslvprm2:Reads slave parameter of master function(2) ' pmc_prfwrslvprm2:Writes slave parameter of master function(2) - _ + Public Structure IODBSLVPRM3 Public ident_no As Short Public slv_flag As Byte Public slv_type As Byte - _ + Public reserve1 As Byte() Public slv_stat As Byte Public wd_fact1 As Byte @@ -7184,16 +7223,16 @@ Public Class Focas1 Public reserve2 As Char Public grp_ident As Byte Public user_plen As Short - _ + Public user_pdata As Byte() Public slv_ulen As Short - _ + Public slv_udata As Byte() End Structure ' pmc_prfrddido:Reads DI/DO parameter of master function ' pmc_prfwrdido:Writes DI/DO parameter of master function - _ + Public Structure IODBDIDO Public slave_no As Short Public slot_no As Short @@ -7205,13 +7244,13 @@ Public Class Focas1 Public do_addr As Short Public shift As Short Public module_dlen As Byte - _ + Public module_data As Byte() End Structure ' pmc_prfrdindiadr:Reads indication address of master function ' pmc_prfwrindiadr:Writes indication address of master function - _ + Public Structure IODBINDEADR Public dummy As Byte Public indi_type As Char @@ -7219,48 +7258,48 @@ Public Class Focas1 Public indi_addr As Short End Structure -'----------------------------------------------- -' DS : Data server & Ethernet board function -'----------------------------------------------- + '----------------------------------------------- + ' DS : Data server & Ethernet board function + '----------------------------------------------- ' etb_rdparam : read@the parameter of the Ethernet board ' etb_wrparam : write the parameter of the Ethernet board - _ + Public Structure TCPPRM - _ + Public OwnIPAddress As String - _ + Public SubNetMask As String - _ + Public RouterIPAddress As String End Structure - _ + Public Structure HOSTPRM Public DataServerPort As Short - _ + Public DataServerIPAddress As String - _ + Public DataServerUserName As String - _ + Public DataServerPassword As String - _ + Public DataServerLoginDirectory As String End Structure - _ + Public Structure FTPPRM - _ + Public FTPServerUserName As String - _ + Public FTPServerPassword As String - _ + Public FTPServerLoginDirectory As String End Structure - _ + Public Structure ETBPRM - _ + Public OwnMACAddress As String Public MaximumChannel As Short Public HDDExistence As Short @@ -7268,61 +7307,61 @@ Public Class Focas1 End Structure - _ + Public Structure IODBETP_TCP Public ParameterType As Short Public tcp As TCPPRM End Structure - _ + Public Structure IODBETP_HOST Public ParameterType As Short Public host As HOSTPRM End Structure - _ + Public Structure IODBETP_FTP Public ParameterType As Short Public ftp As FTPPRM End Structure - _ + Public Structure IODBETP_ETB Public ParameterType As Short Public etb As ETBPRM End Structure - _ + Public Structure ODBETMSG - _ + Public title As String - _ + Public message As String End Structure ' ds_rdhddinfo : read information of the Data Server's HDD - _ + Public Structure ODBHDDINF Public file_num As Integer Public remainder_l As Integer Public remainder_h As Integer - _ + Public current_dir As Byte() End Structure - _ + Public Structure ODBHDDDIR_data - _ + Public file_name As String - _ + Public comment As String Public attribute As Short Public reserved As Short Public size As Integer - _ + Public dates As String End Structure - _ + Public Structure ODBHDDDIR Public data1 As ODBHDDDIR_data Public data2 As ODBHDDDIR_data @@ -7359,13 +7398,13 @@ Public Class Focas1 End Structure ' ds_rdhostdir : read the file list of the host - _ + Public Structure ODBHOSTDIR_data - _ + Public host_file As String 'Public host_file As Char() End Structure - _ + Public Structure ODBHOSTDIR Public data1 As ODBHOSTDIR_data Public data2 As ODBHOSTDIR_data @@ -7402,7 +7441,7 @@ Public Class Focas1 End Structure ' ds_rdmntinfo : read maintenance information - _ + Public Structure DSMNTINFO Public empty_cnt As Short Public total_size As Integer @@ -7411,25 +7450,25 @@ Public Class Focas1 End Structure -'-------------------------- -' HSSB multiple connection -'-------------------------- + '-------------------------- + ' HSSB multiple connection + '-------------------------- ' cnc_rdnodeinfo:read node informations - _ + Public Structure ODBNODE Public node_no As Integer Public io_base As Integer Public status As Integer Public cnc_type As Integer - _ + Public node_name As String End Structure -'------------------------------------- -' CNC: Control axis / spindle related -'------------------------------------- + '------------------------------------- + ' CNC: Control axis / spindle related + '------------------------------------- ' read actual axis feedrate(F) Declare Function cnc_actf Lib "FWLIB32.DLL" _ @@ -7492,31 +7531,31 @@ Public Class Focas1 ' set origin / preset relative axis position Declare Function cnc_wrrelpos Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IDBWRR ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IDBWRR) As Short ' preset work coordinate Declare Function cnc_prstwkcd Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IDBWRA ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IDBWRA) As Short ' read manual overlapped motion value Declare Function cnc_rdmovrlap Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBOVL ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBOVL) As Short ' cancel manual overlapped motion value Declare Function cnc_canmovrlap Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' read load information of serial spindle Declare Function cnc_rdspload Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBSPN ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBSPN) As Short ' read maximum r.p.m. ratio of serial spindle Declare Function cnc_rdspmaxrpm Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBSPN ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBSPN) As Short ' read gear ratio of serial spindle Declare Function cnc_rdspgear Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBSPN ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBSPN) As Short ' read absolute axis position 2 Declare Function cnc_absolute2 Lib "FWLIB32.DLL" _ @@ -7528,11 +7567,11 @@ Public Class Focas1 ' set wire vertival position Declare Function cnc_setvrtclpos Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' set wire threading position Declare Function cnc_setthrdngpos Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' read tool position Declare Function cnc_rdposition Lib "FWLIB32.DLL" _ @@ -7540,47 +7579,47 @@ Public Class Focas1 ' read current speed Declare Function cnc_rdspeed Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBSPEED ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBSPEED) As Short ' read servo load meter Declare Function cnc_rdsvmeter Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As ODBSVLOAD ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As ODBSVLOAD) As Short ' read spindle load meter Declare Function cnc_rdspmeter Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBSPLOAD ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBSPLOAD) As Short ' read handle interruption Declare Function cnc_rdhndintrpt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBHND ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBHND) As Short ' read manual feed for 5-axis machining Declare Function cnc_rd5axmandt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODB5AXMAN ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODB5AXMAN) As Short ' read amount of machine axes movement of manual feed for 5-axis machining Declare Function cnc_rd5axovrlap Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAXIS ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAXIS) As Short ' clear pulse values of manual feed for 5-axis machining Declare Function cnc_clr5axpls Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' read constant surface speed Declare Function cnc_rdspcss Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBCSS ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBCSS) As Short ' read execution program pointer Declare Function cnc_rdexecpt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As PRGPNT, ByRef b As PRGPNT ) As Short + (ByVal FlibHndl As Integer, ByRef a As PRGPNT, ByRef b As PRGPNT) As Short ' read various axis data Declare Function cnc_rdaxisdata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b() As Short, ByVal c As Short, ByRef d As Short, ByRef c As ODBAXDT ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b() As Short, ByVal c As Short, ByRef d As Short, ByRef c As ODBAXDT) As Short -'---------------------- -' CNC: Program related -'---------------------- + '---------------------- + ' CNC: Program related + '---------------------- ' start downloading NC program Declare Function cnc_dwnstart Lib "FWLIB32.DLL" _ @@ -7608,7 +7647,7 @@ Public Class Focas1 ' start downloading NC program 3 special Declare Function cnc_dwnstart3_f Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String, ByVal c As String) As Short ' download NC program 3 @@ -7654,7 +7693,7 @@ Public Class Focas1 ' verify NC program Declare Function cnc_verify4 Lib "FWLIB32.DLL" _ (ByVal FlibHndl As Integer, ByRef a As Integer, <[In], Out> ByVal a() As Char) As Short - + ' end of verification Declare Function cnc_vrfend4 Lib "FWLIB32.DLL" _ (ByVal FlibHndl As Integer) As Short @@ -7673,7 +7712,7 @@ Public Class Focas1 ' end of downloading DNC program Declare Function cnc_dncend Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' start downloading DNC program 2 Declare Function cnc_dncstart2 Lib "FWLIB32.DLL" _ @@ -7685,16 +7724,16 @@ Public Class Focas1 ' end of downloading DNC program 2 Declare Function cnc_dncend2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' read the diagnosis data of DNC operation Declare Function cnc_rddncdgndt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBDNCDGN ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBDNCDGN) As Short ' start uploading NC program #If ONO8D = Nothing Then Declare Function cnc_upstart Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short #Else Declare Function cnc_upstart Lib "FWLIB32.DLL" Alias "cnc_upstarto8" _ ( ByVal FlibHndl As Integer, ByVal a As Integer ) As Short @@ -7710,15 +7749,15 @@ Public Class Focas1 ' end of uploading NC program Declare Function cnc_upend Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' start uploading NC program 3 Declare Function cnc_upstart3 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByVal c As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByVal c As Integer) As Short ' start uploading NC program special 3 Declare Function cnc_upstart3_f Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String, ByVal c As String) As Short ' upload NC program 3 @@ -7727,28 +7766,28 @@ Public Class Focas1 ' end of uploading NC program 3 Declare Function cnc_upend3 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' start uploading NC program 4 Declare Function cnc_upstart4 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String) As Short ' upload NC program 4 Declare Function cnc_upload4 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer, <[In], Out> ByVal b() As Char) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer, <[In], Out> ByVal b() As Char) As Short ' end of uploading NC program 4 Declare Function cnc_upend4 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' read buffer status for downloading/verification NC program Declare Function cnc_buff Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBBUF ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBBUF) As Short ' search specified program #If ONO8D = Nothing Then Declare Function cnc_search Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short #Else Declare Function cnc_search Lib "FWLIB32.DLL" Alias "cnc_searcho8" _ ( ByVal FlibHndl As Integer, ByVal a As Integer ) As Short @@ -7756,16 +7795,16 @@ Public Class Focas1 ' search specified program Declare Function cnc_search2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer) As Short ' delete all programs Declare Function cnc_delall Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' delete specified program #If ONO8D = Nothing Then Declare Function cnc_delete Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short #Else Declare Function cnc_delete Lib "FWLIB32.DLL" Alias "cnc_deleteo8" _ ( ByVal FlibHndl As Integer, ByVal a As Integer ) As Short @@ -7773,9 +7812,9 @@ Public Class Focas1 ' delete program (area specified) Declare Function cnc_delrange Lib "FWLIB32.DLL" Alias "cnc_delrange" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer , ByVal b As Integer) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer) As Short -' read program directory + ' read program directory #If ONO8D = Nothing Then Declare Function cnc_rdprogdir Lib "FWLIB32.DLL" _ (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Integer, ByRef e As PRGDIR) As Short @@ -7786,14 +7825,14 @@ Public Class Focas1 ' read program information Declare Function cnc_rdproginfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBNC_1) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBNC_1) As Short Declare Function cnc_rdproginfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBNC_2) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBNC_2) As Short ' read program number under execution #If ONO8D = Nothing Then Declare Function cnc_rdprgnum Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBPRO ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBPRO) As Short #Else Declare Function cnc_rdprgnum Lib "FWLIB32.DLL" Alias "cnc_rdprgnumo8" _ ( ByVal FlibHndl As Integer, ByRef a As ODBPRO ) As Short @@ -7801,31 +7840,34 @@ Public Class Focas1 ' read program name under execution Declare Function cnc_exeprgname Lib "FWLIB32.DLL" Alias "cnc_exeprgname" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBEXEPRG ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBEXEPRG) As Short ' read sequence number under execution Declare Function cnc_rdseqnum Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBSEQ ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBSEQ) As Short ' search specified sequence number Declare Function cnc_seqsrch Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer) As Short ' search specified sequence number (2) Declare Function cnc_seqsrch2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer) As Short ' rewind cursor of NC program Declare Function cnc_rewind Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' read block counter Declare Function cnc_rdblkcount Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer) As Short + '' read program under execution + 'Declare Function cnc_rdexecprog Lib "FWLIB32.DLL" _ + ' (ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Short, <[In], Out> ByVal c() As Char) As Short ' read program under execution Declare Function cnc_rdexecprog Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Short, <[In], Out> ByVal c() As Char) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Integer, <[In](), Out()> ByVal c() As Char) As Short ' read program for MDI operation Declare Function cnc_rdmdiprog Lib "FWLIB32.DLL" _ diff --git a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs index 4be4613..28263c7 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs @@ -1614,6 +1614,38 @@ namespace MTC_Adapter valPos = posAssi.p8; valLoad = loadAssi.svload8; break; + case 8: + valPos = posAssi.p9; + valLoad = loadAssi.svload8; + break; + case 9: + valPos = posAssi.p10; + valLoad = loadAssi.svload8; + break; + case 10: + valPos = posAssi.p11; + valLoad = loadAssi.svload8; + break; + case 11: + valPos = posAssi.p12; + valLoad = loadAssi.svload8; + break; + case 12: + valPos = posAssi.p13; + valLoad = loadAssi.svload8; + break; + case 13: + valPos = posAssi.p14; + valLoad = loadAssi.svload8; + break; + case 14: + valPos = posAssi.p15; + valLoad = loadAssi.svload8; + break; + case 15: + valPos = posAssi.p16; + valLoad = loadAssi.svload8; + break; default: // 2017.03.01 suggerimento Fabio: in CMS_FANUC in advanced compiler options mettere FS30D=1,SIEMENS=1 x leggere + assi?!? valPos = posAssi.p1; diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map index 9c35e40..6698345 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map @@ -1,276 +1,1025 @@ -1|PLC|FAULT|[1] MANDRINO 1 NON BLOCCATO -2|PLC|FAULT|[2] MANDRINO 2 NON BLOCCATO -3|PLC|FAULT|[3] MANDRINO SUPPLEMENTARE NON BLOCCATO -4|PLC|FAULT|[4] ZONA DI COLLISIONE CON CAMBIO UTENSILE ESTERNO -5|PLC|FAULT|[5] ZONA DI COLLISIONE CON CAMBIO UTENSILE LINEARE -6|PLC|FAULT|[6] GRUPPO ASSI NON VALIDO -7|PLC|FAULT|[7] INVERTER 1 NON OK -8|PLC|FAULT|[8] INVERTER 2 NON OK -9|PLC|FAULT|[9] INVERTER MANDRINO SUPPLEMENTARE NON OK -10|PLC|FAULT|[10] SAVE ENERGY ATTIVO -11|PLC|FAULT|[11] [WD]SUPERATO NUMERO PEZZI MASSIMO CARICABILE SU TRANSFER -12|PLC|FAULT|[12] VERIFICA CONTATTORI NON OK -13|PLC|FAULT|[13] TIMEOUT COMUNICAZIONE XILOG -14|PLC|WARNING|[14] INTERVENTO MAGNETOTERMICI -15|PLC|FAULT|[15] PORTE PROTEZIONE APERTE -16|PLC|FAULT|[16] TAPPETO CONVOGLIA TRUCIOLI NON IN POSIZIONE -17|PLC|FAULT|[17] COLLISIONE RILEVATA DAL SIMULATORE -18|PLC|FAULT|[18] -19|PLC|FAULT|[19] FORATRICE NON IN POSIZIONE -20|PLC|WARNING|[20] STOP MACCHINA DA CODICI M SUPPLEMENTARI -21|PLC|WARNING|[21] M00 ATTIVO: START CICLO -22|PLC|WARNING|[22] BATTERIA SCARICA ENCODER ASSI YASKAWA -23|PLC|FAULT|[23] AZIONAMENTI ASSI XYZ... NON OK -24|PLC|FAULT|[24] AZIONAMENTI ASSI ROTATIVI NON OK -25|PLC|FAULT|[25] CNC NON OK -26|PLC|FAULT|[26] PRESSOSTATO ARIA INTERVENUTO -27|PLC|FAULT|[27] BATTERIA CNC NON CARICA -28|PLC|FAULT|[28] ERRORE CANOPEN RING 0 -29|PLC|FAULT|[29] ERRORE CANOPEN RING 1 -30|PLC|WARNING|[30] ABILITAZIONE BL/SBL UTENSILE MANDRINO 1 -31|PLC|WARNING|[31] ABILITAZIONE BL/SBL UTENSILE MANDRINO 2 -32|PLC|WARNING|[32] ABILITAZIONE BL/SBL UTENSILE MANDRINO SUPPLEMENTARE -33|PLC|FAULT|[33] CICLO ETICHETTATURA IN CORSO -34|PLC|FAULT|[34] ETICHETTATRICE NON PRONTA -35|PLC|FAULT|[35] ETICHETTATRICE NON IN POSIZIONE -36|PLC|FAULT|[36] ERRORE ETICHETTATRICE -37|PLC|FAULT|[37] SONDA TERMICA/VENTOLA MANDRINO 1 -38|PLC|FAULT|[38] SONDA TERMICA/VENTOLA MANDRINO 2 -39|PLC|FAULT|[39] SONDA TERMICA/VENTOLA MANDRINO SUPPLEMENTARE -40|PLC|FAULT|[40] INTERVENTO MAGNETOTERMICO GRUPPO LAMA -41|PLC|FAULT|[41] RICARICARE POMPA LUBRIFICAZIONE -42|PLC|FAULT|[42] LUBRIFICAZIONE ASSI NON OK -43|PLC|WARNING|[43] LUBRIFICAZIONE ASSI IN CORSO -44|PLC|WARNING|[44] RICHIESTA VUOTO/ATTREZZATURA -45|PLC|FAULT|[45] EMERGENZA CAUSA VUOTO ZONA 1 -46|PLC|FAULT|[46] EMERGENZA CAUSA VUOTO ZONA 2 -47|PLC|FAULT|[47] ASSI IN FINE CORSA -48|PLC|FAULT|[48] CUFFIA ESTERNA NON IN POSIZIONE -49|PLC|FAULT|[49] CUFFIA INTERNA NON IN POSIZIONE -50|PLC|FAULT|[50] CUFFIA PULIZIA PIANO NON IN POSIZIONE -51|PLC|FAULT|[51] EMERGENZA CAUSA VUOTO ZONA 3 -52|PLC|FAULT|[52] EMERGENZA CAUSA VUOTO ZONA 4 -53|PLC|WARNING|[53] ESEGUIRE RIFERIMENTO ASSI -54|PLC|FAULT|[54] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE 1 -55|PLC|FAULT|[55] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE 2 -56|PLC|FAULT|[56] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE MANDRINO SUPPLEMENTARE -57|PLC|FAULT|[57] ESEGUIRE RIFERIMENTO MAGAZZINO ESTERNO 1 -58|PLC|FAULT|[58] ESEGUIRE RIFERIMENTO NAVETTA HS -59|PLC|FAULT|[59] ESEGUIRE RIFERIMENTO PINZE ROBOT CELLA WD -60|PLC|FAULT|[60] CONVOGLIATORE TRUCIOLI NON OK -61|PLC|WARNING|[61] SERBATOIO LUBRIFICAZIONE CONVOGLIATORE TRUCIOLI VUOTO -62|PLC|FAULT|[62] ASSE X IN FINE CORSA -63|PLC|FAULT|[63] ASSE Y IN FINE CORSA -64|PLC|FAULT|[64] ASSE Z IN FINE CORSA -65|PLC|FAULT|[65] PALPATORE SYNCRO NON IN POSIZIONE -66|PLC|WARNING|[66] ALLINEAMENTO ASSI GANTRY IN CORSO -67|PLC|FAULT|[67] ASSE B IN FINE CORSA -68|PLC|FAULT|[68] ASSE C IN FINE CORSA -69|PLC|FAULT|[69] ASSE Y NON IN POSIZIONE -70|PLC|FAULT|[70] ESEGUIRE RIFERIMENTO PALPATORE SYNCRO -71|PLC|FAULT|[71] PERNO BLOCCAGGIO TAVOLO ELEVATORE NON IN POSIZIONE -72|PLC|FAULT|[72] FOTOCELLULA PRESENZA UTENSILE -73|PLC|FAULT|[73] MANDRINO 1 NON OK -74|PLC|FAULT|[74] MANDRINO 2 NON OK -75|PLC|FAULT|[75] MANDRINO SUPPLEMENTARE NON OK -76|PLC|FAULT|[76] FOTOCELLULA PRESENZA UTENSILE (CATENA) -77|PLC|FAULT|[77] ALLARME SENSORE ROTAZIONE MANDRINO 1 -78|PLC|FAULT|[78] ALLARME SENSORE ROTAZIONE MANDRINO 2 -79|PLC|FAULT|[79] ALLARME SENSORE ROTAZIONE MANDRINO SUPPLEMENTARE -80|PLC|FAULT|[80] CAMBIO UTENSILE TESTA 1(ONBOARD) NON IN POSIZIONE -81|PLC|FAULT|[81] CAMBIO UTENSILE MANDRINO SUPPLEMENTARE (ONBOARD) NON IN POSIZIONE -82|PLC|FAULT|[82] CAMBIO UTENSILE LINEARE NON IN POSIZIONE -83|PLC|FAULT|[83] CAMBIO UTENSILE HS NON IN POSIZIONE -84|PLC|FAULT|[84] [TM] NAVETTA TOOL MANAGEMENT NON IN POSIZIONE -85|PLC|FAULT|[85] [TM] LETTORE CHIP TOOL MANAGMENT NON IN POSIZIONE -86|PLC|FAULT|[86] [TM] LIBERARE PINZA DI CARICO TOOL MANAGMENT -87|PLC|FAULT|[87] [TM] COLLISIONE CON TOOL MANAGMENT -88|PLC|FAULT|[88] [TM] CARICARE UTENSILE SULLA PINZA DI CARICO DEL TOOL MANAGMENT -89|PLC|FAULT|[89] BANDELLA NON IN POSIZIONE -90|PLC|FAULT|[90] PANNELLO PRELEVATO FUORI ALLINEAMENTO -91|PLC|FAULT|[91] SCARICATORE NON IN POSIZIONE -92|PLC|FAULT|[92] SPONDE/BATTUTE DI SCARICO NON IN POSIZIONE -93|PLC|FAULT|[93] ZONA DI SCARICO OCCUPATA -94|PLC|FAULT|[94] VERIFICARE DIMENSIONI PILA -95|PLC|FAULT|[95] CARICARE NUOVA PILA -96|PLC|FAULT|[96] CARICATORE NON IN POSIZIONE -97|PLC|FAULT|[97] TAVOLO ELEVATORE NON OK -98|PLC|FAULT|[98] PANNELLO NON PRELEVATO DA TAVOLO ELEVATORE -99|PLC|FAULT|[99] FOTOCELLULA RIFERIMENTO PANNELLO NON OK -100|PLC|FAULT|[100] ALLARME CELLA WD -101|PLC|FAULT|[101] REFRIGERANTE MANDRINO 1 NON OK -102|PLC|FAULT|[102] REFRIGERANTE MANDRINO 2 NON OK -103|PLC|FAULT|[103] INVERTER NASTRO DI SCARICO NON OK -104|PLC|FAULT|[104] ARRESTO OPERATIVO: RESETTARE LE FOTOCELLULE DI SICUREZZA -105|PLC|WARNING|[105] C.UTENSILE LINEARE IN CORSO: ABBASSARE GLI INNALZATORI E RESETTARE LE FOTOCELLULE DI SICUREZZA -106|PLC|FAULT|[106] CARICO PANNELLO NON AMMESSO -107|PLC|FAULT|[107] BYPASS COLLISIONI ATTIVO -108|PLC|FAULT|[108] SPORTELLO CAMBIO UTENSILE LINEARE DESTRO NON IN POSIZIONE -109|PLC|FAULT|[109] VERIFICA FUNZIONAMENTO SICUREZZE -110|PLC|FAULT|[110] RESETTARE LE FOTOCELLULE DI SICUREZZA -111|PLC|FAULT|[111] INSERIMENTO UTENSILE NON OK -112|PLC|FAULT|[112] GUASTO MICRO CONTROLLO PEDANE -113|PLC|FAULT|[113] INSERIMENTO UTENSILE IN NAVETTA HS NON OK -114|PLC|WARNING|[114] TABELLA NON AGGIORNATA -115|PLC|FAULT|[115] MANDRINO 1 NON SBLOCCATO -116|PLC|FAULT|[116] MANDRINO SUPPLEMENTARE NON SBLOCCATO -117|PLC|FAULT|[117] CONTROLLARE CICLO CHIUSURA BORDO -118|PLC|WARNING|[118] PM: SETUP NON POSSIBILE ZONA 3 [Vuoto ON/Teste DW] -119|PLC|WARNING|[119] PM: SETUP NON POSSIBILE ZONA 4 [Vuoto ON/Teste DW] -120|PLC|WARNING|[120] UTENSILE SPECIALE: OPERAZIONE NON AMMESSA -121|PLC|FAULT|[121] ERRORE CICLO CHIUSURA BORDO -122|PLC|FAULT|[122] MAGAZZINO UTENSILE ESTERNO 1 NON IN POSIZIONE -123|PLC|FAULT|[123] SPORTELLO MAGAZZINO ESTERNO NON IN POSIZIONE -124|PLC|WARNING|[124] ERRATA PROGRAMMAZIONE -125|PLC|WARNING|[125] ERRORE UTENSILE TESTA 1 -126|PLC|WARNING|[126] ERRORE UTENSILE TESTA 2 -127|PLC|FAULT|[127] SPORTELLO CAMBIO UTENSILE LINEARE SINISTRO NON IN POSIZIONE -128|PLC|FAULT|[128] TIME OUT PIGNA MOBILE -129|PLC|WARNING|[129] CAMBIO MODALITA' MACCHINA (M103) -130|PLC|FAULT|[130] PORTE ARMADIO ELETTRICO APERTE -131|PLC|WARNING|[131] ESEGUIRE MANUTENZIONE CONDIZIONATORE ARMADIO ELETTRICO -132|PLC|FAULT|[132] AGGREGATO PRESSATORE/CONVOGLIATORE TRUCIOLI NON OK -133|PLC|FAULT|[133] SERBATOIO LUBROREFRIGERATORE UTENSILE VUOTO -134|PLC|WARNING|[134] BATTERIA SCARICA TASTATORE RADIO -135|PLC|FAULT|[135] RILEVATORE SPESSORE PEZZO NON IN POSIZIONE -136|PLC|FAULT|[136] CICLO TASTATURA NON OK -137|PLC|FAULT|[137] BATTUTE DI RIFERIMENTO ZONA 1 NON OK -138|PLC|FAULT|[138] BATTUTE DI RIFERIMENTO ZONA 2 NON OK -139|PLC|FAULT|[139] ASSI PRISMA BC NON IN POSIZIONE -140|PLC|FAULT|[140] AZIONAMENTI ASSI PRISMA BC NON OK -141|PLC|FAULT|[141] TASTATORE RADIO NON OK -142|PLC|FAULT|[142] -143|PLC|FAULT|[143] -144|PLC|FAULT|[144] -145|PLC|WARNING|[145] RIAGGANCIO MANDRINO IN CORSO -146|PLC|WARNING|[146] RIAGGANCIO MANDRINO FALLITO -147|PLC|WARNING|[147] RIAGGANCIO MANDRINO AVVENUTO -148|PLC|FAULT|[148] INTERVENTO FUNE DI SICUREZZA -149|PLC|FAULT|[149] INTERVENTO OVERSPEED ASSI -150|PLC|FAULT|[150] INTERVENTO BUMPERS -151|PLC|WARNING|[151] MACCHINA SPENTA -152|PLC|FAULT|[152] EMERGENZA PREMUTA -153|PLC|WARNING|[153] PM: SETUP NON POSSIBILE ZONA 1 [VUOTO ON / TESTE DW] -154|PLC|WARNING|[154] PM: SETUP NON POSSIBILE ZONA 2 [VUOTO ON / TESTE DW] -155|PLC|WARNING|[155] BARRA MOBILE CENTRALE 1 NON IN POSIZIONE -156|PLC|WARNING|[156] BARRA MOBILE CENTRALE 2 NON IN POSIZIONE -157|PLC|WARNING|[157] PM: COLLISIONE BATTUTE CON SUPPORTI VENTOSE / MORSETTI -158|PLC|WARNING|[158] CUFFIA MANDRINO SUPPLEMENTARE NON IN POSIZIONE -159|PLC|WARNING|[159] TESTA GRUPPO MANDRINO SUPPLEMENTARE NON IN POSIZIONE -160|PLC|WARNING|[160] TESTA GRUPPO LAMA NON IN POSIZIONE -161|PLC|WARNING|[161] CICLO DI CARICO IN CORSO -162|PLC|WARNING|[162] CICLO DI SCARICO IN CORSO -163|PLC|WARNING|[163] BATTUTE DI CARICO NON IN POSIZIONE ZONA 1 -164|PLC|WARNING|[164] ATTESA ROBOT IN POSIZIONE -165|PLC|WARNING|[165] INVERTER GUASTO POMPA VUOTO 1 (MASTER) -166|PLC|WARNING|[166] INVERTER GUASTO POMPA VUOTO 2 (SLAVE) -167|PLC|WARNING|[167] BATTUTE DI CARICO NON IN POSIZIONE ZONA 2 -168|PLC|WARNING|[168] SALITA CUFFIA DA OPERATORE -169|PLC|WARNING|[169] TRAVERSA 1 NON IN POSIZIONE -170|PLC|WARNING|[170] TRAVERSA 2 NON IN POSIZIONE -171|PLC|WARNING|[171] TRAVERSA 3 NON IN POSIZIONE -172|PLC|WARNING|[172] TRAVERSA 4 NON IN POSIZIONE -173|PLC|WARNING|[173] TRAVERSA 5 NON IN POSIZIONE -174|PLC|WARNING|[174] TRAVERSA 6 NON IN POSIZIONE -175|PLC|WARNING|[175] TRAVERSA 7 NON IN POSIZIONE -176|PLC|WARNING|[176] TRAVERSA 8 NON IN POSIZIONE -177|PLC|WARNING|[177] TRAVERSA 9 NON IN POSIZIONE -178|PLC|WARNING|[178] TRAVERSA 10 NON IN POSIZIONE -179|PLC|WARNING|[179] TRAVERSA 11 NON IN POSIZIONE -180|PLC|WARNING|[180] TRAVERSA 12 NON IN POSIZIONE -181|PLC|WARNING|[181] SOSTITUZIONE VENTOSE IN CORSO AREA 1 -182|PLC|WARNING|[182] SOSTITUZIONE VENTOSE IN CORSO AREA 2 -183|PLC|FAULT|[183] BATTUTE DI RIFERIMENTO ZONA 3 NON OK -184|PLC|FAULT|[184] BATTUTE DI RIFERIMENTO ZONA 4 NON OK -185|PLC|FAULT|[185] [BRC] GR5: GRUPPO FUSI ORIZZONTALI NON IN POSIZIONE (fori spine) -186|PLC|FAULT|[186] [BRC] GR6: GRUPPO FRESA VERTICALE NON IN POSIZIONE -187|PLC|FAULT|[187] [BRC] GR7: GRUPPO FRESA ORIZZONTALE NON IN POSIZIONE -188|PLC|FAULT|[188] [BRC] GR8: GRUPPO LAMA NON IN POSIZIONE -189|PLC|FAULT|[189] [BRC] ATTESA INNESTO PER ROTAZIONE GRUPPO LAMA -190|PLC|FAULT|[190] SELETTORI CONTROSAGOMA NON OK [AREA UNICA] -191|PLC|FAULT|[191] BATTUTE DI RIFERIMENTO BARRA 1 NON OK -192|PLC|FAULT|[192] BATTUTE DI RIFERIMENTO BARRA 2 NON OK -193|PLC|FAULT|[193] BATTUTE DI RIFERIMENTO BARRA 3 NON OK -194|PLC|FAULT|[194] BATTUTE DI RIFERIMENTO BARRA 4 NON OK -195|PLC|FAULT|[195] BATTUTE DI RIFERIMENTO BARRA 5 NON OK -196|PLC|FAULT|[196] BATTUTE DI RIFERIMENTO BARRA 6 NON OK -197|PLC|FAULT|[197] BATTUTE DI RIFERIMENTO BARRA 7 NON OK -198|PLC|FAULT|[198] BATTUTE DI RIFERIMENTO BARRA 8 NON OK -199|PLC|FAULT|[199] BATTUTE DI RIFERIMENTO BARRA 9 NON OK -200|PLC|FAULT|[200] BATTUTE DI RIFERIMENTO BARRA 10 NON OK -201|PLC|FAULT|[201] BATTUTE DI RIFERIMENTO BARRA 11 NON OK -202|PLC|FAULT|[202] BATTUTE DI RIFERIMENTO BARRA 12 NON OK -203|PLC|FAULT|[203] BATTUTE DI RIFERIMENTO BARRA FISSA SX NON OK -204|PLC|FAULT|[204] BATTUTE DI RIFERIMENTO BARRA FISSA DX NON OK -205|PLC|FAULT|[205] BASI NON BLOCCATE ZONA 1 -206|PLC|FAULT|[206] BASI NON BLOCCATE ZONA 2 -207|PLC|FAULT|[207] BASI NON BLOCCATE ZONA 3 -208|PLC|FAULT|[208] BASI NON BLOCCATE ZONA 4 -209|PLC|WARNING|[209] SOSTITUZIONE VENTOSE IN CORSO AREA 3 -210|PLC|WARNING|[210] SOSTITUZIONE VENTOSE IN CORSO AREA 4 -211|PLC|FAULT|[211] [BORDATORE POWER] ATTESA GRUPPO A BORDARE ALTO -212|PLC|FAULT|[212] [BORDATORE POWER] ATTESA GRUPPO A BORDARE BASSO -213|PLC|FAULT|[213] [BORDATORE POWER] ATTESA GRUPPO A BORDARE POSIZ. CAMBIO RULLO -214|PLC|FAULT|[214] [BORDATORE POWER] ATTESA PIANO CARICAMENTO BORDI ALTO -215|PLC|FAULT|[215] [BORDATORE POWER] ATTESA PIANO CARICAMENTO BORDI BASSO -216|PLC|FAULT|[216] [BORDATORE POWER] MANCATA LETTURA BORDO GIUNZIONE -217|PLC|FAULT|[217] [BORDATORE POWER] ERRORE BORDO SU FOTOCELLULA DI CARICO -218|PLC|FAULT|[218] VASCA COLLA NON IN TEMPERATURA -219|PLC|FAULT|[219] [BORDATORE POWER] ASSENZA BORDO IN MULTIROTOLO -220|PLC|FAULT|[220] [BORDATORE POWER] ATTESA CICLO CARICO COLLA DA PREFUSORE -221|PLC|FAULT|[221] [BORDATORE POWER] MANCATO TAGLIO TRANCIA MAGAZZINO BORDI -222|PLC|FAULT|[222] [BORDATORE POWER] ATTESA CARICO COLLA DA PREFUSORE -223|PLC|FAULT|[223] [BORDATORE POWER] ANOMALIA SENSORI CILINDRO TESTA A BORDARE -224|PLC|FAULT|[224] SENSORE TESTA A BORDARE IN COLLISIONE -225|PLC|FAULT|[225] [BORDATORE POWER] TIMEOUT INTESTATURA BORDO TESTA A BORDARE -226|PLC|FAULT|[226] INTERVENTO TERMICI VASCA COLLA -227|PLC|FAULT|[227] INTERVENTO TERMICI PREFUSORE -228|PLC|FAULT|[228] INTERVENTO TERMICI LAMPADE ONDE CORTE -229|PLC|FAULT|[229] ESEGUIRE RIFERIMENTO MOT. ALTEZZA BORDO TESTA B. -230|PLC|FAULT|[230] ESEGUIRE RIFERIMENTO MOT. ALTEZZA BORDO MAGAZZINO B. -231|PLC|FAULT|[231] ESEGUIRE RIFERIMENTO MOT. CAMBIO RULLO PRESSIONE -232|PLC|FAULT|[232] TIMEOUT SENSORE CHIUSURA CILINDRO PREFUSORE -233|PLC|FAULT|[233] ESEGUIRE TARATURA TRAVERSE/VENTOSE -234|PLC|FAULT|[234] VENTOSE NON BLOCCATE AREA 1 -235|PLC|FAULT|[235] VENTOSE NON BLOCCATE AREA 2 -236|PLC|WARNING|[236] ATTESA SBLOCCO VENTOSA -237|PLC|WARNING|[237] ATTESA BLOCCO VENTOSA -238|PLC|WARNING|[238] RIMUOVERE VENTOSA: START CICLO -239|PLC|WARNING|[239] INSERIRE VENTOSA: START CICLO -240|PLC|FAULT|[240] ANOMALIA FOTOCELLULA MAGAZZINO BORDI -241|PLC|WARNING|[241] BARRA 1 -242|PLC|WARNING|[242] BARRA 2 -243|PLC|WARNING|[243] BARRA 3 -244|PLC|WARNING|[244] BARRA 4 -245|PLC|WARNING|[245] BARRA 5 -246|PLC|WARNING|[246] BARRA 6 -247|PLC|WARNING|[247] BARRA 7 -248|PLC|WARNING|[248] BARRA 8 -249|PLC|WARNING|[249] BARRA 9 -250|PLC|WARNING|[250] BARRA 10 -251|PLC|WARNING|[251] BARRA 11 -252|PLC|WARNING|[252] BARRA 12 -253|PLC|WARNING|[253] RIMUOVERE/INSERIRE VENTOSA COME DA GRAFICA SU AREA 1: START CICLO -254|PLC|WARNING|[254] RIMUOVERE/INSERIRE VENTOSA COME DA GRAFICA SU AREA 2: START CICLO -255|PLC|FAULT|[255] PORTE PROTEZIONE SBLOCCATE -256|PLC|FAULT|[256] ERRORE MODULO ZERO SPEED MANDRINO -257|PLC|FAULT|[257] INTESTATORE NON IN POSIZIONE -258|PLC|FAULT|[258] INTESTATORE 92 VUOTO -259|PLC|FAULT|[259] INTESTATORE 93 VUOTO -260|PLC|FAULT|[260] LIVELLO COLLA BASSO B.BASIC -261|PLC|FAULT|[261] [WD]EMERGENZA TRANSFER PREMUTA -262|PLC|FAULT|[262] [WD]INTERVENTO MAGNETOTERMICI TRANSFER -263|PLC|FAULT|[263] [WD]PORTE ARMADIO ELETTRICO TRANSFER APERTE -264|PLC|FAULT|[264] [WD]SVUOTARE TRANSFER -265|PLC|FAULT|[265] [WD]PEZZO IN ZONA DI SCARICO -266|PLC|FAULT|[266] [WD]ATTESA ROBOT 1 IN POSIZIONE -267|PLC|FAULT|[267] [WD]ATTESA ROBOT 2 IN POSIZIONE -268|PLC|FAULT|[268] [WD]SVUOTARE RULLIERE -269|PLC|FAULT|[269] [WD]DIMENSIONI PEZZO NON OK -270|PLC|FAULT|[270] [WD]SVUOTARE PIANO MACCHINA E PINZE ROBOT -271|PLC|FAULT|[271] [WD]PINZA ROBOT 1 NON IN POSIZIONE -272|PLC|FAULT|[272] [WD]PINZA ROBOT 2 NON IN POSIZIONE -273|PLC|FAULT|[273] MORSETTI ZONA 1 ALTI PNEUMATICAMENTE -274|PLC|FAULT|[274] MORSETTI ZONA 2 ALTI PNEUMATICAMENTE -275|PLC|FAULT|[275] EMERGENZA CAUSA MORSETTI ZONA 1 -276|PLC|FAULT|[276] EMERGENZA CAUSA MORSETTI ZONA 2 +# Commenti con "#", elenco tipo COD_NUM|GRUPPO|LEVEL|DESCRIZIONE completa +000001|PLC|FAULT|[COD 001000] - 334 ERRORE COMUNICAZIONE PROFIBUS +000002|PLC|FAULT|[COD 001001] - 700 TABELLE IN MODIFICA +000003|PLC|FAULT|[COD 001002] - 404 BILANCIAMENTO ASSE Z INSUFFICIENTE +000004|PLC|FAULT|[COD 001003] - 403 SURRISCALDAMENTO ARMADIO ELETTRICO +000005|PLC|FAULT|[COD 001004] - 173 CAMBIARE LA BATTERIA +000006|PLC|FAULT|[COD 001005] - 407 UNO O PIU ASSI IN EXTRA CORSA +000007|PLC|FAULT|[COD 001006] - 406 PULSANTI DI EMERGENZA +000008|PLC|FAULT|[COD 001007] - ... +000009|PLC|FAULT|[COD 001008] - 583 MACCHINA SPENTA +000010|PLC|FAULT|[COD 001009] - 782 RICHIESTA ESECUZIONE TEST DI SICUREZZA +000011|PLC|FAULT|[COD 001010] - 783 INCONSISTENZA SEGNALI DUALCHEK (PARATIA) +000012|PLC|FAULT|[COD 001011] - 784 SOVRACORRENTE MODULI I/O LINK +000013|PLC|FAULT|[COD 001012] - 667 CIRCUITO DI SICUREZZA GUASTO +000014|PLC|FAULT|[COD 001013] - 404 BILANCIAMENTO ASSE W INSUFFICIENTE +000015|PLC|FAULT|[COD 001014] - 584 PORTA DI SICUREZZA AUSILIARIA 1 NON CHIUSA +000016|PLC|FAULT|[COD 001015] - 584 PORTA DI SICUREZZA AUSILIARIA 2 NON CHIUSA +000017|PLC|FAULT|[COD 001016] - 001 HAI VERIFICATO TABELLE UTENSILI ? PREMERE SOFTKEY SI +000018|PLC|FAULT|[COD 001017] - 002 SEI SICURO ? PREMERE SOFTKEY SI +000019|PLC|FAULT|[COD 001018] - 666 MODULO CONTROLLO MANDRINO FERMO NON OK +000020|PLC|FAULT|[COD 001019] - 666 DISPOSITIVO DI SICUREZZA GUASTO +000021|PLC|FAULT|[COD 001020] - 689 STATUS UTENSILE NON OK +000022|PLC|FAULT|[COD 001021] - 688 ERRORE TOOLTABLE - SINCRONISMO DATI +000023|PLC|FAULT|[COD 001022] - 688 ERRORE TOOLTABLE - UTENSILE NON TROVATO +000024|PLC|FAULT|[COD 001023] - 688 ERRORE TOOLTABLE - PASTIGLIA NON TROVATA +000025|PLC|FAULT|[COD 001024] - 688 ERRORE TOOLTABLE - FAMIGLIA NON TROVATA +000026|PLC|FAULT|[COD 001025] - 688 ERRORE TOOLTABLE - MAGAZZINO/POSTO NON TROVATO +000027|PLC|FAULT|[COD 001026] - 688 ERRORE TOOLTABLE - VITA UT. ESAURITA PER FAMIGLIA +000028|PLC|FAULT|[COD 001027] - 688 ERRORE TOOLTABLE - POSTO MAGAZZINO NON TROVATO +000029|PLC|FAULT|[COD 001028] - ... +000030|PLC|FAULT|[COD 001029] - ... +000031|PLC|FAULT|[COD 001030] - ... +000032|PLC|FAULT|[COD 001031] - 146 FIELDBUS KO (375) +000033|PLC|FAULT|[COD 001032] - +000034|PLC|FAULT|[COD 001033] - +000035|PLC|FAULT|[COD 001034] - +000036|PLC|FAULT|[COD 001035] - +000037|PLC|FAULT|[COD 001036] - +000038|PLC|FAULT|[COD 001037] - +000039|PLC|FAULT|[COD 001038] - +000040|PLC|FAULT|[COD 001039] - +000041|PLC|FAULT|[COD 001040] - +000042|PLC|FAULT|[COD 001041] - +000043|PLC|FAULT|[COD 001042] - +000044|PLC|FAULT|[COD 001043] - +000045|PLC|FAULT|[COD 001044] - +000046|PLC|FAULT|[COD 001045] - +000047|PLC|FAULT|[COD 001046] - +000048|PLC|FAULT|[COD 001047] - +000049|PLC|FAULT|[COD 001048] - +000050|PLC|FAULT|[COD 001049] - +000051|PLC|FAULT|[COD 001050] - +000052|PLC|FAULT|[COD 001051] - +000053|PLC|FAULT|[COD 001052] - +000054|PLC|FAULT|[COD 001053] - +000055|PLC|FAULT|[COD 001054] - +000056|PLC|FAULT|[COD 001055] - +000057|PLC|FAULT|[COD 001056] - +000058|PLC|FAULT|[COD 001057] - +000059|PLC|FAULT|[COD 001058] - +000060|PLC|FAULT|[COD 001059] - +000061|PLC|FAULT|[COD 001060] - +000062|PLC|FAULT|[COD 001061] - +000063|PLC|FAULT|[COD 001062] - +000064|PLC|FAULT|[COD 001063] - +000065|PLC|FAULT|[COD 001064] - +000066|PLC|FAULT|[COD 001065] - +000067|PLC|FAULT|[COD 001066] - +000068|PLC|FAULT|[COD 001067] - +000069|PLC|FAULT|[COD 001068] - +000070|PLC|FAULT|[COD 001069] - +000071|PLC|FAULT|[COD 001070] - +000072|PLC|FAULT|[COD 001071] - +000073|PLC|FAULT|[COD 001072] - +000074|PLC|FAULT|[COD 001073] - +000075|PLC|FAULT|[COD 001074] - +000076|PLC|FAULT|[COD 001075] - +000077|PLC|FAULT|[COD 001076] - +000078|PLC|FAULT|[COD 001077] - +000079|PLC|FAULT|[COD 001078] - +000080|PLC|FAULT|[COD 001079] - +000081|PLC|FAULT|[COD 001080] - +000082|PLC|FAULT|[COD 001081] - +000083|PLC|FAULT|[COD 001082] - +000084|PLC|FAULT|[COD 001083] - +000085|PLC|FAULT|[COD 001084] - +000086|PLC|FAULT|[COD 001085] - +000087|PLC|FAULT|[COD 001086] - +000088|PLC|FAULT|[COD 001087] - +000089|PLC|FAULT|[COD 001088] - +000090|PLC|FAULT|[COD 001089] - +000091|PLC|FAULT|[COD 001090] - +000092|PLC|FAULT|[COD 001091] - +000093|PLC|FAULT|[COD 001092] - +000094|PLC|FAULT|[COD 001093] - +000095|PLC|FAULT|[COD 001094] - +000096|PLC|FAULT|[COD 001095] - +000097|PLC|FAULT|[COD 001096] - +000098|PLC|FAULT|[COD 001097] - +000099|PLC|FAULT|[COD 001098] - +000100|PLC|FAULT|[COD 001099] - +000101|PLC|FAULT|[COD 001100] - +000102|PLC|FAULT|[COD 001101] - +000103|PLC|FAULT|[COD 001102] - +000104|PLC|FAULT|[COD 001103] - +000105|PLC|FAULT|[COD 001104] - +000106|PLC|FAULT|[COD 001105] - +000107|PLC|FAULT|[COD 001106] - +000108|PLC|FAULT|[COD 001107] - +000109|PLC|FAULT|[COD 001108] - +000110|PLC|FAULT|[COD 001109] - +000111|PLC|FAULT|[COD 001110] - +000112|PLC|FAULT|[COD 001111] - +000113|PLC|FAULT|[COD 001112] - +000114|PLC|FAULT|[COD 001113] - +000115|PLC|FAULT|[COD 001114] - +000116|PLC|FAULT|[COD 001115] - +000117|PLC|FAULT|[COD 001116] - +000118|PLC|FAULT|[COD 001117] - +000119|PLC|FAULT|[COD 001118] - +000120|PLC|FAULT|[COD 001119] - +000121|PLC|FAULT|[COD 001120] - +000122|PLC|FAULT|[COD 001121] - +000123|PLC|FAULT|[COD 001122] - +000124|PLC|FAULT|[COD 001123] - +000125|PLC|FAULT|[COD 001124] - +000126|PLC|FAULT|[COD 001125] - +000127|PLC|FAULT|[COD 001126] - +000128|PLC|FAULT|[COD 001127] - +000129|PLC|FAULT|[COD 001128] - +000130|PLC|FAULT|[COD 001129] - +000131|PLC|FAULT|[COD 001130] - +000132|PLC|FAULT|[COD 001131] - +000133|PLC|FAULT|[COD 001132] - +000134|PLC|FAULT|[COD 001133] - +000135|PLC|FAULT|[COD 001134] - +000136|PLC|FAULT|[COD 001135] - +000137|PLC|FAULT|[COD 001136] - +000138|PLC|FAULT|[COD 001137] - +000139|PLC|FAULT|[COD 001138] - +000140|PLC|FAULT|[COD 001139] - +000141|PLC|FAULT|[COD 001140] - +000142|PLC|FAULT|[COD 001141] - +000143|PLC|FAULT|[COD 001142] - +000144|PLC|FAULT|[COD 001143] - +000145|PLC|FAULT|[COD 001144] - +000146|PLC|FAULT|[COD 001145] - +000147|PLC|FAULT|[COD 001146] - +000148|PLC|FAULT|[COD 001147] - +000149|PLC|FAULT|[COD 001148] - +000150|PLC|FAULT|[COD 001149] - +000151|PLC|FAULT|[COD 001150] - +000152|PLC|FAULT|[COD 001151] - +000153|PLC|FAULT|[COD 001152] - +000154|PLC|FAULT|[COD 001153] - +000155|PLC|FAULT|[COD 001154] - +000156|PLC|FAULT|[COD 001155] - +000157|PLC|FAULT|[COD 001156] - +000158|PLC|FAULT|[COD 001157] - +000159|PLC|FAULT|[COD 001158] - +000160|PLC|FAULT|[COD 001159] - +000161|PLC|FAULT|[COD 001160] - +000162|PLC|FAULT|[COD 001161] - +000163|PLC|FAULT|[COD 001162] - +000164|PLC|FAULT|[COD 001163] - +000165|PLC|FAULT|[COD 001164] - +000166|PLC|FAULT|[COD 001165] - +000167|PLC|FAULT|[COD 001166] - +000168|PLC|FAULT|[COD 001167] - +000169|PLC|FAULT|[COD 001168] - +000170|PLC|FAULT|[COD 001169] - +000171|PLC|FAULT|[COD 001170] - +000172|PLC|FAULT|[COD 001171] - +000173|PLC|FAULT|[COD 001172] - +000174|PLC|FAULT|[COD 001173] - +000175|PLC|FAULT|[COD 001174] - +000176|PLC|FAULT|[COD 001175] - +000177|PLC|FAULT|[COD 001176] - +000178|PLC|FAULT|[COD 001177] - +000179|PLC|FAULT|[COD 001178] - +000180|PLC|FAULT|[COD 001179] - +000181|PLC|FAULT|[COD 001180] - +000182|PLC|FAULT|[COD 001181] - +000183|PLC|FAULT|[COD 001182] - +000184|PLC|FAULT|[COD 001183] - +000185|PLC|FAULT|[COD 001184] - +000186|PLC|FAULT|[COD 001185] - +000187|PLC|FAULT|[COD 001186] - +000188|PLC|FAULT|[COD 001187] - +000189|PLC|FAULT|[COD 001188] - +000190|PLC|FAULT|[COD 001189] - +000191|PLC|FAULT|[COD 001190] - +000192|PLC|FAULT|[COD 001191] - +000193|PLC|FAULT|[COD 001192] - +000194|PLC|FAULT|[COD 001193] - +000195|PLC|FAULT|[COD 001194] - +000196|PLC|FAULT|[COD 001195] - +000197|PLC|FAULT|[COD 001196] - +000198|PLC|FAULT|[COD 001197] - +000199|PLC|FAULT|[COD 001198] - +000200|PLC|FAULT|[COD 001199] - +000201|PLC|FAULT|[COD 001200] - +000202|PLC|FAULT|[COD 001201] - +000203|PLC|FAULT|[COD 001202] - +000204|PLC|FAULT|[COD 001203] - +000205|PLC|FAULT|[COD 001204] - +000206|PLC|FAULT|[COD 001205] - +000207|PLC|FAULT|[COD 001206] - +000208|PLC|FAULT|[COD 001207] - +000209|PLC|FAULT|[COD 001208] - +000210|PLC|FAULT|[COD 001209] - +000211|PLC|FAULT|[COD 001210] - +000212|PLC|FAULT|[COD 001211] - +000213|PLC|FAULT|[COD 001212] - +000214|PLC|FAULT|[COD 001213] - +000215|PLC|FAULT|[COD 001214] - +000216|PLC|FAULT|[COD 001215] - +000217|PLC|FAULT|[COD 001216] - +000218|PLC|FAULT|[COD 001217] - +000219|PLC|FAULT|[COD 001218] - +000220|PLC|FAULT|[COD 001219] - +000221|PLC|FAULT|[COD 001220] - +000222|PLC|FAULT|[COD 001221] - +000223|PLC|FAULT|[COD 001222] - +000224|PLC|FAULT|[COD 001223] - +000225|PLC|FAULT|[COD 001224] - +000226|PLC|FAULT|[COD 001225] - +000227|PLC|FAULT|[COD 001226] - +000228|PLC|FAULT|[COD 001227] - +000229|PLC|FAULT|[COD 001228] - +000230|PLC|FAULT|[COD 001229] - +000231|PLC|FAULT|[COD 001230] - +000232|PLC|FAULT|[COD 001231] - +000233|PLC|FAULT|[COD 001232] - +000234|PLC|FAULT|[COD 001233] - +000235|PLC|FAULT|[COD 001234] - +000236|PLC|FAULT|[COD 001235] - +000237|PLC|FAULT|[COD 001236] - +000238|PLC|FAULT|[COD 001237] - +000239|PLC|FAULT|[COD 001238] - +000240|PLC|FAULT|[COD 001239] - +000241|PLC|FAULT|[COD 001240] - +000242|PLC|FAULT|[COD 001241] - +000243|PLC|FAULT|[COD 001242] - +000244|PLC|FAULT|[COD 001243] - +000245|PLC|FAULT|[COD 001244] - +000246|PLC|FAULT|[COD 001245] - +000247|PLC|FAULT|[COD 001246] - +000248|PLC|FAULT|[COD 001247] - +000249|PLC|FAULT|[COD 001248] - +000250|PLC|FAULT|[COD 001249] - +000251|PLC|FAULT|[COD 001250] - +000252|PLC|FAULT|[COD 001251] - +000253|PLC|FAULT|[COD 001252] - +000254|PLC|FAULT|[COD 001253] - +000255|PLC|FAULT|[COD 001254] - +000256|PLC|FAULT|[COD 001255] - +000257|PLC|FAULT|[COD 002000] - 444 PRESSIONE LIQUIDO DI RAFFREDDAMENTO INSUFFICIENTE +000258|PLC|FAULT|[COD 002001] - 441 MALFUNZIONAMENTO RAFFREDDAMENTO MANDRINI +000259|PLC|FAULT|[COD 002002] - 276 LIMITI SOFTWARE ASSE X NON ATTUALI +000260|PLC|FAULT|[COD 002003] - 512 CAMBIO ZONA INTERROTTO +000261|PLC|FAULT|[COD 002004] - 346 PARATIA NON IN POSIZIONE +000262|PLC|FAULT|[COD 002005] - 607 PREMERE PRENOTAZIONE CAMBIO ZONA +000263|PLC|FAULT|[COD 002006] - 150 AZIONAMENTI NON ABILITATI +000264|PLC|FAULT|[COD 002007] - 161 COMUNICAZIONE INVERTER IN ERRORE +000265|PLC|FAULT|[COD 002008] - 162 FATAL ERROR INVERTER +000266|PLC|FAULT|[COD 002009] - 398 PRESSIONE ARIA INSUFFICIENTE +000267|PLC|FAULT|[COD 002010] - 400 LUBRIFICAZIONE INEFFICIENTE +000268|PLC|FAULT|[COD 002011] - 460 ASSE B BLOCCATO +000269|PLC|FAULT|[COD 002012] - 458 ASSE B NON BLOCCATO +000270|PLC|FAULT|[COD 002013] - 460 ASSE C BLOCCATO +000271|PLC|FAULT|[COD 002014] - 458 ASSE C NON BLOCCATO +000272|PLC|FAULT|[COD 002015] - 105 MACCHINA IN HOLD +000273|PLC|FAULT|[COD 002016] - 614 PREMERE LA SOFTKEY RIPRISTINO ACCOPPIAMENTO Z-W +000274|PLC|FAULT|[COD 002017] - 593 PROTEZIONI DI SICUREZZA +000275|PLC|FAULT|[COD 002018] - 362 MONTANTE CENTRALE NON IN POSIZIONE +000276|PLC|FAULT|[COD 002019] - 157 SICUREZZE ANTICADUTA ASSE Z NON OK +000277|PLC|FAULT|[COD 002020] - 158 PIOLO ANTICADUTA ASSE Z NON IN POSIZIONE +000278|PLC|FAULT|[COD 002021] - 115 CONTROLLO VELOCITA MANDRINO +000279|PLC|FAULT|[COD 002022] - 135 CONVERTITORE IN BLOCCO +000280|PLC|FAULT|[COD 002023] - 514 PROTEZIONE SUPPORTO LASER NON IN POSIZIONE +000281|PLC|FAULT|[COD 002024] - 561 LASER NON IN POSIZIONE +000282|PLC|FAULT|[COD 002025] - 230 RELE TERMICO POMPA VUOTO 1 +000283|PLC|FAULT|[COD 002026] - 230 RELE TERMICO POMPA VUOTO 2 +000284|PLC|FAULT|[COD 002027] - 200 RELE TERMICO MANDRINO +000285|PLC|FAULT|[COD 002028] - 168 CONVERTITORE NON ABILITATO +000286|PLC|FAULT|[COD 002029] - 333 COMUNICAZIONE VOLANTINO IN ERRORE +000287|PLC|FAULT|[COD 002030] - 390 FUNZIONE T NON PERMESSA +000288|PLC|FAULT|[COD 002031] - 429 UTENSILE IN MANDRINO NON OK +000289|PLC|FAULT|[COD 002032] - 245 PROTEZIONE TERMICA ASSE A +000290|PLC|FAULT|[COD 002033] - 245 PROTEZIONE TERMICA ASSE C +000291|PLC|FAULT|[COD 002034] - 004 VUOI ATTIVARE IL PROGRAMMA? PREMERE LA SOFTKEY SI OPPURE RESET +000292|PLC|FAULT|[COD 002035] - 490 VERIFICA POSIZIONE UTENSILI +000293|PLC|FAULT|[COD 002036] - 522 NUMERO DI GIRI TROPPO ELEVATI +000294|PLC|FAULT|[COD 002037] - 498 CARICO MASSIMO SUL MANDRINO +000295|PLC|FAULT|[COD 002038] - 397 CIRCUITO REFRIGERANTE UTENSILE NON OK +000296|PLC|FAULT|[COD 002039] - 465 UTENSILE ROTTO +000297|PLC|FAULT|[COD 002040] - 559 LASER/TASTATORE IN MANDRINO +000298|PLC|FAULT|[COD 002041] - 572 TASTATORE NON PRONTO +000299|PLC|FAULT|[COD 002042] - 514 PROTEZIONE SUPPORTO TASTATORE NON IN POSIZIONE +000300|PLC|FAULT|[COD 002043] - 561 TASTATORE NON IN POSIZIONE +000301|PLC|FAULT|[COD 002044] - 163 FRENO CONVERTITORE NON OK +000302|PLC|FAULT|[COD 002045] - 572 RADIO PROBE - BATTERIA SCARICA +000303|PLC|FAULT|[COD 002046] - 640 TAVOLE NON IN POSIZIONE CORRETTA +000304|PLC|FAULT|[COD 002047] - 673 ASSE Z NON OK PER CAMBIO TAVOLA +000305|PLC|FAULT|[COD 002048] - 641 CAMBIO TAVOLA INTERROTTO +000306|PLC|FAULT|[COD 002049] - 130 PROBE DEVICE NON OK - DISATTIVARE DRY RUN +000307|PLC|FAULT|[COD 002050] - 276 LIMITI SOFTWARE ASSE C NON ATTUALI +000308|PLC|FAULT|[COD 002051] - 495 AZZERAMENTO ASSI CON UTENSILE NON CONSENTITO +000309|PLC|FAULT|[COD 002052] - 479 PORTELLE ASPIRAZIONE DESTRA NON IN POSIZIONE +000310|PLC|FAULT|[COD 002053] - 479 PORTELLE ASPIRAZIONE SINISTRA NON IN POSIZIONE +000311|PLC|FAULT|[COD 002054] - ... +000312|PLC|FAULT|[COD 002055] - ... +000313|PLC|FAULT|[COD 002056] - ... +000314|PLC|FAULT|[COD 002057] - ... +000315|PLC|FAULT|[COD 002058] - 444 PRESSIONE LIQUIDO DI RAFFREDDAMENTO MOTORI TORQUE INSUFFICIENTE(TORQUE) +000316|PLC|FAULT|[COD 002059] - 672 CIRCUITO LIQUIDO DI RAFFREDDAMENTO MOTORI TORQUE NON OK +000317|PLC|FAULT|[COD 002060] - 265 ASSE X NON IN POSIZIONE PER AZZERAMENTO +000318|PLC|FAULT|[COD 002061] - 265 ASSE Y NON IN POSIZIONE PER AZZERAMENTO +000319|PLC|FAULT|[COD 002062] - 265 ASSE Z NON IN POSIZIONE PER AZZERAMENTO +000320|PLC|FAULT|[COD 002063] - ... +000321|PLC|FAULT|[COD 002064] - 551 CONDIZIONI NON OK PER GRUPPO A FORARE +000322|PLC|FAULT|[COD 002065] - 265 ASSE B NON IN POSIZIONE PER AZZERAMENTO +000323|PLC|FAULT|[COD 002066] - 265 ASSE C NON IN POSIZIONE PER AZZERAMENTO +000324|PLC|FAULT|[COD 002067] - 270 RELE TERMICO GRUPPO DI FORATURA +000325|PLC|FAULT|[COD 002068] - ... +000326|PLC|FAULT|[COD 002069] - ... +000327|PLC|FAULT|[COD 002070] - 105 STOP DA DISPOSITIVO DI MONITORAGGIO +000328|PLC|FAULT|[COD 002071] - ... +000329|PLC|FAULT|[COD 002072] - 551 CONDIZIONI NON OK PER GRUPPO A FORARE +000330|PLC|FAULT|[COD 002073] - 265 ASSE B NON IN POSIZIONE PER AZZERAMENTO +000331|PLC|FAULT|[COD 002074] - 265 ASSE C NON IN POSIZIONE PER AZZERAMENTO +000332|PLC|FAULT|[COD 002075] - 270 RELE TERMICO GRUPPO DI FORATURA +000333|PLC|FAULT|[COD 002076] - ... +000334|PLC|FAULT|[COD 002077] - ... +000335|PLC|FAULT|[COD 002078] - 105 STOP DA DISPOSITIVO DI MONITORAGGIO +000336|PLC|FAULT|[COD 002079] - ... +000337|PLC|FAULT|[COD 002080] - +000338|PLC|FAULT|[COD 002081] - +000339|PLC|FAULT|[COD 002082] - +000340|PLC|FAULT|[COD 002083] - +000341|PLC|FAULT|[COD 002084] - +000342|PLC|FAULT|[COD 002085] - +000343|PLC|FAULT|[COD 002086] - +000344|PLC|FAULT|[COD 002087] - +000345|PLC|FAULT|[COD 002088] - +000346|PLC|FAULT|[COD 002089] - +000347|PLC|FAULT|[COD 002090] - +000348|PLC|FAULT|[COD 002091] - +000349|PLC|FAULT|[COD 002092] - +000350|PLC|FAULT|[COD 002093] - +000351|PLC|FAULT|[COD 002094] - +000352|PLC|FAULT|[COD 002095] - +000353|PLC|FAULT|[COD 002096] - +000354|PLC|FAULT|[COD 000000] - +000355|PLC|FAULT|[COD 000000] - +000356|PLC|FAULT|[COD 000000] - +000357|PLC|FAULT|[COD 000000] - +000358|PLC|FAULT|[COD 000000] - +000359|PLC|FAULT|[COD 000000] - +000360|PLC|FAULT|[COD 000000] - +000361|PLC|FAULT|[COD 000000] - +000362|PLC|FAULT|[COD 000000] - +000363|PLC|FAULT|[COD 000000] - +000364|PLC|FAULT|[COD 000000] - +000365|PLC|FAULT|[COD 000000] - +000366|PLC|FAULT|[COD 000000] - +000367|PLC|FAULT|[COD 000000] - +000368|PLC|FAULT|[COD 000000] - +000369|PLC|FAULT|[COD 002100] - 503 CAMBIO UTENSILE IN CORSO +000370|PLC|FAULT|[COD 002101] - 781 UNO O PIU ASSI SENZA RIFERIMENTO +000371|PLC|FAULT|[COD 002102] - 674 MACCHINA NON IN ZONA DI LAVORO +000372|PLC|FAULT|[COD 002103] - 785 CONSENSO APERTURA PORTE NEGATO +000373|PLC|FAULT|[COD 002104] - 520 FUNZIONE STALL MODE ATTIVA +000374|PLC|FAULT|[COD 002105] - 450 UTENSILE MANDRINO NON BLOCCATO +000375|PLC|FAULT|[COD 002106] - 780 STAZIONE OCCUPATA MAGAZZINO +000376|PLC|FAULT|[COD 002107] - 530 PULSANTIERA ESTERNA ABILITATA +000377|PLC|FAULT|[COD 002108] - 504 CAMBIO UTENSILE INTERROTTO +000378|PLC|FAULT|[COD 002109] - 363 MONTANTE CENTRALE ALTO +000379|PLC|FAULT|[COD 002110] - =--- PREALLARME TERMICO TORQUE A +000380|PLC|FAULT|[COD 002111] - 498 CARICO MASSIMO SUL MANDRINO SUPERATO SOGLIA S1 +000381|PLC|FAULT|[COD 002112] - --- PREALLARME TERMICO TORQUE C +000382|PLC|FAULT|[COD 002113] - 432 UTENSILE NON SGANCIATO +000383|PLC|FAULT|[COD 002114] - 475 CUFFIA ASPIRAZIONE NON IN POSIZIONE +000384|PLC|FAULT|[COD 002115] - 498 CARICO MASSIMO SUL MANDRINO SUPERATO SOGLIA S6 +000385|PLC|FAULT|[COD 002116] - 505 MOVIMENTO CONSENTITO Z+ +000386|PLC|FAULT|[COD 002117] - 545 ASSE Z NON IN POSIZIONE +000387|PLC|FAULT|[COD 002118] - 528 MODALITA PROVA PROGRAMMA ATTIVA +000388|PLC|FAULT|[COD 002119] - 351 MESSAGGI PLC INVIATO SMS +000389|PLC|FAULT|[COD 002120] - 603 INDICARE IL NOME DELL OPERATORE E CAUSA ARRESTO MACCHINA +000390|PLC|FAULT|[COD 002121] - 538 TAVOLA NON POSIZIONATA +000391|PLC|FAULT|[COD 002122] - 595 BARRIERE DI SICUREZZA +000392|PLC|FAULT|[COD 002123] - 689 AVVISO TOOLTABLE - T INTERPRETATA COME MANINA +000393|PLC|FAULT|[COD 002124] - 689 AVVISO TOOLTABLE - T INTERPRETATA COME ID UTENSILE +000394|PLC|FAULT|[COD 002125] - 260 REGOLAZIONE AUTOMATICA FEED OVERRIDE IN CORSO +000395|PLC|FAULT|[COD 002126] - 464 VITA UTENSILE ESAURITA +000396|PLC|FAULT|[COD 002127] - 003 SEI SICURO DI VOLER CAMBIARE ORIGINE ? PREMERE SOFTKEY SI O RESET +000397|PLC|FAULT|[COD 002128] - 305 BLOCCAGGIO A DEPRESSIONE 1 INEFFICIENTE +000398|PLC|FAULT|[COD 002129] - 305 BLOCCAGGIO A DEPRESSIONE 2 INEFFICIENTE +000399|PLC|FAULT|[COD 002130] - 300 BLOCCAGGIO A PRESSIONE 1 INEFFICIENTE +000400|PLC|FAULT|[COD 002131] - 300 BLOCCAGGIO A PRESSIONE 2 INEFFICIENTE +000401|PLC|FAULT|[COD 002132] - 305 BLOCCAGGIO A DEPRESSIONE SUPPLEMENTARE 1 INEFFICIENTE +000402|PLC|FAULT|[COD 002133] - 305 BLOCCAGGIO A DEPRESSIONE SUPPLEMENTARE 2 INEFFICIENTE +000403|PLC|FAULT|[COD 002134] - 584 PORTE DI SICUREZZA 1 NON CHIUSE +000404|PLC|FAULT|[COD 002135] - 584 PORTE DI SICUREZZA 2 NON CHIUSE +000405|PLC|FAULT|[COD 002136] - 406 PULSANTE POWER-OFF PREMUTO +000406|PLC|FAULT|[COD 002137] - 412 AZZERAMENTO AUTOMATICO ASSI IN CORSO +000407|PLC|FAULT|[COD 002138] - 689 AVVISO TOOLTABLE - RICHIESTA CONFERMA ATTREZZAGGIO +000408|PLC|FAULT|[COD 002139] - 700 TABELLE IN MODIFICA +000409|PLC|FAULT|[COD 002140] - 442 MAGAZZINO DISCO MOBILE NON IN POSIZIONE +000410|PLC|FAULT|[COD 002141] - 442 MAGAZZINO PICK-UP 1 NON IN POSIZIONE +000411|PLC|FAULT|[COD 002142] - 442 MAGAZZINO PICK-UP 2 NON IN POSIZIONE +000412|PLC|FAULT|[COD 002143] - 442 MAGAZINO LATERALE 1 NON IN POSIZIONE +000413|PLC|FAULT|[COD 002144] - 442 MAGAZINO LATERALE 2 NON IN POSIZIONE +000414|PLC|FAULT|[COD 002145] - 514 PROTEZIONE MAGAZZINO PICK-UP 1 NON IN POSIZIONE +000415|PLC|FAULT|[COD 002146] - 514 PROTEZIONE MAGAZZINO PICK-UP 2 NON IN POSIZIONE +000416|PLC|FAULT|[COD 002147] - 514 PROTEZIONE MAGAZZINO LATERALE 1 NON IN POSIZIONE +000417|PLC|FAULT|[COD 002148] - 514 PROTEZIONE MAGAZZINO LATERALE 2 NON IN POSIZIONE +000418|PLC|FAULT|[COD 002149] - 334 ERRORE COMUNICAZIONE CANBUS +000419|PLC|FAULT|[COD 002150] - 147 CAMBIO UTENSILE 1 IN ALLARME +000420|PLC|FAULT|[COD 002151] - 160 AZIONAMENTO CAMBIO UTENSILE 1 NON PRONTO +000421|PLC|FAULT|[COD 002152] - 151 AZIONAMENTO CAMBIO UTENSILE 1 NON ALIMENTATO +000422|PLC|FAULT|[COD 002153] - 442 MAGAZZINO UTENSILI DISCO 1 NON IN POSIZIONE +000423|PLC|FAULT|[COD 002154] - 289 ATTREZZAGGIO CAMBIO UTENSILE 1 IN CORSO +000424|PLC|FAULT|[COD 002155] - 584 PORTA DI SICUREZZA MAGAZZINO DISCO 1 NON CHIUSA +000425|PLC|FAULT|[COD 002156] - 514 PROTEZIONE MAGAZZINO DISCO 1 NON IN POSIZIONE +000426|PLC|FAULT|[COD 002157] - 147 CAMBIO UTENSILE 2 IN ALLARME +000427|PLC|FAULT|[COD 002158] - 160 AZIONAMENTO CAMBIO UTENSILE 2 NON PRONTO +000428|PLC|FAULT|[COD 002159] - 151 AZIONAMENTO CAMBIO UTENSILE 2 NON ALIMENTATO +000429|PLC|FAULT|[COD 002160] - 442 MAGAZZINO UTENSILI DISCO 2 NON IN POSIZIONE +000430|PLC|FAULT|[COD 002161] - 289 ATTREZZAGGIO CAMBIO UTENSILE 2 IN CORSO +000431|PLC|FAULT|[COD 002162] - 584 PORTA DI SICUREZZA MAGAZZINO DISCO 2 NON CHIUSA +000432|PLC|FAULT|[COD 002163] - 514 PROTEZIONE MAGAZZINO DISCO 2 NON IN POSIZIONE +000433|PLC|FAULT|[COD 002164] - +000434|PLC|FAULT|[COD 002165] - 550 GRUPPO DI FORATURA NON IN POSIZIONE +000435|PLC|FAULT|[COD 002166] - ... +000436|PLC|FAULT|[COD 002167] - ... +000437|PLC|FAULT|[COD 002168] - ... +000438|PLC|FAULT|[COD 002169] - ... +000439|PLC|FAULT|[COD 002170] - 250 CICLO DI ATTREZZAGGIO AUTOMATICO IN CORSO +000440|PLC|FAULT|[COD 002171] - 251 CICLO DI ATTREZZAGGIO AUTOMATICO INTERROTTO +000441|PLC|FAULT|[COD 002172] - 605 DISPOSITIVO DI REGISTRAZIONE DATI UTENSILI NON IN POSIZIONE +000442|PLC|FAULT|[COD 002173] - ... +000443|PLC|FAULT|[COD 002174] - ... +000444|PLC|FAULT|[COD 002175] - ... +000445|PLC|FAULT|[COD 002176] - 130 DISPOSITIVO MONITORAGGIO NON PRONTO +000446|PLC|FAULT|[COD 002177] - 773 LIMITE 1 MONITORAGGIO NON OK +000447|PLC|FAULT|[COD 002178] - 773 LIMITE 2 MONITORAGGIO NON OK +000448|PLC|FAULT|[COD 002179] - 773 LIMITE 3 MONITORAGGIO NON OK +000449|PLC|FAULT|[COD 002180] - ... +000450|PLC|FAULT|[COD 002181] - +000451|PLC|FAULT|[COD 002182] - +000452|PLC|FAULT|[COD 002183] - +000453|PLC|FAULT|[COD 002184] - +000454|PLC|FAULT|[COD 002185] - +000455|PLC|FAULT|[COD 002186] - +000456|PLC|FAULT|[COD 002187] - +000457|PLC|FAULT|[COD 002188] - +000458|PLC|FAULT|[COD 002189] - +000459|PLC|FAULT|[COD 002190] - +000460|PLC|FAULT|[COD 002191] - +000461|PLC|FAULT|[COD 002192] - +000462|PLC|FAULT|[COD 002193] - +000463|PLC|FAULT|[COD 002194] - +000464|PLC|FAULT|[COD 002195] - +000465|PLC|FAULT|[COD 000000] - +000466|PLC|FAULT|[COD 000000] - +000467|PLC|FAULT|[COD 000000] - +000468|PLC|FAULT|[COD 000000] - +000469|PLC|FAULT|[COD 000000] - +000470|PLC|FAULT|[COD 000000] - +000471|PLC|FAULT|[COD 000000] - +000472|PLC|FAULT|[COD 000000] - +000473|PLC|FAULT|[COD 000000] - +000474|PLC|FAULT|[COD 000000] - +000475|PLC|FAULT|[COD 000000] - +000476|PLC|FAULT|[COD 000000] - +000477|PLC|FAULT|[COD 000000] - +000478|PLC|FAULT|[COD 000000] - +000479|PLC|FAULT|[COD 000000] - +000480|PLC|FAULT|[COD 000000] - +000481|PLC|FAULT|[COD 000000] - +000482|PLC|FAULT|[COD 000000] - +000483|PLC|FAULT|[COD 000000] - +000484|PLC|FAULT|[COD 000000] - +000485|PLC|FAULT|[COD 000000] - +000486|PLC|FAULT|[COD 000000] - +000487|PLC|FAULT|[COD 000000] - +000488|PLC|FAULT|[COD 000000] - +000489|PLC|FAULT|[COD 000000] - +000490|PLC|FAULT|[COD 000000] - +000491|PLC|FAULT|[COD 000000] - +000492|PLC|FAULT|[COD 000000] - +000493|PLC|FAULT|[COD 000000] - +000494|PLC|FAULT|[COD 000000] - +000495|PLC|FAULT|[COD 000000] - +000496|PLC|FAULT|[COD 000000] - +000497|PLC|FAULT|[COD 000000] - +000498|PLC|FAULT|[COD 000000] - +000499|PLC|FAULT|[COD 000000] - +000500|PLC|FAULT|[COD 000000] - +000501|PLC|FAULT|[COD 000000] - +000502|PLC|FAULT|[COD 000000] - +000503|PLC|FAULT|[COD 000000] - +000504|PLC|FAULT|[COD 000000] - +000505|PLC|FAULT|[COD 000000] - +000506|PLC|FAULT|[COD 000000] - +000507|PLC|FAULT|[COD 000000] - +000508|PLC|FAULT|[COD 000000] - +000509|PLC|FAULT|[COD 000000] - +000510|PLC|FAULT|[COD 000000] - +000511|PLC|FAULT|[COD 000000] - +000512|PLC|FAULT|[COD 000000] - +000513|PLC|FAULT|[COD 000000] - +000514|PLC|FAULT|[COD 000000] - +000515|PLC|FAULT|[COD 000000] - +000516|PLC|FAULT|[COD 000000] - +000517|PLC|FAULT|[COD 000000] - +000518|PLC|FAULT|[COD 000000] - +000519|PLC|FAULT|[COD 000000] - +000520|PLC|FAULT|[COD 000000] - +000521|PLC|FAULT|[COD 000000] - +000522|PLC|FAULT|[COD 000000] - +000523|PLC|FAULT|[COD 000000] - +000524|PLC|FAULT|[COD 000000] - +000525|PLC|FAULT|[COD 000000] - +000526|PLC|FAULT|[COD 000000] - +000527|PLC|FAULT|[COD 000000] - +000528|PLC|FAULT|[COD 000000] - +000529|PLC|FAULT|[COD 000000] - +000530|PLC|FAULT|[COD 000000] - +000531|PLC|FAULT|[COD 000000] - +000532|PLC|FAULT|[COD 000000] - +000533|PLC|FAULT|[COD 000000] - +000534|PLC|FAULT|[COD 000000] - +000535|PLC|FAULT|[COD 000000] - +000536|PLC|FAULT|[COD 000000] - +000537|PLC|FAULT|[COD 000000] - +000538|PLC|FAULT|[COD 000000] - +000539|PLC|FAULT|[COD 000000] - +000540|PLC|FAULT|[COD 000000] - +000541|PLC|FAULT|[COD 000000] - +000542|PLC|FAULT|[COD 000000] - +000543|PLC|FAULT|[COD 000000] - +000544|PLC|FAULT|[COD 000000] - +000545|PLC|FAULT|[COD 000000] - +000546|PLC|FAULT|[COD 000000] - +000547|PLC|FAULT|[COD 000000] - +000548|PLC|FAULT|[COD 000000] - +000549|PLC|FAULT|[COD 000000] - +000550|PLC|FAULT|[COD 000000] - +000551|PLC|FAULT|[COD 000000] - +000552|PLC|FAULT|[COD 000000] - +000553|PLC|FAULT|[COD 000000] - +000554|PLC|FAULT|[COD 000000] - +000555|PLC|FAULT|[COD 000000] - +000556|PLC|FAULT|[COD 000000] - +000557|PLC|FAULT|[COD 000000] - +000558|PLC|FAULT|[COD 000000] - +000559|PLC|FAULT|[COD 000000] - +000560|PLC|FAULT|[COD 000000] - +000561|PLC|FAULT|[COD 000000] - +000562|PLC|FAULT|[COD 000000] - +000563|PLC|FAULT|[COD 000000] - +000564|PLC|FAULT|[COD 000000] - +000565|PLC|FAULT|[COD 000000] - +000566|PLC|FAULT|[COD 000000] - +000567|PLC|FAULT|[COD 000000] - +000568|PLC|FAULT|[COD 000000] - +000569|PLC|FAULT|[COD 000000] - +000570|PLC|FAULT|[COD 000000] - +000571|PLC|FAULT|[COD 000000] - +000572|PLC|FAULT|[COD 000000] - +000573|PLC|FAULT|[COD 000000] - +000574|PLC|FAULT|[COD 000000] - +000575|PLC|FAULT|[COD 000000] - +000576|PLC|FAULT|[COD 000000] - +000577|PLC|FAULT|[COD 000000] - +000578|PLC|FAULT|[COD 000000] - +000579|PLC|FAULT|[COD 000000] - +000580|PLC|FAULT|[COD 000000] - +000581|PLC|FAULT|[COD 000000] - +000582|PLC|FAULT|[COD 000000] - +000583|PLC|FAULT|[COD 000000] - +000584|PLC|FAULT|[COD 000000] - +000585|PLC|FAULT|[COD 000000] - +000586|PLC|FAULT|[COD 000000] - +000587|PLC|FAULT|[COD 000000] - +000588|PLC|FAULT|[COD 000000] - +000589|PLC|FAULT|[COD 000000] - +000590|PLC|FAULT|[COD 000000] - +000591|PLC|FAULT|[COD 000000] - +000592|PLC|FAULT|[COD 000000] - +000593|PLC|FAULT|[COD 000000] - +000594|PLC|FAULT|[COD 000000] - +000595|PLC|FAULT|[COD 000000] - +000596|PLC|FAULT|[COD 000000] - +000597|PLC|FAULT|[COD 000000] - +000598|PLC|FAULT|[COD 000000] - +000599|PLC|FAULT|[COD 000000] - +000600|PLC|FAULT|[COD 000000] - +000601|PLC|FAULT|[COD 000000] - +000602|PLC|FAULT|[COD 000000] - +000603|PLC|FAULT|[COD 000000] - +000604|PLC|FAULT|[COD 000000] - +000605|PLC|FAULT|[COD 000000] - +000606|PLC|FAULT|[COD 000000] - +000607|PLC|FAULT|[COD 000000] - +000608|PLC|FAULT|[COD 000000] - +000609|PLC|FAULT|[COD 000000] - +000610|PLC|FAULT|[COD 000000] - +000611|PLC|FAULT|[COD 000000] - +000612|PLC|FAULT|[COD 000000] - +000613|PLC|FAULT|[COD 000000] - +000614|PLC|FAULT|[COD 000000] - +000615|PLC|FAULT|[COD 000000] - +000616|PLC|FAULT|[COD 000000] - +000617|PLC|FAULT|[COD 000000] - +000618|PLC|FAULT|[COD 000000] - +000619|PLC|FAULT|[COD 000000] - +000620|PLC|FAULT|[COD 000000] - +000621|PLC|FAULT|[COD 000000] - +000622|PLC|FAULT|[COD 000000] - +000623|PLC|FAULT|[COD 000000] - +000624|PLC|FAULT|[COD 000000] - +000625|PLC|FAULT|[COD 000000] - +000626|PLC|FAULT|[COD 000000] - +000627|PLC|FAULT|[COD 000000] - +000628|PLC|FAULT|[COD 000000] - +000629|PLC|FAULT|[COD 000000] - +000630|PLC|FAULT|[COD 000000] - +000631|PLC|FAULT|[COD 000000] - +000632|PLC|FAULT|[COD 000000] - +000633|PLC|FAULT|[COD 000000] - +000634|PLC|FAULT|[COD 000000] - +000635|PLC|FAULT|[COD 000000] - +000636|PLC|FAULT|[COD 000000] - +000637|PLC|FAULT|[COD 000000] - +000638|PLC|FAULT|[COD 000000] - +000639|PLC|FAULT|[COD 000000] - +000640|PLC|FAULT|[COD 000000] - +000641|PLC|FAULT|[COD 000000] - +000642|PLC|FAULT|[COD 000000] - +000643|PLC|FAULT|[COD 000000] - +000644|PLC|FAULT|[COD 000000] - +000645|PLC|FAULT|[COD 000000] - +000646|PLC|FAULT|[COD 000000] - +000647|PLC|FAULT|[COD 000000] - +000648|PLC|FAULT|[COD 000000] - +000649|PLC|FAULT|[COD 000000] - +000650|PLC|FAULT|[COD 000000] - +000651|PLC|FAULT|[COD 000000] - +000652|PLC|FAULT|[COD 000000] - +000653|PLC|FAULT|[COD 000000] - +000654|PLC|FAULT|[COD 000000] - +000655|PLC|FAULT|[COD 000000] - +000656|PLC|FAULT|[COD 000000] - +000657|PLC|FAULT|[COD 000000] - +000658|PLC|FAULT|[COD 000000] - +000659|PLC|FAULT|[COD 000000] - +000660|PLC|FAULT|[COD 000000] - +000661|PLC|FAULT|[COD 000000] - +000662|PLC|FAULT|[COD 000000] - +000663|PLC|FAULT|[COD 000000] - +000664|PLC|FAULT|[COD 000000] - +000665|PLC|FAULT|[COD 000000] - +000666|PLC|FAULT|[COD 000000] - +000667|PLC|FAULT|[COD 000000] - +000668|PLC|FAULT|[COD 000000] - +000669|PLC|FAULT|[COD 000000] - +000670|PLC|FAULT|[COD 000000] - +000671|PLC|FAULT|[COD 000000] - +000672|PLC|FAULT|[COD 000000] - +000673|PLC|FAULT|[COD 000000] - +000674|PLC|FAULT|[COD 000000] - +000675|PLC|FAULT|[COD 000000] - +000676|PLC|FAULT|[COD 000000] - +000677|PLC|FAULT|[COD 000000] - +000678|PLC|FAULT|[COD 000000] - +000679|PLC|FAULT|[COD 000000] - +000680|PLC|FAULT|[COD 000000] - +000681|PLC|FAULT|[COD 000000] - +000682|PLC|FAULT|[COD 000000] - +000683|PLC|FAULT|[COD 000000] - +000684|PLC|FAULT|[COD 000000] - +000685|PLC|FAULT|[COD 000000] - +000686|PLC|FAULT|[COD 000000] - +000687|PLC|FAULT|[COD 000000] - +000688|PLC|FAULT|[COD 000000] - +000689|PLC|FAULT|[COD 000000] - +000690|PLC|FAULT|[COD 000000] - +000691|PLC|FAULT|[COD 000000] - +000692|PLC|FAULT|[COD 000000] - +000693|PLC|FAULT|[COD 000000] - +000694|PLC|FAULT|[COD 000000] - +000695|PLC|FAULT|[COD 000000] - +000696|PLC|FAULT|[COD 000000] - +000697|PLC|FAULT|[COD 000000] - +000698|PLC|FAULT|[COD 000000] - +000699|PLC|FAULT|[COD 000000] - +000700|PLC|FAULT|[COD 000000] - +000701|PLC|FAULT|[COD 000000] - +000702|PLC|FAULT|[COD 000000] - +000703|PLC|FAULT|[COD 000000] - +000704|PLC|FAULT|[COD 000000] - +000705|PLC|FAULT|[COD 000000] - +000706|PLC|FAULT|[COD 000000] - +000707|PLC|FAULT|[COD 000000] - +000708|PLC|FAULT|[COD 000000] - +000709|PLC|FAULT|[COD 000000] - +000710|PLC|FAULT|[COD 000000] - +000711|PLC|FAULT|[COD 000000] - +000712|PLC|FAULT|[COD 000000] - +000713|PLC|FAULT|[COD 000000] - +000714|PLC|FAULT|[COD 000000] - +000715|PLC|FAULT|[COD 000000] - +000716|PLC|FAULT|[COD 000000] - +000717|PLC|FAULT|[COD 000000] - +000718|PLC|FAULT|[COD 000000] - +000719|PLC|FAULT|[COD 000000] - +000720|PLC|FAULT|[COD 000000] - +000721|PLC|FAULT|[COD 000000] - +000722|PLC|FAULT|[COD 000000] - +000723|PLC|FAULT|[COD 000000] - +000724|PLC|FAULT|[COD 000000] - +000725|PLC|FAULT|[COD 000000] - +000726|PLC|FAULT|[COD 000000] - +000727|PLC|FAULT|[COD 000000] - +000728|PLC|FAULT|[COD 000000] - +000729|PLC|FAULT|[COD 000000] - +000730|PLC|FAULT|[COD 000000] - +000731|PLC|FAULT|[COD 000000] - +000732|PLC|FAULT|[COD 000000] - +000733|PLC|FAULT|[COD 000000] - +000734|PLC|FAULT|[COD 000000] - +000735|PLC|FAULT|[COD 000000] - +000736|PLC|FAULT|[COD 000000] - +000737|PLC|FAULT|[COD 000000] - +000738|PLC|FAULT|[COD 000000] - +000739|PLC|FAULT|[COD 000000] - +000740|PLC|FAULT|[COD 000000] - +000741|PLC|FAULT|[COD 000000] - +000742|PLC|FAULT|[COD 000000] - +000743|PLC|FAULT|[COD 000000] - +000744|PLC|FAULT|[COD 000000] - +000745|PLC|FAULT|[COD 000000] - +000746|PLC|FAULT|[COD 000000] - +000747|PLC|FAULT|[COD 000000] - +000748|PLC|FAULT|[COD 000000] - +000749|PLC|FAULT|[COD 000000] - +000750|PLC|FAULT|[COD 000000] - +000751|PLC|FAULT|[COD 000000] - +000752|PLC|FAULT|[COD 000000] - +000753|PLC|FAULT|[COD 000000] - +000754|PLC|FAULT|[COD 000000] - +000755|PLC|FAULT|[COD 000000] - +000756|PLC|FAULT|[COD 000000] - +000757|PLC|FAULT|[COD 000000] - +000758|PLC|FAULT|[COD 000000] - +000759|PLC|FAULT|[COD 000000] - +000760|PLC|FAULT|[COD 000000] - +000761|PLC|FAULT|[COD 000000] - +000762|PLC|FAULT|[COD 000000] - +000763|PLC|FAULT|[COD 000000] - +000764|PLC|FAULT|[COD 000000] - +000765|PLC|FAULT|[COD 000000] - +000766|PLC|FAULT|[COD 000000] - +000767|PLC|FAULT|[COD 000000] - +000768|PLC|FAULT|[COD 000000] - +000769|PLC|FAULT|[COD 000000] - +000770|PLC|FAULT|[COD 000000] - +000771|PLC|FAULT|[COD 000000] - +000772|PLC|FAULT|[COD 000000] - +000773|PLC|FAULT|[COD 000000] - +000774|PLC|FAULT|[COD 000000] - +000775|PLC|FAULT|[COD 000000] - +000776|PLC|FAULT|[COD 000000] - +000777|PLC|FAULT|[COD 000000] - +000778|PLC|FAULT|[COD 000000] - +000779|PLC|FAULT|[COD 000000] - +000780|PLC|FAULT|[COD 000000] - +000781|PLC|FAULT|[COD 000000] - +000782|PLC|FAULT|[COD 000000] - +000783|PLC|FAULT|[COD 000000] - +000784|PLC|FAULT|[COD 000000] - +000785|PLC|FAULT|[COD 000000] - +000786|PLC|FAULT|[COD 000000] - +000787|PLC|FAULT|[COD 000000] - +000788|PLC|FAULT|[COD 000000] - +000789|PLC|FAULT|[COD 000000] - +000790|PLC|FAULT|[COD 000000] - +000791|PLC|FAULT|[COD 000000] - +000792|PLC|FAULT|[COD 000000] - +000793|PLC|FAULT|[COD 000000] - +000794|PLC|FAULT|[COD 000000] - +000795|PLC|FAULT|[COD 000000] - +000796|PLC|FAULT|[COD 000000] - +000797|PLC|FAULT|[COD 000000] - +000798|PLC|FAULT|[COD 000000] - +000799|PLC|FAULT|[COD 000000] - +000800|PLC|FAULT|[COD 000000] - +000801|PLC|FAULT|[COD 000000] - +000802|PLC|FAULT|[COD 000000] - +000803|PLC|FAULT|[COD 000000] - +000804|PLC|FAULT|[COD 000000] - +000805|PLC|FAULT|[COD 000000] - +000806|PLC|FAULT|[COD 000000] - +000807|PLC|FAULT|[COD 000000] - +000808|PLC|FAULT|[COD 000000] - +000809|PLC|FAULT|[COD 000000] - +000810|PLC|FAULT|[COD 000000] - +000811|PLC|FAULT|[COD 000000] - +000812|PLC|FAULT|[COD 000000] - +000813|PLC|FAULT|[COD 000000] - +000814|PLC|FAULT|[COD 000000] - +000815|PLC|FAULT|[COD 000000] - +000816|PLC|FAULT|[COD 000000] - +000817|PLC|FAULT|[COD 000000] - +000818|PLC|FAULT|[COD 000000] - +000819|PLC|FAULT|[COD 000000] - +000820|PLC|FAULT|[COD 000000] - +000821|PLC|FAULT|[COD 000000] - +000822|PLC|FAULT|[COD 000000] - +000823|PLC|FAULT|[COD 000000] - +000824|PLC|FAULT|[COD 000000] - +000825|PLC|FAULT|[COD 000000] - +000826|PLC|FAULT|[COD 000000] - +000827|PLC|FAULT|[COD 000000] - +000828|PLC|FAULT|[COD 000000] - +000829|PLC|FAULT|[COD 000000] - +000830|PLC|FAULT|[COD 000000] - +000831|PLC|FAULT|[COD 000000] - +000832|PLC|FAULT|[COD 000000] - +000833|PLC|FAULT|[COD 000000] - +000834|PLC|FAULT|[COD 000000] - +000835|PLC|FAULT|[COD 000000] - +000836|PLC|FAULT|[COD 000000] - +000837|PLC|FAULT|[COD 000000] - +000838|PLC|FAULT|[COD 000000] - +000839|PLC|FAULT|[COD 000000] - +000840|PLC|FAULT|[COD 000000] - +000841|PLC|FAULT|[COD 000000] - +000842|PLC|FAULT|[COD 000000] - +000843|PLC|FAULT|[COD 000000] - +000844|PLC|FAULT|[COD 000000] - +000845|PLC|FAULT|[COD 000000] - +000846|PLC|FAULT|[COD 000000] - +000847|PLC|FAULT|[COD 000000] - +000848|PLC|FAULT|[COD 000000] - +000849|PLC|FAULT|[COD 000000] - +000850|PLC|FAULT|[COD 000000] - +000851|PLC|FAULT|[COD 000000] - +000852|PLC|FAULT|[COD 000000] - +000853|PLC|FAULT|[COD 000000] - +000854|PLC|FAULT|[COD 000000] - +000855|PLC|FAULT|[COD 000000] - +000856|PLC|FAULT|[COD 000000] - +000857|PLC|FAULT|[COD 000000] - +000858|PLC|FAULT|[COD 000000] - +000859|PLC|FAULT|[COD 000000] - +000860|PLC|FAULT|[COD 000000] - +000861|PLC|FAULT|[COD 000000] - +000862|PLC|FAULT|[COD 000000] - +000863|PLC|FAULT|[COD 000000] - +000864|PLC|FAULT|[COD 000000] - +000865|PLC|FAULT|[COD 000000] - +000866|PLC|FAULT|[COD 000000] - +000867|PLC|FAULT|[COD 000000] - +000868|PLC|FAULT|[COD 000000] - +000869|PLC|FAULT|[COD 000000] - +000870|PLC|FAULT|[COD 000000] - +000871|PLC|FAULT|[COD 000000] - +000872|PLC|FAULT|[COD 000000] - +000873|PLC|FAULT|[COD 000000] - +000874|PLC|FAULT|[COD 000000] - +000875|PLC|FAULT|[COD 000000] - +000876|PLC|FAULT|[COD 000000] - +000877|PLC|FAULT|[COD 000000] - +000878|PLC|FAULT|[COD 000000] - +000879|PLC|FAULT|[COD 000000] - +000880|PLC|FAULT|[COD 000000] - +000881|PLC|FAULT|[COD 000000] - +000882|PLC|FAULT|[COD 000000] - +000883|PLC|FAULT|[COD 000000] - +000884|PLC|FAULT|[COD 000000] - +000885|PLC|FAULT|[COD 000000] - +000886|PLC|FAULT|[COD 000000] - +000887|PLC|FAULT|[COD 000000] - +000888|PLC|FAULT|[COD 000000] - +000889|PLC|FAULT|[COD 000000] - +000890|PLC|FAULT|[COD 000000] - +000891|PLC|FAULT|[COD 000000] - +000892|PLC|FAULT|[COD 000000] - +000893|PLC|FAULT|[COD 000000] - +000894|PLC|FAULT|[COD 000000] - +000895|PLC|FAULT|[COD 000000] - +000896|PLC|FAULT|[COD 000000] - +000897|PLC|FAULT|[COD 000000] - +000898|PLC|FAULT|[COD 000000] - +000899|PLC|FAULT|[COD 000000] - +000900|PLC|FAULT|[COD 000000] - +000901|PLC|FAULT|[COD 000000] - +000902|PLC|FAULT|[COD 000000] - +000903|PLC|FAULT|[COD 000000] - +000904|PLC|FAULT|[COD 000000] - +000905|PLC|FAULT|[COD 000000] - +000906|PLC|FAULT|[COD 000000] - +000907|PLC|FAULT|[COD 000000] - +000908|PLC|FAULT|[COD 000000] - +000909|PLC|FAULT|[COD 000000] - +000910|PLC|FAULT|[COD 000000] - +000911|PLC|FAULT|[COD 000000] - +000912|PLC|FAULT|[COD 000000] - +000913|PLC|FAULT|[COD 000000] - +000914|PLC|FAULT|[COD 000000] - +000915|PLC|FAULT|[COD 000000] - +000916|PLC|FAULT|[COD 000000] - +000917|PLC|FAULT|[COD 000000] - +000918|PLC|FAULT|[COD 000000] - +000919|PLC|FAULT|[COD 000000] - +000920|PLC|FAULT|[COD 000000] - +000921|PLC|FAULT|[COD 000000] - +000922|PLC|FAULT|[COD 000000] - +000923|PLC|FAULT|[COD 000000] - +000924|PLC|FAULT|[COD 000000] - +000925|PLC|FAULT|[COD 000000] - +000926|PLC|FAULT|[COD 000000] - +000927|PLC|FAULT|[COD 000000] - +000928|PLC|FAULT|[COD 000000] - +000929|PLC|FAULT|[COD 000000] - +000930|PLC|FAULT|[COD 000000] - +000931|PLC|FAULT|[COD 000000] - +000932|PLC|FAULT|[COD 000000] - +000933|PLC|FAULT|[COD 000000] - +000934|PLC|FAULT|[COD 000000] - +000935|PLC|FAULT|[COD 000000] - +000936|PLC|FAULT|[COD 000000] - +000937|PLC|FAULT|[COD 000000] - +000938|PLC|FAULT|[COD 000000] - +000939|PLC|FAULT|[COD 000000] - +000940|PLC|FAULT|[COD 000000] - +000941|PLC|FAULT|[COD 000000] - +000942|PLC|FAULT|[COD 000000] - +000943|PLC|FAULT|[COD 000000] - +000944|PLC|FAULT|[COD 000000] - +000945|PLC|FAULT|[COD 000000] - +000946|PLC|FAULT|[COD 000000] - +000947|PLC|FAULT|[COD 000000] - +000948|PLC|FAULT|[COD 000000] - +000949|PLC|FAULT|[COD 000000] - +000950|PLC|FAULT|[COD 000000] - +000951|PLC|FAULT|[COD 000000] - +000952|PLC|FAULT|[COD 000000] - +000953|PLC|FAULT|[COD 000000] - +000954|PLC|FAULT|[COD 000000] - +000955|PLC|FAULT|[COD 000000] - +000956|PLC|FAULT|[COD 000000] - +000957|PLC|FAULT|[COD 000000] - +000958|PLC|FAULT|[COD 000000] - +000959|PLC|FAULT|[COD 000000] - +000960|PLC|FAULT|[COD 000000] - +000961|PLC|FAULT|[COD 000000] - +000962|PLC|FAULT|[COD 000000] - +000963|PLC|FAULT|[COD 000000] - +000964|PLC|FAULT|[COD 000000] - +000965|PLC|FAULT|[COD 000000] - +000966|PLC|FAULT|[COD 000000] - +000967|PLC|FAULT|[COD 000000] - +000968|PLC|FAULT|[COD 000000] - +000969|PLC|FAULT|[COD 000000] - +000970|PLC|FAULT|[COD 000000] - +000971|PLC|FAULT|[COD 000000] - +000972|PLC|FAULT|[COD 000000] - +000973|PLC|FAULT|[COD 000000] - +000974|PLC|FAULT|[COD 000000] - +000975|PLC|FAULT|[COD 000000] - +000976|PLC|FAULT|[COD 000000] - +000977|PLC|FAULT|[COD 000000] - +000978|PLC|FAULT|[COD 000000] - +000979|PLC|FAULT|[COD 000000] - +000980|PLC|FAULT|[COD 000000] - +000981|PLC|FAULT|[COD 000000] - +000982|PLC|FAULT|[COD 000000] - +000983|PLC|FAULT|[COD 000000] - +000984|PLC|FAULT|[COD 000000] - +000985|PLC|FAULT|[COD 000000] - +000986|PLC|FAULT|[COD 000000] - +000987|PLC|FAULT|[COD 000000] - +000988|PLC|FAULT|[COD 000000] - +000989|PLC|FAULT|[COD 000000] - +000990|PLC|FAULT|[COD 000000] - +000991|PLC|FAULT|[COD 000000] - +000992|PLC|FAULT|[COD 000000] - +000993|PLC|FAULT|[COD 000000] - +000994|PLC|FAULT|[COD 000000] - +000995|PLC|FAULT|[COD 000000] - +000996|PLC|FAULT|[COD 000000] - +000997|PLC|FAULT|[COD 000000] - +000998|PLC|FAULT|[COD 000000] - +000999|PLC|FAULT|[COD 000000] - +001000|PLC|FAULT|[COD 000000] - +001001|PLC|FAULT|[COD 000000] - +001002|PLC|FAULT|[COD 000000] - +001003|PLC|FAULT|[COD 000000] - +001004|PLC|FAULT|[COD 000000] - +001005|PLC|FAULT|[COD 000000] - +001006|PLC|FAULT|[COD 000000] - +001007|PLC|FAULT|[COD 000000] - +001008|PLC|FAULT|[COD 000000] - +001009|PLC|FAULT|[COD 000000] - +001010|PLC|FAULT|[COD 000000] - +001011|PLC|FAULT|[COD 000000] - +001012|PLC|FAULT|[COD 000000] - +001013|PLC|FAULT|[COD 000000] - +001014|PLC|FAULT|[COD 000000] - +001015|PLC|FAULT|[COD 000000] - +001016|PLC|FAULT|[COD 000000] - +001017|PLC|FAULT|[COD 000000] - +001018|PLC|FAULT|[COD 000000] - +001019|PLC|FAULT|[COD 000000] - +001020|PLC|FAULT|[COD 000000] - +001021|PLC|FAULT|[COD 000000] - +001022|PLC|FAULT|[COD 000000] - +001023|PLC|FAULT|[COD 000000] - +001024|PLC|FAULT|[COD 000000] - \ No newline at end of file diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/EsaKvara.ini b/MTC_Adapter/MTC_Adapter/DATA/CONF/EsaKvara.ini deleted file mode 100644 index 78bda4a..0000000 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/EsaKvara.ini +++ /dev/null @@ -1,90 +0,0 @@ -[MACHINE] -MachineProject=c:\Kvara\Exe\ACCORD40FX_003455_R001701 - -[LIBRARY] -LibraryProject=.\LibDevices - -[COLORS] -Default=C0A0A0 -Black=101010 -Red=FF0000 -White=FFFFFF -Glass=FFFFFF -Yellow=FFFF00 -Pattini=101010 -Pinze=3030A0 -Piedi=101010 -Motori=101010 -Guide=FFCCCC -Cono=5B3F0F -Asta=DD9829 -;Tagliente=C59738 -;Tagliente=STEEL -Tagliente=404040 -Silver=C0C0C0 -Steli=C0C0C0 -Estrusi=C0C0C0 -Gray=808080 -Cappa=303030 -Morsetto=FF8040 -Piatto=6F6F6F -Blue=00FFFF -Tools=0000FF - -;[SETUP] -;SimDelay=0 -;UpdateFPS=0 -;CollisionImagesPath=c:\kvara\XSimShared\CollImages\ -;; 1=Virtual 2=NUM 3=Osai 4=EsaGv 5=File -;DeviceType=4 -;;CleanSolids=1 -;Title=Maestro SIM - Accord INT -;UseDateForCollisionsImages=1 -;Language=it-IT -;Debug=1 - -[NC] -;BufferFileName=.\Integra1.MEM -UseHexPlcAddr=0 -; formato 1=NUM 2=OSAI 3=ESA -; indirizzo del primo byte di stato -StatusAddress=SIMWRITE[0] -StatusNumber=401 -; indirizzo di memoria del primo byte di scrittura dati -CommandsAddress=SIMREAD[0] -CommandsNumber=10 -; indirizzo di memoria AreaV -VAreaAddress=V -VAreaNumber=10 -; area EOK -EOKAreaAddress=EOK -EOKAreaNumber=10 -; area ETK -ETKAreaAddress=ETK -ETKAreaNumber=10 -; indirizzo di memoria AreaV -PlcErrAreaAddress=V -PlcErrAreaNumber=10 -; offset del registro per l'indice di collisione -CollisionIndex=6.L -; ritardo nella lettura dal plc -PlcDelay=50 - -; <-- deve essere produzione?!? o che valore? -SysLink=SIMULATO - -SysDefCn=C:\KVARA\DISCOI -;BufferFileName= -;MemoryFormat=2 -; modo sincronizzato con il plc -;PlcSyncAddress=2103 - - -[XILOG] -Enable=1 -SharedFolder=c:\kvara\XSimShared\ - -[DISPLAY] -HideShowModeButtons=1 -HideOrthographicMode=1 -HideOptionsTab=1 diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/SCM_prodFile.pro b/MTC_Adapter/MTC_Adapter/DATA/CONF/SCM_prodFile.pro deleted file mode 100644 index d8c39b0..0000000 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/SCM_prodFile.pro +++ /dev/null @@ -1,6 +0,0 @@ -09,23,53,00076 -AB,C:\Programme\Scm Group\Xilog Plus\Job\PRGCANTEST.PGM,,1600,600,50,13,14,23,13,18,47,00,03,03,00,04,05,2,00,01,31,50 -AB,C:\Programme\Scm Group\Xilog Plus\Job\PRGCANTEST.PGM,,1600,600,50,13,38,39,13,41,16,00,02,37,00,02,40,1,00,02,37,00 -AB,C:\Programme\Scm Group\Xilog Plus\Job\PRGCANTEST.PGM,,1600,600,50,13,57,11,14,02,53,00,03,50,00,03,53,1,00,03,50,00 -AB,C:\Programme\Scm Group\Xilog Plus\Job\PRGCANTEST.PGM,,1600,600,50,14,32,41,15,07,23,00,34,25,00,34,45,7,00,04,55,00 -AB,C:\Programme\Scm Group\Xilog Plus\Job\PRGCANTEST.PGM,,1600,600,50,15,18,04,00,00,49,08,39,58,08,42,45,65,00,07,59,96 \ No newline at end of file diff --git a/MTC_Adapter/MTC_Adapter/Resources/MTCA.ico b/MTC_Adapter/MTC_Adapter/Resources/MTCA.ico index f989ea3c587962e842dd541eb15a72d619b39f01..6ed8df838101bfffc7b703bfb468e9108f5c3f47 100644 GIT binary patch literal 1150 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 Q!Pv%wX$)WR9JQVOKZcdauK)l5 From 89d1c7d4dc42a0913b297e4f231d3de115ec6c1c Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 2 Mar 2017 11:00:59 +0100 Subject: [PATCH 06/46] refresh: test positivo debug in macchina showroom --- MTC_Adapter/CMSCncLib/CMSCncLib.vbproj | 4 ++++ MTC_Adapter/MTC_Adapter/App.config | 2 +- MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map | 4 ++-- MTC_Adapter/MTC_Adapter/MTC-Adapter.csproj | 2 +- MTC_Adapter/MTC_Adapter/Resources/CMS/AlarmListFANUC.map | 4 ++-- 5 files changed, 10 insertions(+), 6 deletions(-) diff --git a/MTC_Adapter/CMSCncLib/CMSCncLib.vbproj b/MTC_Adapter/CMSCncLib/CMSCncLib.vbproj index e808fa6..715cbca 100644 --- a/MTC_Adapter/CMSCncLib/CMSCncLib.vbproj +++ b/MTC_Adapter/CMSCncLib/CMSCncLib.vbproj @@ -20,6 +20,7 @@ bin\Debug\ CMSCncLib.xml 42016,41999,42017,42018,42019,42032,42036,42020,42021,42022 + FS30D=1 pdbonly @@ -52,6 +53,7 @@ pdbonly AnyCPU MinimumRecommendedRules.ruleset + FS30D=1 true @@ -62,6 +64,7 @@ pdbonly AnyCPU MinimumRecommendedRules.ruleset + FS30D=1 true @@ -72,6 +75,7 @@ pdbonly AnyCPU MinimumRecommendedRules.ruleset + FS30D=1 diff --git a/MTC_Adapter/MTC_Adapter/App.config b/MTC_Adapter/MTC_Adapter/App.config index c255023..8894ba0 100644 --- a/MTC_Adapter/MTC_Adapter/App.config +++ b/MTC_Adapter/MTC_Adapter/App.config @@ -28,7 +28,7 @@ - + diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map index 6698345..c799ba6 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map @@ -377,7 +377,7 @@ 000376|PLC|FAULT|[COD 002107] - 530 PULSANTIERA ESTERNA ABILITATA 000377|PLC|FAULT|[COD 002108] - 504 CAMBIO UTENSILE INTERROTTO 000378|PLC|FAULT|[COD 002109] - 363 MONTANTE CENTRALE ALTO -000379|PLC|FAULT|[COD 002110] - =--- PREALLARME TERMICO TORQUE A +000379|PLC|FAULT|[COD 002110] - --- PREALLARME TERMICO TORQUE A 000380|PLC|FAULT|[COD 002111] - 498 CARICO MASSIMO SUL MANDRINO SUPERATO SOGLIA S1 000381|PLC|FAULT|[COD 002112] - --- PREALLARME TERMICO TORQUE C 000382|PLC|FAULT|[COD 002113] - 432 UTENSILE NON SGANCIATO @@ -431,7 +431,7 @@ 000430|PLC|FAULT|[COD 002161] - 289 ATTREZZAGGIO CAMBIO UTENSILE 2 IN CORSO 000431|PLC|FAULT|[COD 002162] - 584 PORTA DI SICUREZZA MAGAZZINO DISCO 2 NON CHIUSA 000432|PLC|FAULT|[COD 002163] - 514 PROTEZIONE MAGAZZINO DISCO 2 NON IN POSIZIONE -000433|PLC|FAULT|[COD 002164] - +000433|PLC|FAULT|[COD 002164] - ... 000434|PLC|FAULT|[COD 002165] - 550 GRUPPO DI FORATURA NON IN POSIZIONE 000435|PLC|FAULT|[COD 002166] - ... 000436|PLC|FAULT|[COD 002167] - ... diff --git a/MTC_Adapter/MTC_Adapter/MTC-Adapter.csproj b/MTC_Adapter/MTC_Adapter/MTC-Adapter.csproj index a6d0fbe..d8d7c85 100644 --- a/MTC_Adapter/MTC_Adapter/MTC-Adapter.csproj +++ b/MTC_Adapter/MTC_Adapter/MTC-Adapter.csproj @@ -12,6 +12,7 @@ v4.5.2 512 true + false publish\ true Disk @@ -24,7 +25,6 @@ true 0 1.0.0.%2a - false false true diff --git a/MTC_Adapter/MTC_Adapter/Resources/CMS/AlarmListFANUC.map b/MTC_Adapter/MTC_Adapter/Resources/CMS/AlarmListFANUC.map index 6698345..c799ba6 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/CMS/AlarmListFANUC.map +++ b/MTC_Adapter/MTC_Adapter/Resources/CMS/AlarmListFANUC.map @@ -377,7 +377,7 @@ 000376|PLC|FAULT|[COD 002107] - 530 PULSANTIERA ESTERNA ABILITATA 000377|PLC|FAULT|[COD 002108] - 504 CAMBIO UTENSILE INTERROTTO 000378|PLC|FAULT|[COD 002109] - 363 MONTANTE CENTRALE ALTO -000379|PLC|FAULT|[COD 002110] - =--- PREALLARME TERMICO TORQUE A +000379|PLC|FAULT|[COD 002110] - --- PREALLARME TERMICO TORQUE A 000380|PLC|FAULT|[COD 002111] - 498 CARICO MASSIMO SUL MANDRINO SUPERATO SOGLIA S1 000381|PLC|FAULT|[COD 002112] - --- PREALLARME TERMICO TORQUE C 000382|PLC|FAULT|[COD 002113] - 432 UTENSILE NON SGANCIATO @@ -431,7 +431,7 @@ 000430|PLC|FAULT|[COD 002161] - 289 ATTREZZAGGIO CAMBIO UTENSILE 2 IN CORSO 000431|PLC|FAULT|[COD 002162] - 584 PORTA DI SICUREZZA MAGAZZINO DISCO 2 NON CHIUSA 000432|PLC|FAULT|[COD 002163] - 514 PROTEZIONE MAGAZZINO DISCO 2 NON IN POSIZIONE -000433|PLC|FAULT|[COD 002164] - +000433|PLC|FAULT|[COD 002164] - ... 000434|PLC|FAULT|[COD 002165] - 550 GRUPPO DI FORATURA NON IN POSIZIONE 000435|PLC|FAULT|[COD 002166] - ... 000436|PLC|FAULT|[COD 002167] - ... From 1683879573e235e8c4953d077fdf498f5c51cdc8 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 2 Mar 2017 11:43:12 +0100 Subject: [PATCH 07/46] =?UTF-8?q?fix=20errore=20init=20vettore=20allarmi:?= =?UTF-8?q?=20al=20primo=20avvio=20va=20in=20timeout=20rete=20PRIMA=20di?= =?UTF-8?q?=20fare=20prima=20lettura,=20se=20gi=C3=A0=20attivo=20cerca=20d?= =?UTF-8?q?i=20leggere=20PRIAM=20di=20avere=20vettore=20inizializzato,=20c?= =?UTF-8?q?os=C3=AC=20evitiamo=20il=20problema...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MTC_Adapter/MTC_Adapter/AdapterFanuc.cs | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs index 28263c7..7d0721d 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs @@ -565,15 +565,17 @@ namespace MTC_Adapter inizio = DateTime.Now; FanucMemRW(R, FANUC.MemType.R, memIndex, ref MemBlock); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-STRB_DW0", MemBlock.Length), DateTime.Now.Subtract(inizio).Ticks); - - try + if (AlarmFlags != null) { - // aggiorno vettore allarmi x intero! - Buffer.BlockCopy(MemBlock, 0, AlarmFlags, 0, MemBlock.Length); - } - catch (Exception exc) - { - lg.Error(string.Format("Errore in BLOCKCOPY{0}{1}", Environment.NewLine, exc)); + try + { + // aggiorno vettore allarmi x intero! + Buffer.BlockCopy(MemBlock, 0, AlarmFlags, 0, MemBlock.Length); + } + catch (Exception exc) + { + lg.Error(string.Format("Errore in BLOCKCOPY{0}{1}", Environment.NewLine, exc)); + } } } else From 4b070745682c2ee24afc33a028d40e5e36c0bbbe Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 2 Mar 2017 13:46:07 +0100 Subject: [PATCH 08/46] pulizia classe CNC FANUC da calassi inutilizzate --- .../CMSCncLib/CNC/CNC.FANUC/CNC.FANUC.vb | 90 ------------------- MTC_Adapter/CMSCncLib/CNC/CNC/CNC.CNC.vb | 30 ------- .../CMSCncLib/Config/Config.Options.vb | 8 -- 3 files changed, 128 deletions(-) diff --git a/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/CNC.FANUC.vb b/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/CNC.FANUC.vb index 6186eea..76cc323 100644 --- a/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/CNC.FANUC.vb +++ b/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/CNC.FANUC.vb @@ -251,96 +251,6 @@ Namespace CNC Next i End Sub - Public Overrides Function SetCncWindowSize() As Boolean - Dim CncWindowSizeNew As Size - - Select Case Config.Settings.Settings.OpPanel_ScreenSize 'Screen.PrimaryScreen.Bounds.Size - Case New Size(800, 600) '10" - CncWindowSizeNew = New System.Drawing.Size(640, 500) - Case New Size(1024, 768) '15" - CncWindowSizeNew = New System.Drawing.Size(800, 620) - Case New Size(2048, 768) '15" doppio monitor - CncWindowSizeNew = New System.Drawing.Size(800, 620) - Case New Size(1280, 800) '15,6" widescreen - CncWindowSizeNew = New System.Drawing.Size(800, 620) '' - Case New Size(1280, 1024) '17" - CncWindowSizeNew = New System.Drawing.Size(960, 740) - Case Else - CncWindowSizeNew = New System.Drawing.Size(800, 620) - End Select - If _CncWindowSize <> CncWindowSizeNew Then - _CncWindowSize = CncWindowSizeNew - Return True - Else - Return False - End If - End Function - - Public Overrides Sub RunCnc() - Dim szProgramFilesDir As String - Dim szPath As String = "" - Dim szParam As String = "" - Dim key As RegistryKey - Dim myProcess As System.Diagnostics.Process - - If Not FindCncWindow() Then - key = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion") - szProgramFilesDir = key.GetValue("ProgramFilesDir") - - Select Case _CncScreen_connectionType - Case FANUC.ConnectionType.Ethernet - szPath = szProgramFilesDir & "\CNCScreenE\CNCScrnE.exe" - szParam = "/H=" & Config.Settings.Settings.IpFanuc & ":" & CStr(Config.Settings.Settings.PortIpFanuc) & "/T=30" - Case FANUC.ConnectionType.Hssb - szPath = szProgramFilesDir & "\CNCScreen\CNCScrn.exe" - szParam = "" - End Select - - 'ShellExecute(0, "open", szPath, szParam, vbNullString, SW_SHOWNORMAL) - myProcess = System.Diagnostics.Process.Start(szPath, szParam) - End If - End Sub - - Public Overrides Sub CloseCnc() - If FindCncWindow() Then - _CncWindowProcess.Kill() - End If - End Sub - - 'Public Overrides Function FindCncWindow() As Boolean - ' _CncWindowProcess = FindProcess(CncScreen_ProcessName) - ' Return _CncWindowProcess IsNot Nothing - 'End Function - - 'Public Overrides Function CncIsIconic() As Boolean - ' If _CncWindowProcess IsNot Nothing Then - ' Return ProcessIsIconic(_CncWindowProcess.MainWindowHandle) - ' End If - 'End Function - - 'Public Overrides Function CncIsZoomed() As Boolean - ' If _CncWindowProcess IsNot Nothing Then - ' Return ProcessIsZoomed(_CncWindowProcess.MainWindowHandle) - ' End If - 'End Function - - 'Public Overrides Sub MinimizeCnc() - ' MinimizeWindow(CncScreen_ProcessName) - 'End Sub - - 'Public Overrides Sub NormalizeCnc() - ' ShowNormalWindow(CncScreen_ProcessName) - ' MoveWindow(CncScreen_ProcessName, _CncWindowPosition) - 'End Sub - - 'Public Overrides Sub SetCncFocus() - ' SetWindowFocus(CncScreen_ProcessName) - 'End Sub - - 'Public Overrides Sub MoveCnc() - ' MoveWindow(CncScreen_ProcessName, CncWindowPosition, "CNC Screen Display Function") - 'End Sub - ''' ''' Get class series of CNC: 16 or 30 ''' diff --git a/MTC_Adapter/CMSCncLib/CNC/CNC/CNC.CNC.vb b/MTC_Adapter/CMSCncLib/CNC/CNC/CNC.CNC.vb index 81f72d5..939b5ec 100644 --- a/MTC_Adapter/CMSCncLib/CNC/CNC/CNC.CNC.vb +++ b/MTC_Adapter/CMSCncLib/CNC/CNC/CNC.CNC.vb @@ -207,42 +207,12 @@ Namespace CNC Public Overridable Sub GetStaticData() End Sub - ''' - ''' Stabilisce la risoluzione CncWindow - ''' - Public Overridable Function SetCncWindowSize() As Boolean - End Function - - ''' - ''' Esegue l'applicazione CNC - ''' - Public Overridable Sub RunCnc() - End Sub - ''' ''' Chiude l'applicazione CNC ''' Public Overridable Sub CloseCnc() End Sub - ''' - ''' Cerca la finestra CNC e restituisce True se la trova - ''' - Public Overridable Function FindCncWindow() As Boolean - End Function - - ''' - ''' Restituisce True se la finestra Cnc è ridotta a icona - ''' - Public Overridable Function CncIsIconic() As Boolean - End Function - - ''' - ''' Restituisce True se la finestra Cnc è massimizzata a tutto schermo - ''' - Public Overridable Function CncIsZoomed() As Boolean - End Function - ''' ''' Riduce a icona la finestra CNC ''' diff --git a/MTC_Adapter/CMSCncLib/Config/Config.Options.vb b/MTC_Adapter/CMSCncLib/Config/Config.Options.vb index da19e63..36dd6b5 100644 --- a/MTC_Adapter/CMSCncLib/Config/Config.Options.vb +++ b/MTC_Adapter/CMSCncLib/Config/Config.Options.vb @@ -162,14 +162,6 @@ Namespace Config End Get End Property - 'Private _ToolTable_GeometryManagement As Control.ToolTable.GeometryManagement - - ''' Tipo di gestione dati dimensioni utensili - 'Public ReadOnly Property ToolTable_GeometryManagement() As Control.ToolTable.GeometryManagement - ' Get - ' Return Me._ToolTable_GeometryManagement - ' End Get - 'End Property Private _ToolTable_MaxToolsManaged As Integer ''' Massimo numero di utensili gestibili From b42af29ca65a91b02686787afc0a58ec856e619c Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 2 Mar 2017 13:46:53 +0100 Subject: [PATCH 09/46] refresh con commenti x cercare BUG in Release --- MTC_Adapter/MTC_Adapter/AdapterFanuc.cs | 201 +++++++++++++--------- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 8 + MTC_Adapter/MTC_Adapter/MainForm.cs | 6 +- MTC_Adapter/MTC_Adapter/setupTgt.bat | 2 +- 4 files changed, 128 insertions(+), 89 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs index 7d0721d..8b56339 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs @@ -223,88 +223,107 @@ namespace MTC_Adapter string UserAction = ""; string TestingData = ""; string UnkStrobe = ""; - // controllo TUTTI i flag: se ce ne sono di alzati DEVO processare... - if (STRB_DW1 != StFlag32.NONE) + try { - // blocco memoria x lettura TUTTI i dati di buffer M/S/T: 46 byte: 2byte (16bit) x (11+6+6) aree - byte[] MemBlock = new byte[46]; - - // leggo tutto!!! - memIndex = 10660; - inizio = DateTime.Now; - FanucMemRW(R, FANUC.MemType.R, memIndex, ref MemBlock); - if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-STRB_DW1", MemBlock.Length), DateTime.Now.Subtract(inizio).Ticks); - - // check COD_M - bitNum = 0; - gestStrobeCodMST(bitNum, ref retACK_DW1, 0, MemBlock, "M"); - - // check COD_S - bitNum = 1; - gestStrobeCodMST(bitNum, ref retACK_DW1, 11, MemBlock, "S"); - - // check COD_T - bitNum = 2; - gestStrobeCodMST(bitNum, ref retACK_DW1, 17, MemBlock, "T"); - - // check FILE DATI MODIFICATO: ricaricare... - bitNum = 3; - if (STRB_DW1.HasFlag((StFlag32)Math.Pow(2, bitNum))) + lg.Info("01"); + // controllo TUTTI i flag: se ce ne sono di alzati DEVO processare... + if (STRB_DW1 != StFlag32.NONE) { - // reload dati da file... - reloadDataFromFile(); + lg.Info("02"); - // memorizzo allarme nel vettore ack.... - retACK_DW1 = utils.setBitOnStFlag(retACK_DW1, true, bitNum); + // blocco memoria x lettura TUTTI i dati di buffer M/S/T: 46 byte: 2byte (16bit) x (11+6+6) aree + byte[] MemBlock = new byte[46]; + + // leggo tutto!!! + memIndex = 10660; + inizio = DateTime.Now; + FanucMemRW(R, FANUC.MemType.R, memIndex, ref MemBlock); + if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-STRB_DW1", MemBlock.Length), DateTime.Now.Subtract(inizio).Ticks); + + // check COD_M + bitNum = 0; + gestStrobeCodMST(bitNum, ref retACK_DW1, 0, MemBlock, "M"); + + // check COD_S + bitNum = 1; + gestStrobeCodMST(bitNum, ref retACK_DW1, 11, MemBlock, "S"); + + // check COD_T + bitNum = 2; + gestStrobeCodMST(bitNum, ref retACK_DW1, 17, MemBlock, "T"); + + + // check FILE DATI MODIFICATO: ricaricare... + bitNum = 3; + if (STRB_DW1.HasFlag((StFlag32)Math.Pow(2, bitNum))) + { + lg.Info("Notifica file modificato"); + try + { + // reload dati da file... + reloadDataFromFile(); + + // memorizzo allarme nel vettore ack.... + retACK_DW1 = utils.setBitOnStFlag(retACK_DW1, true, bitNum); + } + catch + { + lg.Info("Errore lettura dati da file"); + } + } + + // AREA strobe USER ACTION + // chiamato Start... + bitNum = 4; + gestStrobeUserAction(bitNum, ref retACK_DW1, ref UserAction, " (START) "); + // chiamato Stop... + bitNum = 5; + gestStrobeUserAction(bitNum, ref retACK_DW1, ref UserAction, " (STOP) "); + // chiamato Reset... + bitNum = 6; + gestStrobeUserAction(bitNum, ref retACK_DW1, ref UserAction, " (RESET) "); + + // processo tutti gli strobe x i BIT 7-29 NON gestiti in modo da dare comunque ACK e event... + for (int i = 7; i < 30; i++) + { + gestStrobeUserAction(i, ref retACK_DW1, ref UnkStrobe, string.Format(" [STROBE_{0:00}] ", i)); + } + + // AREA strobe x TEST + // INIZIO TEST... + bitNum = 30; + if (STRB_DW1.HasFlag((StFlag32)Math.Pow(2, bitNum))) + { + // formatto stringa risultato + TestingData = string.Format("START TEST{0}", getTestData(utils.CRS("testCharSep"))); + + // memorizzo allarme nel vettore ack.... + retACK_DW1 = utils.setBitOnStFlag(retACK_DW1, true, bitNum); + } + // FINE TEST... + bitNum = 31; + if (STRB_DW1.HasFlag((StFlag32)Math.Pow(2, bitNum))) + { + // formatto stringa risultato + TestingData = string.Format("STOP TEST{0}", getTestData(utils.CRS("testCharSep"))); + + // memorizzo allarme nel vettore ack.... + retACK_DW1 = utils.setBitOnStFlag(retACK_DW1, true, bitNum); + } } - - // AREA strobe USER ACTION - // chiamato Start... - bitNum = 4; - gestStrobeUserAction(bitNum, ref retACK_DW1, ref UserAction, " (START) "); - // chiamato Stop... - bitNum = 5; - gestStrobeUserAction(bitNum, ref retACK_DW1, ref UserAction, " (STOP) "); - // chiamato Reset... - bitNum = 6; - gestStrobeUserAction(bitNum, ref retACK_DW1, ref UserAction, " (RESET) "); - - // processo tutti gli strobe x i BIT 7-29 NON gestiti in modo da dare comunque ACK e event... - for (int i = 7; i < 30; i++) + else { - gestStrobeUserAction(i, ref retACK_DW1, ref UnkStrobe, string.Format(" [STROBE_{0:00}] ", i)); - } - - // AREA strobe x TEST - // INIZIO TEST... - bitNum = 30; - if (STRB_DW1.HasFlag((StFlag32)Math.Pow(2, bitNum))) - { - // formatto stringa risultato - TestingData = string.Format("START TEST{0}", getTestData(utils.CRS("testCharSep"))); - - // memorizzo allarme nel vettore ack.... - retACK_DW1 = utils.setBitOnStFlag(retACK_DW1, true, bitNum); - } - // FINE TEST... - bitNum = 31; - if (STRB_DW1.HasFlag((StFlag32)Math.Pow(2, bitNum))) - { - // formatto stringa risultato - TestingData = string.Format("STOP TEST{0}", getTestData(utils.CRS("testCharSep"))); - - // memorizzo allarme nel vettore ack.... - retACK_DW1 = utils.setBitOnStFlag(retACK_DW1, true, bitNum); + // se mi sono rimasti degli strobe di lettura allarmi alzati li abbasso + if (ACK_DW1 != StFlag32.NONE) + { + // inizializzo 4 byte a zero!!! + retACK_DW1 = new byte[4]; + } } } - else + catch { - // se mi sono rimasti degli strobe di lettura allarmi alzati li abbasso - if (ACK_DW1 != StFlag32.NONE) - { - // inizializzo 4 byte a zero!!! - retACK_DW1 = new byte[4]; - } + lg.Info("Errore in strobe"); } // 2017.01.16 INVIO vettore azioni (1 o +)... SE CE NE SONO! @@ -429,22 +448,32 @@ namespace MTC_Adapter totRighe = File.ReadLines(fileName).Count(); // creo un vettore della dimensione corretta... conta anche commenti tanto poi riduco... generalStatus = new Dictionary(); - // carica da file... - System.IO.StreamReader file = new System.IO.StreamReader(fileName); - // leggo 1 linea alla volta... - string[] valori; - while ((linea = file.ReadLine()) != null) + try { - // SE non è un commento... - if (linea.Substring(0, 1) != "#") + // carica da file... + System.IO.StreamReader file = new System.IO.StreamReader(fileName); + if (file != null) { - valori = linea.Split(utils.CRC("testCharSep")); - generalStatus.Add(valori[0], valori[1]); + // leggo 1 linea alla volta... + string[] valori; + while ((linea = file.ReadLine()) != null) + { + // SE non è un commento... + if (linea.Substring(0, 1) != "#") + { + valori = linea.Split(utils.CRC("testCharSep")); + generalStatus.Add(valori[0], valori[1]); + } + } + // chiudo file + file.Close(); + if (utils.CRB("verbose")) lg.Info("Fine lettura dati da file"); } } - // chiudo file - file.Close(); - if (utils.CRB("verbose")) lg.Info("Fine lettura dati da file"); + catch + { + lg.Info("Errore in lettura dati da file"); + } // ora salvo valori letti... diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index 4f81695..6b3871c 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -1558,6 +1558,7 @@ namespace MTC_Adapter processStatus(); // processing degli strobes processStrobe(); + lg.Info("Ciclo HF Done"); } else if (ciclo == gatherCycle.MF) { @@ -1566,6 +1567,7 @@ namespace MTC_Adapter getUnOp(); getPath(); getAxis(); + lg.Info("Ciclo MF Done"); } // ciclo lento else if (ciclo == gatherCycle.LF) @@ -1577,6 +1579,7 @@ namespace MTC_Adapter // eventuale log! if (utils.CRB("recTime")) logTimeResults(); + lg.Info("Ciclo LF Done"); } // ciclo lentissimo else if (ciclo == gatherCycle.VLF) @@ -1584,13 +1587,18 @@ namespace MTC_Adapter lg.Info("Richiesta lettura completa allarmi attivi"); // faccio comunque rilettura completa allarmi... forceAlarmCheck(); + lg.Info("Ciclo VLF Done"); } // processo e svuoto eventuali code di invio per Codici M/S/T trySendCodMST(); + lg.Info("invio MST Done"); + // INVIO dati variati! mAdapter.SendChanged(); + + lg.Info("invio modifiche DONE"); } catch (Exception exc) { diff --git a/MTC_Adapter/MTC_Adapter/MainForm.cs b/MTC_Adapter/MTC_Adapter/MainForm.cs index bfe9b07..753cfc1 100644 --- a/MTC_Adapter/MTC_Adapter/MainForm.cs +++ b/MTC_Adapter/MTC_Adapter/MainForm.cs @@ -49,7 +49,7 @@ namespace MTC_Adapter /// /// timer base in avvio /// - protected int startTimerMs; + protected int startTimerMs = 250; /// /// ultimo tentativo riavvio... /// @@ -182,8 +182,10 @@ namespace MTC_Adapter gather.Interval = utils.CRI("timerIntMs"); gather.Enabled = true; + displayTaskAndWait("Running"); createTrayMenu(); + // avvio minimizzato se richiesto if (utils.CRB("startMinimized")) { @@ -269,6 +271,7 @@ namespace MTC_Adapter { notifyIcon1.Visible = false; } + } /// /// Gestisce "andata nel tray" della form @@ -524,7 +527,6 @@ namespace MTC_Adapter private void gather_Tick(object sender, EventArgs e) { - // eseguo cicli attivi SOLO se adapter è in EFFETTIVO running... if (agObj.adpRunning) { diff --git a/MTC_Adapter/MTC_Adapter/setupTgt.bat b/MTC_Adapter/MTC_Adapter/setupTgt.bat index 6a81d65..6b9c522 100644 --- a/MTC_Adapter/MTC_Adapter/setupTgt.bat +++ b/MTC_Adapter/MTC_Adapter/setupTgt.bat @@ -9,7 +9,7 @@ if %1 == "CMS-SIEMENS" goto CMS if %1 == "SCM-ESA" goto SCM :Release -echo Release: uso +echo Release: non devo copiare nulla goto END :Debug From 7ea1526ff89fc95a1fbee53ff94ab5d4de831209 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 2 Mar 2017 15:34:00 +0100 Subject: [PATCH 10/46] aggiunto (forzato) 32 posizioni x load in FWLib --- .../CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb b/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb index 2a3b8ac..74fe3fe 100644 --- a/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb +++ b/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb @@ -531,6 +531,29 @@ Public Class Focas1 Public svload6 As LOADELM ' servo load meter Public svload7 As LOADELM ' servo load meter Public svload8 As LOADELM ' servo load meter + Public svload9 As LOADELM ' servo load meter + Public svload10 As LOADELM ' servo load meter + Public svload11 As LOADELM ' servo load meter + Public svload12 As LOADELM ' servo load meter + Public svload13 As LOADELM ' servo load meter + Public svload14 As LOADELM ' servo load meter + Public svload15 As LOADELM ' servo load meter + Public svload16 As LOADELM ' servo load meter + Public svload17 As LOADELM ' servo load meter + Public svload18 As LOADELM ' servo load meter + Public svload19 As LOADELM ' servo load meter + Public svload20 As LOADELM ' servo load meter + Public svload21 As LOADELM ' servo load meter + Public svload22 As LOADELM ' servo load meter + Public svload23 As LOADELM ' servo load meter + Public svload24 As LOADELM ' servo load meter + Public svload25 As LOADELM ' servo load meter + Public svload26 As LOADELM ' servo load meter + Public svload27 As LOADELM ' servo load meter + Public svload28 As LOADELM ' servo load meter + Public svload29 As LOADELM ' servo load meter + Public svload31 As LOADELM ' servo load meter + Public svload32 As LOADELM ' servo load meter End Structure #End If #End If From 3a9d2cf1a588026061c0665ee7f1904894afa471 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 2 Mar 2017 15:36:53 +0100 Subject: [PATCH 11/46] update x gestione log ulteriori con cui trovato errore 32 load oltre a 32 posizioni... --- MTC_Adapter/MTC_Adapter/AdapterFanuc.cs | 6 +- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 18 +- MTC_Adapter/MTC_Adapter/MainForm.Designer.cs | 246 ++++++++++--------- MTC_Adapter/MTC_Adapter/MainForm.cs | 66 +++-- 4 files changed, 181 insertions(+), 155 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs index 8b56339..1722718 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs @@ -225,12 +225,9 @@ namespace MTC_Adapter string UnkStrobe = ""; try { - lg.Info("01"); // controllo TUTTI i flag: se ce ne sono di alzati DEVO processare... if (STRB_DW1 != StFlag32.NONE) { - lg.Info("02"); - // blocco memoria x lettura TUTTI i dati di buffer M/S/T: 46 byte: 2byte (16bit) x (11+6+6) aree byte[] MemBlock = new byte[46]; @@ -247,7 +244,7 @@ namespace MTC_Adapter // check COD_S bitNum = 1; gestStrobeCodMST(bitNum, ref retACK_DW1, 11, MemBlock, "S"); - + // check COD_T bitNum = 2; gestStrobeCodMST(bitNum, ref retACK_DW1, 17, MemBlock, "T"); @@ -1583,7 +1580,6 @@ namespace MTC_Adapter public override void getAxis() { - // mostro assi in DataMonitor...... StringBuilder sb = new StringBuilder(); diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index 6b3871c..f4d9189 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -559,7 +559,7 @@ namespace MTC_Adapter /// /// valore booleano di check se sia stato AVVIATO l'adapter (Running) /// - public bool adpRunning; + public bool adpRunning = false; /// /// valore booleano (richiesta di riavvio automatico) /// @@ -819,7 +819,7 @@ namespace MTC_Adapter return (StFlag32)BitConverter.ToUInt32(Acknowl, 12); } } - + /// /// Strobe mask PLC /// @@ -844,7 +844,7 @@ namespace MTC_Adapter #endregion #region Events - + /// /// Asset Changed - cambio asset /// @@ -1313,7 +1313,7 @@ namespace MTC_Adapter contNumInvAssi[i] = getStoredValUInt(string.Format("Axis_{0:00}_InvDDone", i + 1)); contAccTimeAssi[i] = getStoredValUInt(string.Format("Axis_{0:00}_AccTime", i + 1)); } - + for (int i = 0; i < currAdpConf.nVacuumPump; i++) { currVacPumpWrkTime[i] = getStoredValUInt(string.Format("VacPump_{0:00}_WrkTime", i + 1)); @@ -1355,7 +1355,7 @@ namespace MTC_Adapter // resetto running flag... adpCommAct = false; - + // carico valori da adapter x i conteggi contOreMaccOn = currAdpConf.ContOreMaccOn; contOreMaccLav = currAdpConf.ContOreMaccLav; @@ -1558,7 +1558,6 @@ namespace MTC_Adapter processStatus(); // processing degli strobes processStrobe(); - lg.Info("Ciclo HF Done"); } else if (ciclo == gatherCycle.MF) { @@ -1567,7 +1566,6 @@ namespace MTC_Adapter getUnOp(); getPath(); getAxis(); - lg.Info("Ciclo MF Done"); } // ciclo lento else if (ciclo == gatherCycle.LF) @@ -1579,7 +1577,6 @@ namespace MTC_Adapter // eventuale log! if (utils.CRB("recTime")) logTimeResults(); - lg.Info("Ciclo LF Done"); } // ciclo lentissimo else if (ciclo == gatherCycle.VLF) @@ -1587,18 +1584,13 @@ namespace MTC_Adapter lg.Info("Richiesta lettura completa allarmi attivi"); // faccio comunque rilettura completa allarmi... forceAlarmCheck(); - lg.Info("Ciclo VLF Done"); } // processo e svuoto eventuali code di invio per Codici M/S/T trySendCodMST(); - lg.Info("invio MST Done"); - // INVIO dati variati! mAdapter.SendChanged(); - - lg.Info("invio modifiche DONE"); } catch (Exception exc) { diff --git a/MTC_Adapter/MTC_Adapter/MainForm.Designer.cs b/MTC_Adapter/MTC_Adapter/MainForm.Designer.cs index ee35267..b63e3d3 100644 --- a/MTC_Adapter/MTC_Adapter/MainForm.Designer.cs +++ b/MTC_Adapter/MTC_Adapter/MainForm.Designer.cs @@ -116,9 +116,9 @@ this.lblPLC_ADP = new System.Windows.Forms.Label(); this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.lblApp = new System.Windows.Forms.ToolStripStatusLabel(); - this.lblStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.MainProgrBar = new System.Windows.Forms.ToolStripProgressBar(); this.lblVers = new System.Windows.Forms.ToolStripStatusLabel(); + this.MainProgrBar = new System.Windows.Forms.ToolStripProgressBar(); + this.lblStatus = new System.Windows.Forms.ToolStripStatusLabel(); this.groupBox13 = new System.Windows.Forms.GroupBox(); this.cbPathSel = new System.Windows.Forms.ComboBox(); this.label38 = new System.Windows.Forms.Label(); @@ -245,7 +245,7 @@ this.PlcErr_02.AutoSize = true; this.PlcErr_02.Location = new System.Drawing.Point(96, 43); this.PlcErr_02.Name = "PlcErr_02"; - this.PlcErr_02.Size = new System.Drawing.Size(72, 17); + this.PlcErr_02.Size = new System.Drawing.Size(83, 19); this.PlcErr_02.TabIndex = 6; this.PlcErr_02.Text = "PlcErr_05"; this.PlcErr_02.UseVisualStyleBackColor = true; @@ -273,7 +273,7 @@ this.label8.AutoSize = true; this.label8.Location = new System.Drawing.Point(118, 26); this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(28, 13); + this.label8.Size = new System.Drawing.Size(30, 15); this.label8.TabIndex = 19; this.label8.Text = "Text"; // @@ -282,7 +282,7 @@ this.label7.AutoSize = true; this.label7.Location = new System.Drawing.Point(4, 26); this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(32, 13); + this.label7.Size = new System.Drawing.Size(36, 15); this.label7.TabIndex = 18; this.label7.Text = "Code"; // @@ -306,7 +306,7 @@ this.label6.AutoSize = true; this.label6.Location = new System.Drawing.Point(12, 367); this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(0, 13); + this.label6.Size = new System.Drawing.Size(0, 15); this.label6.TabIndex = 43; // // AxFeedOverValue @@ -328,7 +328,7 @@ this.label9.AutoSize = true; this.label9.Location = new System.Drawing.Point(12, 166); this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(57, 13); + this.label9.Size = new System.Drawing.Size(63, 15); this.label9.TabIndex = 24; this.label9.Text = "Feed Over"; // @@ -346,7 +346,7 @@ this.label10.AutoSize = true; this.label10.Location = new System.Drawing.Point(12, 145); this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(50, 13); + this.label10.Size = new System.Drawing.Size(54, 15); this.label10.TabIndex = 22; this.label10.Text = "Feed Act"; // @@ -370,7 +370,7 @@ this.label13.AutoSize = true; this.label13.Location = new System.Drawing.Point(31, 48); this.label13.Name = "label13"; - this.label13.Size = new System.Drawing.Size(40, 13); + this.label13.Size = new System.Drawing.Size(44, 15); this.label13.TabIndex = 48; this.label13.Text = "Part ID"; // @@ -387,7 +387,7 @@ this.label12.AutoSize = true; this.label12.Location = new System.Drawing.Point(15, 74); this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(53, 13); + this.label12.Size = new System.Drawing.Size(58, 15); this.label12.TabIndex = 46; this.label12.Text = "Halt Type"; // @@ -416,49 +416,49 @@ this.X.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells; this.X.HeaderText = "X"; this.X.Name = "X"; - this.X.Width = 39; + this.X.Width = 44; // // Y // this.Y.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells; this.Y.HeaderText = "Y"; this.Y.Name = "Y"; - this.Y.Width = 39; + this.Y.Width = 43; // // Z // this.Z.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells; this.Z.HeaderText = "Z"; this.Z.Name = "Z"; - this.Z.Width = 39; + this.Z.Width = 43; // // I // this.I.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells; this.I.HeaderText = "I"; this.I.Name = "I"; - this.I.Width = 35; + this.I.Width = 39; // // J // this.J.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells; this.J.HeaderText = "J"; this.J.Name = "J"; - this.J.Width = 37; + this.J.Width = 42; // // K // this.K.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.DisplayedCells; this.K.HeaderText = "K"; this.K.Name = "K"; - this.K.Width = 39; + this.K.Width = 44; // // PlcErr_03 // this.PlcErr_03.AutoSize = true; this.PlcErr_03.Location = new System.Drawing.Point(96, 66); this.PlcErr_03.Name = "PlcErr_03"; - this.PlcErr_03.Size = new System.Drawing.Size(72, 17); + this.PlcErr_03.Size = new System.Drawing.Size(83, 19); this.PlcErr_03.TabIndex = 5; this.PlcErr_03.Text = "PlcErr_06"; this.PlcErr_03.UseVisualStyleBackColor = true; @@ -469,7 +469,7 @@ this.PlcErr_01.AutoSize = true; this.PlcErr_01.Location = new System.Drawing.Point(96, 20); this.PlcErr_01.Name = "PlcErr_01"; - this.PlcErr_01.Size = new System.Drawing.Size(72, 17); + this.PlcErr_01.Size = new System.Drawing.Size(83, 19); this.PlcErr_01.TabIndex = 4; this.PlcErr_01.Text = "PlcErr_04"; this.PlcErr_01.UseVisualStyleBackColor = true; @@ -501,7 +501,7 @@ this.ErrRT_03.AutoSize = true; this.ErrRT_03.Location = new System.Drawing.Point(268, 66); this.ErrRT_03.Name = "ErrRT_03"; - this.ErrRT_03.Size = new System.Drawing.Size(67, 17); + this.ErrRT_03.Size = new System.Drawing.Size(76, 19); this.ErrRT_03.TabIndex = 11; this.ErrRT_03.Text = "ERR_12"; this.ErrRT_03.UseVisualStyleBackColor = true; @@ -512,7 +512,7 @@ this.ErrRT_02.AutoSize = true; this.ErrRT_02.Location = new System.Drawing.Point(268, 43); this.ErrRT_02.Name = "ErrRT_02"; - this.ErrRT_02.Size = new System.Drawing.Size(67, 17); + this.ErrRT_02.Size = new System.Drawing.Size(76, 19); this.ErrRT_02.TabIndex = 10; this.ErrRT_02.Text = "ERR_11"; this.ErrRT_02.UseVisualStyleBackColor = true; @@ -523,7 +523,7 @@ this.CncErr_02.AutoSize = true; this.CncErr_02.Location = new System.Drawing.Point(181, 43); this.CncErr_02.Name = "CncErr_02"; - this.CncErr_02.Size = new System.Drawing.Size(76, 17); + this.CncErr_02.Size = new System.Drawing.Size(87, 19); this.CncErr_02.TabIndex = 9; this.CncErr_02.Text = "CncErr_08"; this.CncErr_02.UseVisualStyleBackColor = true; @@ -534,7 +534,7 @@ this.CncErr_03.AutoSize = true; this.CncErr_03.Location = new System.Drawing.Point(181, 66); this.CncErr_03.Name = "CncErr_03"; - this.CncErr_03.Size = new System.Drawing.Size(76, 17); + this.CncErr_03.Size = new System.Drawing.Size(87, 19); this.CncErr_03.TabIndex = 8; this.CncErr_03.Text = "CncErr_09"; this.CncErr_03.UseVisualStyleBackColor = true; @@ -545,7 +545,7 @@ this.CncErr_01.AutoSize = true; this.CncErr_01.Location = new System.Drawing.Point(181, 20); this.CncErr_01.Name = "CncErr_01"; - this.CncErr_01.Size = new System.Drawing.Size(76, 17); + this.CncErr_01.Size = new System.Drawing.Size(87, 19); this.CncErr_01.TabIndex = 7; this.CncErr_01.Text = "CncErr_07"; this.CncErr_01.UseVisualStyleBackColor = true; @@ -556,7 +556,7 @@ this.SysErr_03.AutoSize = true; this.SysErr_03.Location = new System.Drawing.Point(7, 66); this.SysErr_03.Name = "SysErr_03"; - this.SysErr_03.Size = new System.Drawing.Size(74, 17); + this.SysErr_03.Size = new System.Drawing.Size(85, 19); this.SysErr_03.TabIndex = 3; this.SysErr_03.Text = "SysErr_03"; this.SysErr_03.UseVisualStyleBackColor = true; @@ -567,7 +567,7 @@ this.ErrRT_01.AutoSize = true; this.ErrRT_01.Location = new System.Drawing.Point(268, 20); this.ErrRT_01.Name = "ErrRT_01"; - this.ErrRT_01.Size = new System.Drawing.Size(67, 17); + this.ErrRT_01.Size = new System.Drawing.Size(76, 19); this.ErrRT_01.TabIndex = 2; this.ErrRT_01.Text = "ERR_10"; this.ErrRT_01.UseVisualStyleBackColor = true; @@ -578,7 +578,7 @@ this.SysErr_02.AutoSize = true; this.SysErr_02.Location = new System.Drawing.Point(7, 43); this.SysErr_02.Name = "SysErr_02"; - this.SysErr_02.Size = new System.Drawing.Size(74, 17); + this.SysErr_02.Size = new System.Drawing.Size(85, 19); this.SysErr_02.TabIndex = 1; this.SysErr_02.Text = "SysErr_02"; this.SysErr_02.UseVisualStyleBackColor = true; @@ -589,7 +589,7 @@ this.SysErr_01.AutoSize = true; this.SysErr_01.Location = new System.Drawing.Point(7, 20); this.SysErr_01.Name = "SysErr_01"; - this.SysErr_01.Size = new System.Drawing.Size(74, 17); + this.SysErr_01.Size = new System.Drawing.Size(85, 19); this.SysErr_01.TabIndex = 0; this.SysErr_01.Text = "SysErr_01"; this.SysErr_01.UseVisualStyleBackColor = true; @@ -646,7 +646,7 @@ this.label37.AutoSize = true; this.label37.Location = new System.Drawing.Point(10, 187); this.label37.Name = "label37"; - this.label37.Size = new System.Drawing.Size(53, 13); + this.label37.Size = new System.Drawing.Size(55, 15); this.label37.TabIndex = 42; this.label37.Text = "Accel Act"; // @@ -662,7 +662,7 @@ this.label36.AutoSize = true; this.label36.Location = new System.Drawing.Point(262, 187); this.label36.Name = "label36"; - this.label36.Size = new System.Drawing.Size(40, 13); + this.label36.Size = new System.Drawing.Size(44, 15); this.label36.TabIndex = 40; this.label36.Text = "Battery"; // @@ -678,7 +678,7 @@ this.label11.AutoSize = true; this.label11.Location = new System.Drawing.Point(127, 187); this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(66, 13); + this.label11.Size = new System.Drawing.Size(75, 15); this.label11.TabIndex = 38; this.label11.Text = "Accum Time"; // @@ -695,7 +695,7 @@ this.label35.AutoSize = true; this.label35.Location = new System.Drawing.Point(218, 71); this.label35.Name = "label35"; - this.label35.Size = new System.Drawing.Size(49, 13); + this.label35.Size = new System.Drawing.Size(56, 15); this.label35.TabIndex = 36; this.label35.Text = "Direction"; // @@ -704,7 +704,7 @@ this.label34.AutoSize = true; this.label34.Location = new System.Drawing.Point(12, 72); this.label34.Name = "label34"; - this.label34.Size = new System.Drawing.Size(53, 13); + this.label34.Size = new System.Drawing.Size(58, 15); this.label34.TabIndex = 35; this.label34.Text = "Axis Type"; // @@ -731,7 +731,7 @@ this.label33.AutoSize = true; this.label33.Location = new System.Drawing.Point(238, 45); this.label33.Name = "label33"; - this.label33.Size = new System.Drawing.Size(44, 13); + this.label33.Size = new System.Drawing.Size(49, 15); this.label33.TabIndex = 32; this.label33.Text = "Mast ID"; // @@ -740,7 +740,7 @@ this.AxIsMaster.AutoSize = true; this.AxIsMaster.Location = new System.Drawing.Point(178, 44); this.AxIsMaster.Name = "AxIsMaster"; - this.AxIsMaster.Size = new System.Drawing.Size(58, 17); + this.AxIsMaster.Size = new System.Drawing.Size(67, 19); this.AxIsMaster.TabIndex = 31; this.AxIsMaster.Text = "Master"; this.AxIsMaster.UseVisualStyleBackColor = true; @@ -757,7 +757,7 @@ this.label32.AutoSize = true; this.label32.Location = new System.Drawing.Point(11, 44); this.label32.Name = "label32"; - this.label32.Size = new System.Drawing.Size(55, 13); + this.label32.Size = new System.Drawing.Size(63, 15); this.label32.TabIndex = 29; this.label32.Text = "Main Proc"; // @@ -777,7 +777,7 @@ this.label31.AutoSize = true; this.label31.Location = new System.Drawing.Point(12, 19); this.label31.Name = "label31"; - this.label31.Size = new System.Drawing.Size(51, 13); + this.label31.Size = new System.Drawing.Size(59, 15); this.label31.TabIndex = 27; this.label31.Text = "Axis Num"; // @@ -800,7 +800,7 @@ this.label5.AutoSize = true; this.label5.Location = new System.Drawing.Point(12, 124); this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(44, 13); + this.label5.Size = new System.Drawing.Size(51, 15); this.label5.TabIndex = 24; this.label5.Text = "Position"; // @@ -817,7 +817,7 @@ this.label4.AutoSize = true; this.label4.Location = new System.Drawing.Point(12, 103); this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(31, 13); + this.label4.Size = new System.Drawing.Size(35, 15); this.label4.TabIndex = 22; this.label4.Text = "Load"; // @@ -826,7 +826,7 @@ this.label3.AutoSize = true; this.label3.Location = new System.Drawing.Point(87, 95); this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(0, 13); + this.label3.Size = new System.Drawing.Size(0, 15); this.label3.TabIndex = 21; // // AxLoad @@ -849,7 +849,7 @@ this.label2.AutoSize = true; this.label2.Location = new System.Drawing.Point(7, 22); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(68, 13); + this.label2.Size = new System.Drawing.Size(81, 15); this.label2.TabIndex = 38; this.label2.Text = "Curr Program"; // @@ -891,7 +891,7 @@ this.label25.AutoSize = true; this.label25.Location = new System.Drawing.Point(269, 101); this.label25.Name = "label25"; - this.label25.Size = new System.Drawing.Size(37, 13); + this.label25.Size = new System.Drawing.Size(41, 15); this.label25.TabIndex = 58; this.label25.Text = "Pz KO"; // @@ -908,7 +908,7 @@ this.label23.AutoSize = true; this.label23.Location = new System.Drawing.Point(157, 101); this.label23.Name = "label23"; - this.label23.Size = new System.Drawing.Size(37, 13); + this.label23.Size = new System.Drawing.Size(41, 15); this.label23.TabIndex = 56; this.label23.Text = "Pz OK"; // @@ -925,7 +925,7 @@ this.label21.AutoSize = true; this.label21.Location = new System.Drawing.Point(33, 101); this.label21.Name = "label21"; - this.label21.Size = new System.Drawing.Size(38, 13); + this.label21.Size = new System.Drawing.Size(41, 15); this.label21.TabIndex = 54; this.label21.Text = "Pz Tot"; // @@ -941,7 +941,7 @@ this.label19.AutoSize = true; this.label19.Location = new System.Drawing.Point(222, 48); this.label19.Name = "label19"; - this.label19.Size = new System.Drawing.Size(45, 13); + this.label19.Size = new System.Drawing.Size(50, 15); this.label19.TabIndex = 52; this.label19.Text = "ID oper."; // @@ -957,7 +957,7 @@ this.label17.AutoSize = true; this.label17.Location = new System.Drawing.Point(253, 22); this.label17.Name = "label17"; - this.label17.Size = new System.Drawing.Size(54, 13); + this.label17.Size = new System.Drawing.Size(62, 15); this.label17.TabIndex = 50; this.label17.Text = "Row Num"; // @@ -983,7 +983,7 @@ this.STATUS_STRB_DW3.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.STATUS_STRB_DW3.Location = new System.Drawing.Point(85, 119); this.STATUS_STRB_DW3.Name = "STATUS_STRB_DW3"; - this.STATUS_STRB_DW3.Size = new System.Drawing.Size(291, 24); + this.STATUS_STRB_DW3.Size = new System.Drawing.Size(291, 28); this.STATUS_STRB_DW3.TabIndex = 59; // // label49 @@ -991,7 +991,7 @@ this.label49.AutoSize = true; this.label49.Location = new System.Drawing.Point(15, 125); this.label49.Name = "label49"; - this.label49.Size = new System.Drawing.Size(67, 13); + this.label49.Size = new System.Drawing.Size(73, 15); this.label49.TabIndex = 58; this.label49.Text = "STRB_DW3"; // @@ -1000,7 +1000,7 @@ this.STATUS_STRB_DW2.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.STATUS_STRB_DW2.Location = new System.Drawing.Point(85, 84); this.STATUS_STRB_DW2.Name = "STATUS_STRB_DW2"; - this.STATUS_STRB_DW2.Size = new System.Drawing.Size(291, 24); + this.STATUS_STRB_DW2.Size = new System.Drawing.Size(291, 28); this.STATUS_STRB_DW2.TabIndex = 57; // // label47 @@ -1008,7 +1008,7 @@ this.label47.AutoSize = true; this.label47.Location = new System.Drawing.Point(15, 90); this.label47.Name = "label47"; - this.label47.Size = new System.Drawing.Size(67, 13); + this.label47.Size = new System.Drawing.Size(73, 15); this.label47.TabIndex = 56; this.label47.Text = "STRB_DW2"; // @@ -1017,7 +1017,7 @@ this.STATUS_STRB_DW1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.STATUS_STRB_DW1.Location = new System.Drawing.Point(85, 49); this.STATUS_STRB_DW1.Name = "STATUS_STRB_DW1"; - this.STATUS_STRB_DW1.Size = new System.Drawing.Size(291, 24); + this.STATUS_STRB_DW1.Size = new System.Drawing.Size(291, 28); this.STATUS_STRB_DW1.TabIndex = 55; // // label18 @@ -1025,7 +1025,7 @@ this.label18.AutoSize = true; this.label18.Location = new System.Drawing.Point(15, 55); this.label18.Name = "label18"; - this.label18.Size = new System.Drawing.Size(67, 13); + this.label18.Size = new System.Drawing.Size(73, 15); this.label18.TabIndex = 54; this.label18.Text = "STRB_DW1"; // @@ -1034,7 +1034,7 @@ this.STATUS_STRB_DW0.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.STATUS_STRB_DW0.Location = new System.Drawing.Point(85, 14); this.STATUS_STRB_DW0.Name = "STATUS_STRB_DW0"; - this.STATUS_STRB_DW0.Size = new System.Drawing.Size(291, 24); + this.STATUS_STRB_DW0.Size = new System.Drawing.Size(291, 28); this.STATUS_STRB_DW0.TabIndex = 53; // // lblPLC_ADP @@ -1042,7 +1042,7 @@ this.lblPLC_ADP.AutoSize = true; this.lblPLC_ADP.Location = new System.Drawing.Point(15, 22); this.lblPLC_ADP.Name = "lblPLC_ADP"; - this.lblPLC_ADP.Size = new System.Drawing.Size(67, 13); + this.lblPLC_ADP.Size = new System.Drawing.Size(73, 15); this.lblPLC_ADP.TabIndex = 52; this.lblPLC_ADP.Text = "STRB_DW0"; // @@ -1065,14 +1065,16 @@ this.lblApp.Font = new System.Drawing.Font("Segoe UI", 9F, System.Drawing.FontStyle.Bold); this.lblApp.ForeColor = System.Drawing.SystemColors.ControlText; this.lblApp.Name = "lblApp"; - this.lblApp.Size = new System.Drawing.Size(16, 20); + this.lblApp.Size = new System.Drawing.Size(21, 20); this.lblApp.Text = "..."; // - // lblStatus + // lblVers // - this.lblStatus.Name = "lblStatus"; - this.lblStatus.Size = new System.Drawing.Size(22, 20); - this.lblStatus.Text = "---"; + this.lblVers.Font = new System.Drawing.Font("Segoe UI", 8F); + this.lblVers.ForeColor = System.Drawing.SystemColors.ControlDarkDark; + this.lblVers.Name = "lblVers"; + this.lblVers.Size = new System.Drawing.Size(18, 20); + this.lblVers.Text = "..."; // // MainProgrBar // @@ -1080,13 +1082,11 @@ this.MainProgrBar.Size = new System.Drawing.Size(100, 19); this.MainProgrBar.Step = 1; // - // lblVers + // lblStatus // - this.lblVers.Font = new System.Drawing.Font("Segoe UI", 8F); - this.lblVers.ForeColor = System.Drawing.SystemColors.ControlDarkDark; - this.lblVers.Name = "lblVers"; - this.lblVers.Size = new System.Drawing.Size(16, 20); - this.lblVers.Text = "..."; + this.lblStatus.Name = "lblStatus"; + this.lblStatus.Size = new System.Drawing.Size(27, 20); + this.lblStatus.Text = "---"; // // groupBox13 // @@ -1126,7 +1126,7 @@ this.label38.AutoSize = true; this.label38.Location = new System.Drawing.Point(11, 20); this.label38.Name = "label38"; - this.label38.Size = new System.Drawing.Size(54, 13); + this.label38.Size = new System.Drawing.Size(62, 15); this.label38.TabIndex = 62; this.label38.Text = "Path Num"; // @@ -1135,7 +1135,7 @@ this.label29.AutoSize = true; this.label29.Location = new System.Drawing.Point(12, 133); this.label29.Name = "label29"; - this.label29.Size = new System.Drawing.Size(51, 13); + this.label29.Size = new System.Drawing.Size(56, 15); this.label29.TabIndex = 33; this.label29.Text = "Posiz Act"; // @@ -1152,7 +1152,7 @@ this.label28.AutoSize = true; this.label28.Location = new System.Drawing.Point(10, 91); this.label28.Name = "label28"; - this.label28.Size = new System.Drawing.Size(64, 13); + this.label28.Size = new System.Drawing.Size(71, 15); this.label28.TabIndex = 31; this.label28.Text = "Rapid Over."; // @@ -1178,7 +1178,7 @@ this.label27.AutoSize = true; this.label27.Location = new System.Drawing.Point(10, 66); this.label27.Name = "label27"; - this.label27.Size = new System.Drawing.Size(60, 13); + this.label27.Size = new System.Drawing.Size(66, 15); this.label27.TabIndex = 28; this.label27.Text = "Feed Over."; // @@ -1204,7 +1204,7 @@ this.label26.AutoSize = true; this.label26.Location = new System.Drawing.Point(10, 40); this.label26.Name = "label26"; - this.label26.Size = new System.Drawing.Size(49, 13); + this.label26.Size = new System.Drawing.Size(56, 15); this.label26.TabIndex = 24; this.label26.Text = "Feedrate"; // @@ -1225,7 +1225,7 @@ this.sETUPToolStripMenuItem}); this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(785, 24); + this.menuStrip1.Size = new System.Drawing.Size(785, 28); this.menuStrip1.TabIndex = 61; this.menuStrip1.Text = "menuStrip1"; // @@ -1234,13 +1234,13 @@ this.fILEToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.mLoadAdaptConf}); this.fILEToolStripMenuItem.Name = "fILEToolStripMenuItem"; - this.fILEToolStripMenuItem.Size = new System.Drawing.Size(40, 20); + this.fILEToolStripMenuItem.Size = new System.Drawing.Size(47, 24); this.fILEToolStripMenuItem.Text = "FILE"; // // mLoadAdaptConf // this.mLoadAdaptConf.Name = "mLoadAdaptConf"; - this.mLoadAdaptConf.Size = new System.Drawing.Size(194, 22); + this.mLoadAdaptConf.Size = new System.Drawing.Size(232, 26); this.mLoadAdaptConf.Text = "LOAD ADAPTER CONF"; this.mLoadAdaptConf.Click += new System.EventHandler(this.mLoadAdaptConf_Click); // @@ -1250,14 +1250,14 @@ this.mConfGen}); this.sETUPToolStripMenuItem.Name = "sETUPToolStripMenuItem"; this.sETUPToolStripMenuItem.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.S))); - this.sETUPToolStripMenuItem.Size = new System.Drawing.Size(53, 20); + this.sETUPToolStripMenuItem.Size = new System.Drawing.Size(63, 24); this.sETUPToolStripMenuItem.Text = "SETUP"; // // mConfGen // this.mConfGen.Name = "mConfGen"; this.mConfGen.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Alt | System.Windows.Forms.Keys.T))); - this.mConfGen.Size = new System.Drawing.Size(271, 22); + this.mConfGen.Size = new System.Drawing.Size(327, 26); this.mConfGen.Text = "TEMPLATE CONF GENERATOR"; this.mConfGen.Click += new System.EventHandler(this.mConfGen_Click); // @@ -1265,7 +1265,7 @@ // this.lblCurrAdapt.Dock = System.Windows.Forms.DockStyle.Top; this.lblCurrAdapt.Font = new System.Drawing.Font("Microsoft Sans Serif", 16F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblCurrAdapt.Location = new System.Drawing.Point(0, 24); + this.lblCurrAdapt.Location = new System.Drawing.Point(0, 28); this.lblCurrAdapt.Name = "lblCurrAdapt"; this.lblCurrAdapt.Size = new System.Drawing.Size(785, 26); this.lblCurrAdapt.TabIndex = 64; @@ -1278,10 +1278,10 @@ this.tabCtrlMain.Controls.Add(this.tbConf); this.tabCtrlMain.Controls.Add(this.tpSIM); this.tabCtrlMain.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabCtrlMain.Location = new System.Drawing.Point(0, 50); + this.tabCtrlMain.Location = new System.Drawing.Point(0, 54); this.tabCtrlMain.Name = "tabCtrlMain"; this.tabCtrlMain.SelectedIndex = 0; - this.tabCtrlMain.Size = new System.Drawing.Size(785, 666); + this.tabCtrlMain.Size = new System.Drawing.Size(785, 662); this.tabCtrlMain.TabIndex = 65; // // tpStatus @@ -1295,16 +1295,17 @@ this.tpStatus.Location = new System.Drawing.Point(4, 22); this.tpStatus.Name = "tpStatus"; this.tpStatus.Padding = new System.Windows.Forms.Padding(3); - this.tpStatus.Size = new System.Drawing.Size(777, 640); + this.tpStatus.Size = new System.Drawing.Size(777, 636); this.tpStatus.TabIndex = 0; this.tpStatus.Text = "STATUS"; + this.tpStatus.Click += new System.EventHandler(this.tpStatus_Click); // // lblOutMessage // this.lblOutMessage.AutoSize = true; this.lblOutMessage.Location = new System.Drawing.Point(95, 281); this.lblOutMessage.Name = "lblOutMessage"; - this.lblOutMessage.Size = new System.Drawing.Size(16, 13); + this.lblOutMessage.Size = new System.Drawing.Size(16, 15); this.lblOutMessage.TabIndex = 60; this.lblOutMessage.Text = "..."; // @@ -1313,7 +1314,7 @@ this.label53.AutoSize = true; this.label53.Location = new System.Drawing.Point(18, 281); this.label53.Name = "label53"; - this.label53.Size = new System.Drawing.Size(54, 13); + this.label53.Size = new System.Drawing.Size(61, 15); this.label53.TabIndex = 59; this.label53.Text = "Data Mon"; // @@ -1339,7 +1340,7 @@ this.STATUS_ACK_DW3.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.STATUS_ACK_DW3.Location = new System.Drawing.Point(85, 118); this.STATUS_ACK_DW3.Name = "STATUS_ACK_DW3"; - this.STATUS_ACK_DW3.Size = new System.Drawing.Size(293, 24); + this.STATUS_ACK_DW3.Size = new System.Drawing.Size(293, 28); this.STATUS_ACK_DW3.TabIndex = 59; // // label52 @@ -1347,7 +1348,7 @@ this.label52.AutoSize = true; this.label52.Location = new System.Drawing.Point(15, 126); this.label52.Name = "label52"; - this.label52.Size = new System.Drawing.Size(59, 13); + this.label52.Size = new System.Drawing.Size(64, 15); this.label52.TabIndex = 58; this.label52.Text = "ACK_DW3"; // @@ -1356,7 +1357,7 @@ this.STATUS_ACK_DW2.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.STATUS_ACK_DW2.Location = new System.Drawing.Point(85, 83); this.STATUS_ACK_DW2.Name = "STATUS_ACK_DW2"; - this.STATUS_ACK_DW2.Size = new System.Drawing.Size(293, 24); + this.STATUS_ACK_DW2.Size = new System.Drawing.Size(293, 28); this.STATUS_ACK_DW2.TabIndex = 57; // // label51 @@ -1364,7 +1365,7 @@ this.label51.AutoSize = true; this.label51.Location = new System.Drawing.Point(15, 91); this.label51.Name = "label51"; - this.label51.Size = new System.Drawing.Size(59, 13); + this.label51.Size = new System.Drawing.Size(64, 15); this.label51.TabIndex = 56; this.label51.Text = "ACK_DW2"; // @@ -1373,7 +1374,7 @@ this.STATUS_ACK_DW1.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.STATUS_ACK_DW1.Location = new System.Drawing.Point(85, 48); this.STATUS_ACK_DW1.Name = "STATUS_ACK_DW1"; - this.STATUS_ACK_DW1.Size = new System.Drawing.Size(293, 24); + this.STATUS_ACK_DW1.Size = new System.Drawing.Size(293, 28); this.STATUS_ACK_DW1.TabIndex = 55; // // label50 @@ -1381,7 +1382,7 @@ this.label50.AutoSize = true; this.label50.Location = new System.Drawing.Point(15, 56); this.label50.Name = "label50"; - this.label50.Size = new System.Drawing.Size(59, 13); + this.label50.Size = new System.Drawing.Size(64, 15); this.label50.TabIndex = 54; this.label50.Text = "ACK_DW1"; // @@ -1390,7 +1391,7 @@ this.STATUS_ACK_DW0.Font = new System.Drawing.Font("Microsoft Sans Serif", 11F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.STATUS_ACK_DW0.Location = new System.Drawing.Point(85, 15); this.STATUS_ACK_DW0.Name = "STATUS_ACK_DW0"; - this.STATUS_ACK_DW0.Size = new System.Drawing.Size(293, 24); + this.STATUS_ACK_DW0.Size = new System.Drawing.Size(293, 28); this.STATUS_ACK_DW0.TabIndex = 53; // // label48 @@ -1398,7 +1399,7 @@ this.label48.AutoSize = true; this.label48.Location = new System.Drawing.Point(15, 19); this.label48.Name = "label48"; - this.label48.Size = new System.Drawing.Size(59, 13); + this.label48.Size = new System.Drawing.Size(64, 15); this.label48.TabIndex = 52; this.label48.Text = "ACK_DW0"; // @@ -1460,7 +1461,7 @@ this.label1.AutoSize = true; this.label1.Location = new System.Drawing.Point(18, 20); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(26, 13); + this.label1.Size = new System.Drawing.Size(29, 15); this.label1.TabIndex = 0; this.label1.Text = "Port"; // @@ -1551,7 +1552,7 @@ this.label45.AutoSize = true; this.label45.Location = new System.Drawing.Point(4, 122); this.label45.Name = "label45"; - this.label45.Size = new System.Drawing.Size(38, 13); + this.label45.Size = new System.Drawing.Size(43, 15); this.label45.TabIndex = 79; this.label45.Text = "Speed"; // @@ -1568,7 +1569,7 @@ this.label46.AutoSize = true; this.label46.Location = new System.Drawing.Point(4, 101); this.label46.Name = "label46"; - this.label46.Size = new System.Drawing.Size(31, 13); + this.label46.Size = new System.Drawing.Size(35, 15); this.label46.TabIndex = 77; this.label46.Text = "Load"; // @@ -1592,7 +1593,7 @@ this.label43.AutoSize = true; this.label43.Location = new System.Drawing.Point(6, 75); this.label43.Name = "label43"; - this.label43.Size = new System.Drawing.Size(44, 13); + this.label43.Size = new System.Drawing.Size(49, 15); this.label43.TabIndex = 74; this.label43.Text = "VitaRes"; // @@ -1608,7 +1609,7 @@ this.label44.AutoSize = true; this.label44.Location = new System.Drawing.Point(120, 75); this.label44.Name = "label44"; - this.label44.Size = new System.Drawing.Size(52, 13); + this.label44.Size = new System.Drawing.Size(57, 15); this.label44.TabIndex = 72; this.label44.Text = "Acc Time"; // @@ -1624,7 +1625,7 @@ this.label40.AutoSize = true; this.label40.Location = new System.Drawing.Point(6, 49); this.label40.Name = "label40"; - this.label40.Size = new System.Drawing.Size(42, 13); + this.label40.Size = new System.Drawing.Size(46, 15); this.label40.TabIndex = 70; this.label40.Text = "Tool ID"; // @@ -1640,7 +1641,7 @@ this.label41.AutoSize = true; this.label41.Location = new System.Drawing.Point(255, 49); this.label41.Name = "label41"; - this.label41.Size = new System.Drawing.Size(37, 13); + this.label41.Size = new System.Drawing.Size(41, 15); this.label41.TabIndex = 68; this.label41.Text = "Status"; // @@ -1656,7 +1657,7 @@ this.label42.AutoSize = true; this.label42.Location = new System.Drawing.Point(120, 49); this.label42.Name = "label42"; - this.label42.Size = new System.Drawing.Size(44, 13); + this.label42.Size = new System.Drawing.Size(51, 15); this.label42.TabIndex = 66; this.label42.Text = "NumCU"; // @@ -1676,7 +1677,7 @@ this.label39.AutoSize = true; this.label39.Location = new System.Drawing.Point(4, 23); this.label39.Name = "label39"; - this.label39.Size = new System.Drawing.Size(60, 13); + this.label39.Size = new System.Drawing.Size(69, 15); this.label39.TabIndex = 64; this.label39.Text = "Num UnOp"; // @@ -1699,7 +1700,7 @@ this.ready.Checked = true; this.ready.Location = new System.Drawing.Point(114, 16); this.ready.Name = "ready"; - this.ready.Size = new System.Drawing.Size(56, 17); + this.ready.Size = new System.Drawing.Size(63, 19); this.ready.TabIndex = 9; this.ready.TabStop = true; this.ready.Text = "Ready"; @@ -1710,7 +1711,7 @@ this.feedhold.AutoSize = true; this.feedhold.Location = new System.Drawing.Point(253, 16); this.feedhold.Name = "feedhold"; - this.feedhold.Size = new System.Drawing.Size(74, 17); + this.feedhold.Size = new System.Drawing.Size(85, 19); this.feedhold.TabIndex = 8; this.feedhold.Text = "Feed Hold"; this.feedhold.UseVisualStyleBackColor = true; @@ -1720,7 +1721,7 @@ this.stopped.AutoSize = true; this.stopped.Location = new System.Drawing.Point(180, 16); this.stopped.Name = "stopped"; - this.stopped.Size = new System.Drawing.Size(65, 17); + this.stopped.Size = new System.Drawing.Size(74, 19); this.stopped.TabIndex = 7; this.stopped.Text = "Stopped"; this.stopped.UseVisualStyleBackColor = true; @@ -1730,7 +1731,7 @@ this.running.AutoSize = true; this.running.Location = new System.Drawing.Point(36, 16); this.running.Name = "running"; - this.running.Size = new System.Drawing.Size(65, 17); + this.running.Size = new System.Drawing.Size(75, 19); this.running.TabIndex = 6; this.running.Text = "Running"; this.running.UseVisualStyleBackColor = true; @@ -1753,7 +1754,7 @@ this.edit.AutoSize = true; this.edit.Location = new System.Drawing.Point(299, 16); this.edit.Name = "edit"; - this.edit.Size = new System.Drawing.Size(43, 17); + this.edit.Size = new System.Drawing.Size(49, 19); this.edit.TabIndex = 9; this.edit.Text = "Edit"; this.edit.UseVisualStyleBackColor = true; @@ -1763,7 +1764,7 @@ this.mdi.AutoSize = true; this.mdi.Location = new System.Drawing.Point(180, 15); this.mdi.Name = "mdi"; - this.mdi.Size = new System.Drawing.Size(113, 17); + this.mdi.Size = new System.Drawing.Size(129, 19); this.mdi.TabIndex = 8; this.mdi.Text = "Manual Data Input"; this.mdi.UseVisualStyleBackColor = true; @@ -1774,7 +1775,7 @@ this.manual.Checked = true; this.manual.Location = new System.Drawing.Point(114, 15); this.manual.Name = "manual"; - this.manual.Size = new System.Drawing.Size(60, 17); + this.manual.Size = new System.Drawing.Size(70, 19); this.manual.TabIndex = 7; this.manual.TabStop = true; this.manual.Text = "Manual"; @@ -1785,7 +1786,7 @@ this.automatic.AutoSize = true; this.automatic.Location = new System.Drawing.Point(36, 16); this.automatic.Name = "automatic"; - this.automatic.Size = new System.Drawing.Size(72, 17); + this.automatic.Size = new System.Drawing.Size(82, 19); this.automatic.TabIndex = 6; this.automatic.Text = "Automatic"; this.automatic.UseVisualStyleBackColor = true; @@ -1815,7 +1816,7 @@ this.D1_UUID.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.D1_UUID.Location = new System.Drawing.Point(233, 54); this.D1_UUID.Name = "D1_UUID"; - this.D1_UUID.Size = new System.Drawing.Size(19, 13); + this.D1_UUID.Size = new System.Drawing.Size(23, 17); this.D1_UUID.TabIndex = 66; this.D1_UUID.Text = "..."; // @@ -1825,7 +1826,7 @@ this.D1_ID.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.D1_ID.Location = new System.Drawing.Point(54, 53); this.D1_ID.Name = "D1_ID"; - this.D1_ID.Size = new System.Drawing.Size(19, 13); + this.D1_ID.Size = new System.Drawing.Size(23, 17); this.D1_ID.TabIndex = 65; this.D1_ID.Text = "..."; // @@ -1835,7 +1836,7 @@ this.D1_NAME.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.D1_NAME.Location = new System.Drawing.Point(54, 20); this.D1_NAME.Name = "D1_NAME"; - this.D1_NAME.Size = new System.Drawing.Size(19, 13); + this.D1_NAME.Size = new System.Drawing.Size(23, 17); this.D1_NAME.TabIndex = 64; this.D1_NAME.Text = "..."; // @@ -1844,7 +1845,7 @@ this.lblAT.AutoSize = true; this.lblAT.Location = new System.Drawing.Point(189, 20); this.lblAT.Name = "lblAT"; - this.lblAT.Size = new System.Drawing.Size(43, 13); + this.lblAT.Size = new System.Drawing.Size(47, 15); this.lblAT.TabIndex = 63; this.lblAT.Text = "AccMin"; // @@ -1860,7 +1861,7 @@ this.label30.AutoSize = true; this.label30.Location = new System.Drawing.Point(288, 20); this.label30.Name = "label30"; - this.label30.Size = new System.Drawing.Size(36, 13); + this.label30.Size = new System.Drawing.Size(41, 15); this.label30.TabIndex = 61; this.label30.Text = "power"; // @@ -1876,7 +1877,7 @@ this.label16.AutoSize = true; this.label16.Location = new System.Drawing.Point(193, 53); this.label16.Name = "label16"; - this.label16.Size = new System.Drawing.Size(34, 13); + this.label16.Size = new System.Drawing.Size(37, 15); this.label16.TabIndex = 59; this.label16.Text = "UUID"; // @@ -1885,7 +1886,7 @@ this.label15.AutoSize = true; this.label15.Location = new System.Drawing.Point(10, 53); this.label15.Name = "label15"; - this.label15.Size = new System.Drawing.Size(18, 13); + this.label15.Size = new System.Drawing.Size(19, 15); this.label15.TabIndex = 57; this.label15.Text = "ID"; // @@ -1894,7 +1895,7 @@ this.label14.AutoSize = true; this.label14.Location = new System.Drawing.Point(10, 20); this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(35, 13); + this.label14.Size = new System.Drawing.Size(41, 15); this.label14.TabIndex = 54; this.label14.Text = "Nome"; // @@ -1914,7 +1915,7 @@ this.enableDataSim.Location = new System.Drawing.Point(112, 9); this.enableDataSim.Name = "enableDataSim"; this.enableDataSim.RightToLeft = System.Windows.Forms.RightToLeft.Yes; - this.enableDataSim.Size = new System.Drawing.Size(59, 17); + this.enableDataSim.Size = new System.Drawing.Size(68, 19); this.enableDataSim.TabIndex = 55; this.enableDataSim.Text = "Enable"; this.enableDataSim.UseVisualStyleBackColor = true; @@ -1935,7 +1936,7 @@ this.estop.Location = new System.Drawing.Point(59, 9); this.estop.Name = "estop"; this.estop.RightToLeft = System.Windows.Forms.RightToLeft.Yes; - this.estop.Size = new System.Drawing.Size(104, 17); + this.estop.Size = new System.Drawing.Size(119, 19); this.estop.TabIndex = 55; this.estop.Text = "Emergency Stop"; this.estop.UseVisualStyleBackColor = true; @@ -1963,7 +1964,7 @@ this.lblCodaT.AutoSize = true; this.lblCodaT.Location = new System.Drawing.Point(117, 74); this.lblCodaT.Name = "lblCodaT"; - this.lblCodaT.Size = new System.Drawing.Size(22, 13); + this.lblCodaT.Size = new System.Drawing.Size(22, 15); this.lblCodaT.TabIndex = 60; this.lblCodaT.Text = "[...]"; // @@ -1981,7 +1982,7 @@ this.label24.AutoSize = true; this.label24.Location = new System.Drawing.Point(9, 74); this.label24.Name = "label24"; - this.label24.Size = new System.Drawing.Size(33, 13); + this.label24.Size = new System.Drawing.Size(35, 15); this.label24.TabIndex = 58; this.label24.Text = "AddT"; // @@ -1990,7 +1991,7 @@ this.lblCodaS.AutoSize = true; this.lblCodaS.Location = new System.Drawing.Point(118, 48); this.lblCodaS.Name = "lblCodaS"; - this.lblCodaS.Size = new System.Drawing.Size(22, 13); + this.lblCodaS.Size = new System.Drawing.Size(22, 15); this.lblCodaS.TabIndex = 57; this.lblCodaS.Text = "[...]"; // @@ -2008,7 +2009,7 @@ this.label22.AutoSize = true; this.label22.Location = new System.Drawing.Point(10, 48); this.label22.Name = "label22"; - this.label22.Size = new System.Drawing.Size(33, 13); + this.label22.Size = new System.Drawing.Size(36, 15); this.label22.TabIndex = 55; this.label22.Text = "AddS"; // @@ -2017,7 +2018,7 @@ this.lblCodaM.AutoSize = true; this.lblCodaM.Location = new System.Drawing.Point(118, 22); this.lblCodaM.Name = "lblCodaM"; - this.lblCodaM.Size = new System.Drawing.Size(22, 13); + this.lblCodaM.Size = new System.Drawing.Size(22, 15); this.lblCodaM.TabIndex = 54; this.lblCodaM.Text = "[...]"; // @@ -2035,7 +2036,7 @@ this.label20.AutoSize = true; this.label20.Location = new System.Drawing.Point(10, 22); this.label20.Name = "label20"; - this.label20.Size = new System.Drawing.Size(35, 13); + this.label20.Size = new System.Drawing.Size(39, 15); this.label20.TabIndex = 52; this.label20.Text = "AddM"; // @@ -2048,8 +2049,9 @@ // // trayMenu // + this.trayMenu.ImageScalingSize = new System.Drawing.Size(20, 20); this.trayMenu.Name = "trayMenu"; - this.trayMenu.Size = new System.Drawing.Size(61, 4); + this.trayMenu.Size = new System.Drawing.Size(67, 4); this.trayMenu.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.trayMenu_ItemClicked); // // MainForm diff --git a/MTC_Adapter/MTC_Adapter/MainForm.cs b/MTC_Adapter/MTC_Adapter/MainForm.cs index 753cfc1..e24a3d9 100644 --- a/MTC_Adapter/MTC_Adapter/MainForm.cs +++ b/MTC_Adapter/MTC_Adapter/MainForm.cs @@ -149,8 +149,7 @@ namespace MTC_Adapter var sentinalRule = new LoggingRule("*", LogLevel.Trace, sentinalTarget); LogManager.Configuration.AddTarget("sentinal", sentinalTarget); LogManager.Configuration.LoggingRules.Add(sentinalRule); - - + #endif LogManager.ReconfigExistingLoggers(); @@ -166,8 +165,11 @@ namespace MTC_Adapter if (utils.CRB("autoLoadConf")) { loadXmlFile(defConfFilePath); + lg.Info("XML LOADED"); loadPersistLayer(defPersLayerFile); + lg.Info("PersLayerFile READ"); agObj.loadPersData(); + lg.Info("PersLayerFile LOADED"); } else { @@ -182,10 +184,10 @@ namespace MTC_Adapter gather.Interval = utils.CRI("timerIntMs"); gather.Enabled = true; - displayTaskAndWait("Running"); createTrayMenu(); - + displayTaskAndWait("Tray Menu OK"); + // avvio minimizzato se richiesto if (utils.CRB("startMinimized")) { @@ -194,7 +196,10 @@ namespace MTC_Adapter { WindowState = FormWindowState.Minimized; } + displayTaskAndWait("Minimized"); } + + displayTaskAndWait("Main Form OK"); } /// /// Verifica finale a fine show... @@ -209,6 +214,7 @@ namespace MTC_Adapter // controllo e mando a tray... sendToTray(); } + displayTaskAndWait("Main Form SHOWN"); } /// /// crea menù tray x applicazione @@ -476,6 +482,8 @@ namespace MTC_Adapter { avviaAdapter(); agObj.loadPersData(); + // salvo che ho avviato adapter + lg.Info("Completato LOAD Adapter"); } public void avviaAdapter() @@ -503,7 +511,6 @@ namespace MTC_Adapter normCount = utils.CRI("normCount"); slowCount = utils.CRI("slowCount"); alarmSyncCount = utils.CRI("alarmSyncCount"); - displayTaskAndWait("Adapter Running..."); } @@ -515,6 +522,8 @@ namespace MTC_Adapter private void stop_Click(object sender, EventArgs e) { fermaAdapter(false); + // salvo che ho fermato adapter + lg.Info("UNLOAD Adapter"); } /// /// Ferma l'adapter @@ -527,16 +536,18 @@ namespace MTC_Adapter private void gather_Tick(object sender, EventArgs e) { + //lg.Info("timer called"); // eseguo cicli attivi SOLO se adapter è in EFFETTIVO running... if (agObj.adpRunning) { // inizio a riportare che sto eseguendo.. - MainProgrBar.PerformStep(); + advProgBar(); if (agObj.connectionOk) { - +#if false // eseguo eventuali simulazioni x dati/flags SE RICHIESTO - simulateData(); + simulateData(); +#endif // check esecuzione FastTask checkFastTask(); @@ -587,6 +598,7 @@ namespace MTC_Adapter private void checkAlarmSync() { + alarmSyncCount--; if (alarmSyncCount <= 0) { @@ -594,7 +606,7 @@ namespace MTC_Adapter // avvio fase raccolta dati e invio con adapter agObj.gaterAndSend(gatherCycle.VLF); - MainProgrBar.PerformStep(); + advProgBar(); } } private void checkSlowTask() @@ -606,7 +618,7 @@ namespace MTC_Adapter // avvio fase raccolta dati e invio con adapter agObj.gaterAndSend(gatherCycle.LF); - MainProgrBar.PerformStep(); + advProgBar(); // refresh stringhe code M/S/T refreshCodeMST(); @@ -647,6 +659,7 @@ namespace MTC_Adapter private void checkNormTask() { + // decremento... normCount--; // se il counter è a zero eseguo... @@ -656,8 +669,20 @@ namespace MTC_Adapter // avvio fase raccolta dati e invio con adapter agObj.gaterAndSend(gatherCycle.MF); + advProgBar(); + } + } + /// + /// Avanza la barra di stato... + /// + public void advProgBar() + { + try + { MainProgrBar.PerformStep(); } + catch + { } } private void checkFastTask() @@ -673,16 +698,18 @@ namespace MTC_Adapter agObj.gaterAndSend(gatherCycle.HF); refreshVisualStrobes(); - MainProgrBar.PerformStep(); + advProgBar(); } } private void message_Leave(object sender, EventArgs e) { +#if false agObj.mMessage.Code = messageCode.Text; agObj.mMessage.Value = messageText.Text; agObj.mMessage.ForceChanged(); agObj.mAdapter.SendChanged(); +#endif } // apro eseguibile dump @@ -1156,13 +1183,21 @@ namespace MTC_Adapter /// public void savePersistLayer(string filePath) { - try + // se HO dei dati... + if (agObj.persistenceLayer != null) { - utils.WritePlain(agObj.persistenceLayer, filePath); + try + { + utils.WritePlain(agObj.persistenceLayer, filePath); + } + catch (Exception exc) + { + lg.Error(string.Format("Errore salvataggio file{0}{1}", Environment.NewLine, exc)); + } } - catch (Exception exc) + else { - lg.Error(exc, "Errore salvataggio file"); + lg.Info("persistenceLayer null, non salvato..."); } } /// @@ -1602,5 +1637,6 @@ namespace MTC_Adapter agObj.tryDisconnect(); } } + } } From 4451df1e4d438e966f9ebb3930a7974e178ee8f3 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 2 Mar 2017 15:38:03 +0100 Subject: [PATCH 12/46] refresh --- MTC_Adapter/MTC_Adapter/MainForm.Designer.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/MTC_Adapter/MTC_Adapter/MainForm.Designer.cs b/MTC_Adapter/MTC_Adapter/MainForm.Designer.cs index b63e3d3..32862e8 100644 --- a/MTC_Adapter/MTC_Adapter/MainForm.Designer.cs +++ b/MTC_Adapter/MTC_Adapter/MainForm.Designer.cs @@ -1298,7 +1298,6 @@ this.tpStatus.Size = new System.Drawing.Size(777, 636); this.tpStatus.TabIndex = 0; this.tpStatus.Text = "STATUS"; - this.tpStatus.Click += new System.EventHandler(this.tpStatus_Click); // // lblOutMessage // From c07a2990675c2b4b253c4467d23efcda0c0d1d84 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 2 Mar 2017 16:22:23 +0100 Subject: [PATCH 13/46] aggiunto 16 assi (da 16 a 32...) x POSIZIONE --- MTC_Adapter/MTC_Adapter/AdapterFanuc.cs | 64 +++++++++++++++++++++++++ 1 file changed, 64 insertions(+) diff --git a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs index 1722718..8e38b56 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs @@ -1673,6 +1673,70 @@ namespace MTC_Adapter valPos = posAssi.p16; valLoad = loadAssi.svload8; break; + case 16: + valPos = posAssi.p17; + valLoad = loadAssi.svload8; + break; + case 17: + valPos = posAssi.p18; + valLoad = loadAssi.svload8; + break; + case 18: + valPos = posAssi.p19; + valLoad = loadAssi.svload8; + break; + case 19: + valPos = posAssi.p20; + valLoad = loadAssi.svload8; + break; + case 20: + valPos = posAssi.p21; + valLoad = loadAssi.svload8; + break; + case 21: + valPos = posAssi.p22; + valLoad = loadAssi.svload8; + break; + case 22: + valPos = posAssi.p23; + valLoad = loadAssi.svload8; + break; + case 23: + valPos = posAssi.p24; + valLoad = loadAssi.svload8; + break; + case 24: + valPos = posAssi.p25; + valLoad = loadAssi.svload8; + break; + case 25: + valPos = posAssi.p26; + valLoad = loadAssi.svload8; + break; + case 26: + valPos = posAssi.p27; + valLoad = loadAssi.svload8; + break; + case 27: + valPos = posAssi.p28; + valLoad = loadAssi.svload8; + break; + case 28: + valPos = posAssi.p29; + valLoad = loadAssi.svload8; + break; + case 29: + valPos = posAssi.p30; + valLoad = loadAssi.svload8; + break; + case 30: + valPos = posAssi.p31; + valLoad = loadAssi.svload8; + break; + case 31: + valPos = posAssi.p32; + valLoad = loadAssi.svload8; + break; default: // 2017.03.01 suggerimento Fabio: in CMS_FANUC in advanced compiler options mettere FS30D=1,SIEMENS=1 x leggere + assi?!? valPos = posAssi.p1; From 6d0629e858e6a191d36bb5cc855d6e9995f05111 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 2 Mar 2017 16:24:49 +0100 Subject: [PATCH 14/46] modifica x gestione di 32 LOAD degli assi!!! --- .../CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb | 1 + MTC_Adapter/MTC_Adapter/AdapterFanuc.cs | 48 +++++++++---------- 2 files changed, 25 insertions(+), 24 deletions(-) diff --git a/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb b/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb index 74fe3fe..ef713c2 100644 --- a/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb +++ b/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb @@ -552,6 +552,7 @@ Public Class Focas1 Public svload27 As LOADELM ' servo load meter Public svload28 As LOADELM ' servo load meter Public svload29 As LOADELM ' servo load meter + Public svload30 As LOADELM ' servo load meter Public svload31 As LOADELM ' servo load meter Public svload32 As LOADELM ' servo load meter End Structure diff --git a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs index 8e38b56..36f5d16 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterFanuc.cs @@ -1643,99 +1643,99 @@ namespace MTC_Adapter break; case 8: valPos = posAssi.p9; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload9; break; case 9: valPos = posAssi.p10; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload10; break; case 10: valPos = posAssi.p11; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload11; break; case 11: valPos = posAssi.p12; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload12; break; case 12: valPos = posAssi.p13; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload13; break; case 13: valPos = posAssi.p14; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload14; break; case 14: valPos = posAssi.p15; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload15; break; case 15: valPos = posAssi.p16; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload16; break; case 16: valPos = posAssi.p17; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload17; break; case 17: valPos = posAssi.p18; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload18; break; case 18: valPos = posAssi.p19; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload19; break; case 19: valPos = posAssi.p20; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload20; break; case 20: valPos = posAssi.p21; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload21; break; case 21: valPos = posAssi.p22; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload22; break; case 22: valPos = posAssi.p23; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload23; break; case 23: valPos = posAssi.p24; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload24; break; case 24: valPos = posAssi.p25; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload25; break; case 25: valPos = posAssi.p26; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload26; break; case 26: valPos = posAssi.p27; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload27; break; case 27: valPos = posAssi.p28; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload28; break; case 28: valPos = posAssi.p29; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload29; break; case 29: valPos = posAssi.p30; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload30; break; case 30: valPos = posAssi.p31; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload31; break; case 31: valPos = posAssi.p32; - valLoad = loadAssi.svload8; + valLoad = loadAssi.svload32; break; default: // 2017.03.01 suggerimento Fabio: in CMS_FANUC in advanced compiler options mettere FS30D=1,SIEMENS=1 x leggere + assi?!? From 8a4798f88735bd524718a5c535bdacd22c615009 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 2 Mar 2017 17:01:05 +0100 Subject: [PATCH 15/46] sostituita fwlib.vb con versione nuova aggiornata da Giuseppe Salvi che gestisce switch di compilazione per F30D... --- .../CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb | 1566 ++++++++++------- 1 file changed, 885 insertions(+), 681 deletions(-) diff --git a/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb b/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb index ef713c2..94e6d90 100644 --- a/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb +++ b/MTC_Adapter/CMSCncLib/CNC/CNC.FANUC/_/fwlib32.vb @@ -15,15 +15,15 @@ Public Class Focas1 #If FS30D Then Public Const MAX_AXIS = 32 #Else -#If M_AXIS2 Then + #If M_AXIS2 Then Public Const MAX_AXIS = 24 -#Else -#If FS15D Then + #Else + #If FS15D Then Public Const MAX_AXIS = 10 -#Else - Public Const MAX_AXIS = 8 -#End If -#End If + #Else + Public Const MAX_AXIS = 8 + #End If + #End If #End If Public Const ALL_AXES = (-1) @@ -274,7 +274,7 @@ Public Class Focas1 Public dist As POSELM End Structure #If FS30D Then - _ + Public Structure ODBPOS Public p1 As POSELMALL Public p2 As POSELMALL @@ -312,7 +312,7 @@ Public Class Focas1 ' if you need the more information, you must be add the member. End Structure #Else -#If M_AXIS2 Then + #If M_AXIS2 Then _ Public Structure ODBPOS Public p1 As POSELMALL @@ -342,8 +342,8 @@ Public Class Focas1 ' In case of 24 axes. ' if you need the more information, you must be add the member. End Structure -#Else -#If FS15D Then + #Else + #If FS15D Then _ Public Structure ODBPOS Public p1 As POSELMALL @@ -359,22 +359,22 @@ Public Class Focas1 ' In case of 10 axes. ' if you need the more information, you must be add the member. End Structure -#Else - - Public Structure ODBPOS - Public p1 As POSELMALL - Public p2 As POSELMALL - Public p3 As POSELMALL - Public p4 As POSELMALL - Public p5 As POSELMALL - Public p6 As POSELMALL - Public p7 As POSELMALL - Public p8 As POSELMALL - ' In case of 8 axes. - ' if you need the more information, you must be add the member. - End Structure -#End If -#End If + #Else + _ + Public Structure ODBPOS + Public p1 As POSELMALL + Public p2 As POSELMALL + Public p3 As POSELMALL + Public p4 As POSELMALL + Public p5 As POSELMALL + Public p6 As POSELMALL + Public p7 As POSELMALL + Public p8 As POSELMALL + ' In case of 8 axes. + ' if you need the more information, you must be add the member. + End Structure + #End If + #End If #End If ' cnc_rdhndintrpt:read handle interruption @@ -383,6 +383,45 @@ Public Class Focas1 Public input As POSELM ' input unit Public output As POSELM ' output unit End Structure +#If FS30D Then + + Public Structure ODBHND + Public p1 As ODBHND_data + Public p2 As ODBHND_data + Public p3 As ODBHND_data + Public p4 As ODBHND_data + Public p5 As ODBHND_data + Public p6 As ODBHND_data + Public p7 As ODBHND_data + Public p8 As ODBHND_data + Public p9 As ODBHND_data + Public p10 As ODBHND_data + Public p11 As ODBHND_data + Public p12 As ODBHND_data + Public p13 As ODBHND_data + Public p14 As ODBHND_data + Public p15 As ODBHND_data + Public p16 As ODBHND_data + Public p17 As ODBHND_data + Public p18 As ODBHND_data + Public p19 As ODBHND_data + Public p20 As ODBHND_data + Public p21 As ODBHND_data + Public p22 As ODBHND_data + Public p23 As ODBHND_data + Public p24 As ODBHND_data + Public p25 As ODBHND_data + Public p26 As ODBHND_data + Public p27 As ODBHND_data + Public p28 As ODBHND_data + Public p29 As ODBHND_data + Public p30 As ODBHND_data + Public p31 As ODBHND_data + Public p32 As ODBHND_data + ' In case of 32 axes. + ' if you need the more information, you must be add the member. + End Structure +#Else #If M_AXIS2 Then _ Public Structure ODBHND @@ -431,7 +470,7 @@ Public Class Focas1 ' if you need the more information, you must be add the member. End Structure #Else - + _ Public Structure ODBHND Public p1 As ODBHND_data Public p2 As ODBHND_data @@ -445,6 +484,7 @@ Public Class Focas1 ' if you need the more information, you must be add the member. End Structure #End If +#End If #End If ' cnc_rdspeed:read current speed @@ -476,7 +516,43 @@ Public Class Focas1 Public suff2 As Byte ' suffix Public reserve As Byte ' reserve End Structure - +#If FS30D Then + + Public Structure ODBSVLOAD + Public svload1 As LOADELM ' servo load meter + Public svload2 As LOADELM ' servo load meter + Public svload3 As LOADELM ' servo load meter + Public svload4 As LOADELM ' servo load meter + Public svload5 As LOADELM ' servo load meter + Public svload6 As LOADELM ' servo load meter + Public svload7 As LOADELM ' servo load meter + Public svload8 As LOADELM ' servo load meter + Public svload9 As LOADELM ' servo load meter + Public svload10 As LOADELM ' servo load meter + Public svload11 As LOADELM ' servo load meter + Public svload12 As LOADELM ' servo load meter + Public svload13 As LOADELM ' servo load meter + Public svload14 As LOADELM ' servo load meter + Public svload15 As LOADELM ' servo load meter + Public svload16 As LOADELM ' servo load meter + Public svload17 As LOADELM ' servo load meter + Public svload18 As LOADELM ' servo load meter + Public svload19 As LOADELM ' servo load meter + Public svload20 As LOADELM ' servo load meter + Public svload21 As LOADELM ' servo load meter + Public svload22 As LOADELM ' servo load meter + Public svload23 As LOADELM ' servo load meter + Public svload24 As LOADELM ' servo load meter + Public svload25 As LOADELM ' servo load meter + Public svload26 As LOADELM ' servo load meter + Public svload27 As LOADELM ' servo load meter + Public svload28 As LOADELM ' servo load meter + Public svload29 As LOADELM ' servo load meter + Public svload30 As LOADELM ' servo load meter + Public svload31 As LOADELM ' servo load meter + Public svload32 As LOADELM ' servo load meter + End Structure +#Else #If M_AXIS2 Then _ Public Structure ODBSVLOAD @@ -521,7 +597,7 @@ Public Class Focas1 Public svload10 As LOADELM ' servo load meter End Structure #Else - + _ Public Structure ODBSVLOAD Public svload1 As LOADELM ' servo load meter Public svload2 As LOADELM ' servo load meter @@ -531,32 +607,9 @@ Public Class Focas1 Public svload6 As LOADELM ' servo load meter Public svload7 As LOADELM ' servo load meter Public svload8 As LOADELM ' servo load meter - Public svload9 As LOADELM ' servo load meter - Public svload10 As LOADELM ' servo load meter - Public svload11 As LOADELM ' servo load meter - Public svload12 As LOADELM ' servo load meter - Public svload13 As LOADELM ' servo load meter - Public svload14 As LOADELM ' servo load meter - Public svload15 As LOADELM ' servo load meter - Public svload16 As LOADELM ' servo load meter - Public svload17 As LOADELM ' servo load meter - Public svload18 As LOADELM ' servo load meter - Public svload19 As LOADELM ' servo load meter - Public svload20 As LOADELM ' servo load meter - Public svload21 As LOADELM ' servo load meter - Public svload22 As LOADELM ' servo load meter - Public svload23 As LOADELM ' servo load meter - Public svload24 As LOADELM ' servo load meter - Public svload25 As LOADELM ' servo load meter - Public svload26 As LOADELM ' servo load meter - Public svload27 As LOADELM ' servo load meter - Public svload28 As LOADELM ' servo load meter - Public svload29 As LOADELM ' servo load meter - Public svload30 As LOADELM ' servo load meter - Public svload31 As LOADELM ' servo load meter - Public svload32 As LOADELM ' servo load meter End Structure #End If +#End If #End If @@ -1124,6 +1177,43 @@ Public Class Focas1 Public prm_val As Integer ' data of real parameter Public dec_val As Integer ' decimal point of real parameter End Structure +#If FS30D Then + + Public Structure REALPRMS + Public rdata1 As REALPRM + Public rdata2 As REALPRM + Public rdata3 As REALPRM + Public rdata4 As REALPRM + Public rdata5 As REALPRM + Public rdata6 As REALPRM + Public rdata7 As REALPRM + Public rdata8 As REALPRM + Public rdata9 As REALPRM + Public rdata10 As REALPRM + Public rdata11 As REALPRM + Public rdata12 As REALPRM + Public rdata13 As REALPRM + Public rdata14 As REALPRM + Public rdata15 As REALPRM + Public rdata16 As REALPRM + Public rdata17 As REALPRM + Public rdata18 As REALPRM + Public rdata19 As REALPRM + Public rdata20 As REALPRM + Public rdata21 As REALPRM + Public rdata22 As REALPRM + Public rdata23 As REALPRM + Public rdata24 As REALPRM + Public rdata25 As REALPRM + Public rdata26 As REALPRM + Public rdata27 As REALPRM + Public rdata28 As REALPRM + Public rdata29 As REALPRM + Public rdata30 As REALPRM + Public rdata31 As REALPRM + Public rdata32 As REALPRM + End Structure ' In case that the number of alarm is 32 +#Else #If M_AXIS2 Then _ Public Structure REALPRMS @@ -1168,7 +1258,7 @@ Public Class Focas1 Public rdata10 As REALPRM End Structure ' In case that the number of alarm is 10 #Else - + _ Public Structure REALPRMS Public rdata1 As REALPRM Public rdata2 As REALPRM @@ -1180,6 +1270,7 @@ Public Class Focas1 Public rdata8 As REALPRM End Structure ' In case that the number of alarm is 8 #End If +#End If #End If @@ -3325,6 +3416,43 @@ Public Class Focas1 Public data26 As MODAL_AUX_data Public data27 As MODAL_AUX_data End Structure +#If FS30D Then + + Public Structure MODAL_RAUX2_data + Public data1 As MODAL_AUX_data + Public data2 As MODAL_AUX_data + Public data3 As MODAL_AUX_data + Public data4 As MODAL_AUX_data + Public data5 As MODAL_AUX_data + Public data6 As MODAL_AUX_data + Public data7 As MODAL_AUX_data + Public data8 As MODAL_AUX_data + Public data9 As MODAL_AUX_data + Public data10 As MODAL_AUX_data + Public data11 As MODAL_AUX_data + Public data12 As MODAL_AUX_data + Public data13 As MODAL_AUX_data + Public data14 As MODAL_AUX_data + Public data15 As MODAL_AUX_data + Public data16 As MODAL_AUX_data + Public data17 As MODAL_AUX_data + Public data18 As MODAL_AUX_data + Public data19 As MODAL_AUX_data + Public data20 As MODAL_AUX_data + Public data21 As MODAL_AUX_data + Public data22 As MODAL_AUX_data + Public data23 As MODAL_AUX_data + Public data24 As MODAL_AUX_data + Public data25 As MODAL_AUX_data + Public data26 As MODAL_AUX_data + Public data27 As MODAL_AUX_data + Public data28 As MODAL_AUX_data + Public data29 As MODAL_AUX_data + Public data30 As MODAL_AUX_data + Public data31 As MODAL_AUX_data + Public data32 As MODAL_AUX_data + End Structure +#Else #If M_AXIS2 Then _ Public Structure MODAL_RAUX2_data @@ -3369,7 +3497,7 @@ Public Class Focas1 Public data10 As MODAL_AUX_data End Structure #Else - + _ Public Structure MODAL_RAUX2_data Public data1 As MODAL_AUX_data Public data2 As MODAL_AUX_data @@ -3381,6 +3509,7 @@ Public Class Focas1 Public data8 As MODAL_AUX_data End Structure #End If +#End If #End If @@ -3514,7 +3643,43 @@ Public Class Focas1 Public dgn_val As Integer ' data of real diagnoss Public dec_val As Integer ' decimal point of real diagnoss End Structure - +#If FS30D Then + + Public Structure REALDGNS + Public rdata1 As REALDGN + Public rdata2 As REALDGN + Public rdata3 As REALDGN + Public rdata4 As REALDGN + Public rdata5 As REALDGN + Public rdata6 As REALDGN + Public rdata7 As REALDGN + Public rdata8 As REALDGN + Public rdata9 As REALDGN + Public rdata10 As REALDGN + Public rdata11 As REALDGN + Public rdata12 As REALDGN + Public rdata13 As REALDGN + Public rdata14 As REALDGN + Public rdata15 As REALDGN + Public rdata16 As REALDGN + Public rdata17 As REALDGN + Public rdata18 As REALDGN + Public rdata19 As REALDGN + Public rdata20 As REALDGN + Public rdata21 As REALDGN + Public rdata22 As REALDGN + Public rdata23 As REALDGN + Public rdata24 As REALDGN + Public rdata25 As REALDGN + Public rdata26 As REALDGN + Public rdata27 As REALDGN + Public rdata28 As REALDGN + Public rdata29 As REALDGN + Public rdata30 As REALDGN + Public rdata31 As REALDGN + Public rdata32 As REALDGN + End Structure ' In case that the number of alarm is 24 +#Else #If M_AXIS2 Then _ Public Structure REALDGNS @@ -3559,7 +3724,7 @@ Public Class Focas1 Public rdata10 As REALDGN End Structure ' In case that the number of alarm is 10 #Else - + _ Public Structure REALDGNS Public rdata1 As REALDGN Public rdata2 As REALDGN @@ -3571,6 +3736,7 @@ Public Class Focas1 Public rdata8 As REALDGN End Structure ' In case that the number of alarm is 8 #End If +#End If #End If @@ -6236,6 +6402,43 @@ Public Class Focas1 Public name As Byte ' axis name Public suff As Byte ' suffix End Structure +#If FS30D Then + + Public Structure ODBAXISNAME + Public data1 As ODBAXISNAME_data + Public data2 As ODBAXISNAME_data + Public data3 As ODBAXISNAME_data + Public data4 As ODBAXISNAME_data + Public data5 As ODBAXISNAME_data + Public data6 As ODBAXISNAME_data + Public data7 As ODBAXISNAME_data + Public data8 As ODBAXISNAME_data + Public data9 As ODBAXISNAME_data + Public data10 As ODBAXISNAME_data + Public data11 As ODBAXISNAME_data + Public data12 As ODBAXISNAME_data + Public data13 As ODBAXISNAME_data + Public data14 As ODBAXISNAME_data + Public data15 As ODBAXISNAME_data + Public data16 As ODBAXISNAME_data + Public data17 As ODBAXISNAME_data + Public data18 As ODBAXISNAME_data + Public data19 As ODBAXISNAME_data + Public data20 As ODBAXISNAME_data + Public data21 As ODBAXISNAME_data + Public data22 As ODBAXISNAME_data + Public data23 As ODBAXISNAME_data + Public data24 As ODBAXISNAME_data + Public data25 As ODBAXISNAME_data + Public data26 As ODBAXISNAME_data + Public data27 As ODBAXISNAME_data + Public data28 As ODBAXISNAME_data + Public data29 As ODBAXISNAME_data + Public data30 As ODBAXISNAME_data + Public data31 As ODBAXISNAME_data + Public data32 As ODBAXISNAME_data + End Structure +#Else #If M_AXIS2 Then _ Public Structure ODBAXISNAME @@ -6280,7 +6483,7 @@ Public Class Focas1 Public data10 As ODBAXISNAME_data End Structure #Else - + _ Public Structure ODBAXISNAME Public data1 As ODBAXISNAME_data Public data2 As ODBAXISNAME_data @@ -6292,6 +6495,7 @@ Public Class Focas1 Public data8 As ODBAXISNAME_data End Structure #End If +#End If #End If ' cnc_rdspdlname: read spindle name @@ -7901,10 +8105,10 @@ Public Class Focas1 Declare Function cnc_wrmdiprog Lib "FWLIB32.DLL" _ (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String) As Short -' read execution pointer for MDI operation + ' read execution pointer for MDI operation #If ONO8D = Nothing Then Declare Function cnc_rdmdipntr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBMDIP ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBMDIP) As Short #Else Declare Function cnc_rdmdipntr Lib "FWLIB32.DLL" Alias "cnc_rdmdipntro8" _ ( ByVal FlibHndl As Integer, ByRef a As ODBMDIP ) As Short @@ -7912,48 +8116,48 @@ Public Class Focas1 ' write execution pointer for MDI operation Declare Function cnc_wrmdipntr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer) As Short ' register new program Declare Function cnc_newprog Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer) As Short ' copy program Declare Function cnc_copyprog Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer) As Short ' rename program Declare Function cnc_renameprog Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer) As Short ' condense program Declare Function cnc_condense Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer) As Short ' merge program Declare Function cnc_mergeprog Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByVal c As Integer, ByVal d As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByVal c As Integer, ByVal d As Integer) As Short ' read current program and its pointer Declare Function cnc_rdactpt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Integer) As Short ' read current program and its pointer and UV macro pointer Declare Function cnc_rduvactpt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Integer, ByRef c As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Integer, ByRef c As Integer) As Short ' set current program and its pointer Declare Function cnc_wractpt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Short, ByRef c As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Short, ByRef c As Integer) As Short ' line edit (read program) Declare Function cnc_rdprogline Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, <[In], Out> ByVal c() As Char, ByRef d As Integer, ByRef e As Integer) As Short ' line edit (read program) Declare Function cnc_rdprogline2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, <[In], Out> ByVal c() As Char, ByRef d As Integer, ByRef e As Integer) As Short ' line edit (write program) @@ -7966,7 +8170,7 @@ Public Class Focas1 ' line edit (search string) Declare Function cnc_searchword Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c As Short, ByVal d As Short, ByVal e As Integer, ByVal f As String) As Short ' line edit (search string) @@ -7975,111 +8179,111 @@ Public Class Focas1 ' line edit (read program by file name) Declare Function cnc_rdpdf_line Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As String , ByVal b As Integer , <[In], Out> ByVal c() As Char , ByRef d As Integer , ByRef e As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer, <[In], Out> ByVal c() As Char, ByRef d As Integer, ByRef e As Integer) As Short ' program lock Declare Function cnc_setpglock Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer) As Short ' program unlock Declare Function cnc_resetpglock Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer) As Short ' read the status of the program lock Declare Function cnc_rdpglockstat Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Integer) As Short ' create file or directory Declare Function cnc_pdf_add Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String ) As Short + (ByVal FlibHndl As Integer, ByVal a As String) As Short ' condense program file Declare Function cnc_pdf_cond Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String ) As Short + (ByVal FlibHndl As Integer, ByVal a As String) As Short ' change attribute of program file and directory Declare Function cnc_wrpdf_attr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String , ByRef b As IDBPDFTDIR ) As Short + (ByVal FlibHndl As Integer, ByVal a As String, ByRef b As IDBPDFTDIR) As Short ' copy program file Declare Function cnc_pdf_copy Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String , ByVal b As String ) As Short + (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String) As Short ' delete file or directory Declare Function cnc_pdf_del Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String ) As Short + (ByVal FlibHndl As Integer, ByVal a As String) As Short ' line edit (write program by file name) Declare Function cnc_wrpdf_line Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer, ByVal c As String, ByVal d As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer, ByVal c As String, ByVal d As Integer) As Short ' line edit (delete line by file name) Declare Function cnc_pdf_delline Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String , ByVal b As Integer , ByVal c As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer, ByVal c As Integer) As Short ' move program file Declare Function cnc_pdf_move Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String , ByVal b As String ) As Short + (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String) As Short ' read current program and its pointer Declare Function cnc_pdf_rdactpt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Char , ByRef b As Integer ) As Short + (ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Char, ByRef b As Integer) As Short ' read selected file name Declare Function cnc_pdf_rdmain Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Char ) As Short + (ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Char) As Short ' rename file or directory Declare Function cnc_pdf_rename Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String , ByVal b As String ) As Short + (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String) As Short ' line edit (search string) Declare Function cnc_pdf_searchword Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String , ByVal b As Integer , ByVal c As Integer , ByVal d As Integer , ByVal e As Integer , ByVal f As String ) As Short + (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer, ByVal c As Integer, ByVal d As Integer, ByVal e As Integer, ByVal f As String) As Short ' line edit (search string) Declare Function cnc_pdf_searchresult Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer) As Short ' select program file Declare Function cnc_pdf_slctmain Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String ) As Short + (ByVal FlibHndl As Integer, ByVal a As String) As Short ' set current program and its pointer Declare Function cnc_pdf_wractpt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String , ByVal b As Short , ByRef c As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Short, ByRef c As Integer) As Short ' read program drive information Declare Function cnc_rdpdf_inf Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String , ByVal b As Short , ByRef c As ODBPDFINF ) As Short + (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Short, ByRef c As ODBPDFINF) As Short ' read program drive directory Declare Function cnc_rdpdf_drive Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBPDFDRV ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBPDFDRV) As Short ' read current directory Declare Function cnc_rdpdf_curdir Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short , <[In], Out> ByVal b() As Char ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, <[In], Out> ByVal b() As Char) As Short ' set current directory Declare Function cnc_wrpdf_curdir Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short , <[In], Out> ByVal b() As Char ) As Short - + (ByVal FlibHndl As Integer, ByVal a As Short, <[In], Out> ByVal b() As Char) As Short + ' read directory (sub directories) Declare Function cnc_rdpdf_subdir Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short , ByRef b As IDBPDFSDIR , ByRef b As ODBPDFSDIR ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As IDBPDFSDIR, ByRef b As ODBPDFSDIR) As Short ' read directory (all files) Declare Function cnc_rdpdf_alldir Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short , ByRef b As IDBPDFADIR, ByRef c As ODBPDFADIR ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As IDBPDFADIR, ByRef c As ODBPDFADIR) As Short ' read file count in directory Declare Function cnc_rdpdf_subdirn Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String , ByRef b As ODBPDFNFIL ) As Short + (ByVal FlibHndl As Integer, ByVal a As String, ByRef b As ODBPDFNFIL) As Short -'--------------------------- -' CNC: NC file data related -'--------------------------- + '--------------------------- + ' CNC: NC file data related + '--------------------------- ' read tool offset value Declare Function cnc_rdtofs Lib "FWLIB32.DLL" _ @@ -8087,60 +8291,60 @@ Public Class Focas1 ' write tool offset value Declare Function cnc_wrtofs Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Integer) As Short ' read tool offset value(area specified) Declare Function cnc_rdtofsr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBTO_1_1) As Short Declare Function cnc_rdtofsr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBTO_1_2) As Short Declare Function cnc_rdtofsr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBTO_1_3) As Short Declare Function cnc_rdtofsr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBTO_2) As Short Declare Function cnc_rdtofsr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBTO_3) As Short ' write tool offset value(area specified) Declare Function cnc_wrtofsr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTO_1_1 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTO_1_1) As Short Declare Function cnc_wrtofsr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTO_1_2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTO_1_2) As Short Declare Function cnc_wrtofsr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTO_1_3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTO_1_3) As Short Declare Function cnc_wrtofsr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTO_2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTO_2) As Short Declare Function cnc_wrtofsr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTO_3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTO_3) As Short ' read work zero offset value Declare Function cnc_rdzofs Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBZOFS ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBZOFS) As Short ' write work zero offset value Declare Function cnc_wrzofs Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBZOFS ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBZOFS) As Short ' read work zero offset value(area specified) Declare Function cnc_rdzofsr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBZOR ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBZOR) As Short ' write work zero offset value(area specified) Declare Function cnc_wrzofsr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBZOR ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBZOR) As Short ' read mesured point value Declare Function cnc_rdmsptype Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBMSTP) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBMSTP) As Short ' write mesured point value Declare Function cnc_wrmsptype Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef d As IODBMSTP) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef d As IODBMSTP) As Short ' read parameter Declare Function cnc_rdparam Lib "FWLIB32.DLL" _ @@ -8154,13 +8358,13 @@ Public Class Focas1 ' write parameter Declare Function cnc_wrparam Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_1 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_1) As Short Declare Function cnc_wrparam Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_2) As Short Declare Function cnc_wrparam Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_3) As Short Declare Function cnc_wrparam Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_4 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_4) As Short ' read parameter Declare Function cnc_rdparam3 Lib "FWLIB32.DLL" _ @@ -8174,71 +8378,71 @@ Public Class Focas1 ' read parameter(area specified) Declare Function cnc_rdparar Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_A ) As Short + (ByVal FlibHndl As Integer, + ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_A) As Short Declare Function cnc_rdparar Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_B ) As Short + (ByVal FlibHndl As Integer, + ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_B) As Short Declare Function cnc_rdparar Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_C ) As Short + (ByVal FlibHndl As Integer, + ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_C) As Short Declare Function cnc_rdparar Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_D ) As Short + (ByVal FlibHndl As Integer, + ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_D) As Short ' write parameter(area specified) Declare Function cnc_wrparas Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_A ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_A) As Short Declare Function cnc_wrparas Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_B ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_B) As Short Declare Function cnc_wrparas Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_C ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_C) As Short Declare Function cnc_wrparas Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_D ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_D) As Short ' read setting data Declare Function cnc_rdset Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_1 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_1) As Short Declare Function cnc_rdset Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_2) As Short Declare Function cnc_rdset Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_3) As Short Declare Function cnc_rdset Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_4 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPSD_4) As Short ' write setting data Declare Function cnc_wrset Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_1 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_1) As Short Declare Function cnc_wrset Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_2) As Short Declare Function cnc_wrset Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_3) As Short Declare Function cnc_wrset Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_4 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_4) As Short ' read setting data(area specified) Declare Function cnc_rdsetr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_A ) As Short + (ByVal FlibHndl As Integer, + ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_A) As Short Declare Function cnc_rdsetr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_B ) As Short + (ByVal FlibHndl As Integer, + ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_B) As Short Declare Function cnc_rdsetr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_C ) As Short + (ByVal FlibHndl As Integer, + ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_C) As Short Declare Function cnc_rdsetr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_D ) As Short + (ByVal FlibHndl As Integer, + ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As IODBPSD_D) As Short ' write setting data(area specified) Declare Function cnc_wrsets Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_A ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_A) As Short Declare Function cnc_wrsets Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_B ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_B) As Short Declare Function cnc_wrsets Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_C ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_C) As Short Declare Function cnc_wrsets Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_D ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPSD_D) As Short ' read parameters Declare Function cnc_rdparam_ext Lib "FWLIB32.DLL" _ @@ -8246,15 +8450,15 @@ Public Class Focas1 ' async parameter write start Declare Function cnc_start_async_wrparam Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBPRM ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBPRM) As Short ' async parameter write end Declare Function cnc_end_async_wrparam Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' read cause of busy for async parameter write Declare Function cnc_async_busy_state Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' read diagnosis data Declare Function cnc_rddiag_ext Lib "FWLIB32.DLL" _ @@ -8262,48 +8466,48 @@ Public Class Focas1 ' read pitch error compensation data(area specified) Declare Function cnc_rdpitchr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPI ) As Short + (ByVal FlibHndl As Integer, + ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPI) As Short ' write pitch error compensation data(area specified) Declare Function cnc_wrpitchr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPI ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPI) As Short ' read custom macro variable Declare Function cnc_rdmacro Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBM ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBM) As Short ' write custom macro variable Declare Function cnc_wrmacro Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByVal d As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByVal d As Short) As Short ' read custom macro variables(area specified) Declare Function cnc_rdmacror Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBMR ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBMR) As Short ' write custom macro variables(area specified) Declare Function cnc_wrmacror Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBMR ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBMR) As Short ' read custom macro variables(IEEE double version) Declare Function cnc_rdmacror2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, <[In], Out> ByRef c() As Double ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, <[In], Out> ByRef c() As Double) As Short ' write custom macro variables(IEEE double version) Declare Function cnc_wrmacror2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, <[In], Out> ByVal c() As Double ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, <[In], Out> ByVal c() As Double) As Short ' read P code macro variable Declare Function cnc_rdpmacro Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As ODBPM ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As ODBPM) As Short ' write P code macro variable Declare Function cnc_wrpmacro Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c As Short) As Short ' read P code macro variables(area specified) Declare Function cnc_rdpmacror Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c As Integer, ByRef d As IODBPR) As Short ' write P code macro variables(area specified) @@ -8312,298 +8516,298 @@ Public Class Focas1 ' read P code macro variables(IEEE double version) Declare Function cnc_rdpmacror2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByVal c As Short, <[In], Out> ByVal d() As Double ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByVal c As Short, <[In], Out> ByVal d() As Double) As Short ' write P code macro variables(IEEE double version) Declare Function cnc_wrpmacror2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByVal c As Short, <[In], Out> ByVal d() As Double ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByVal c As Short, <[In], Out> ByVal d() As Double) As Short ' read tool offset information Declare Function cnc_rdtofsinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBTLINF ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBTLINF) As Short ' read tool offset information(2) Declare Function cnc_rdtofsinfo2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBTLINF2 ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBTLINF2) As Short ' read work zero offset information Declare Function cnc_rdzofsinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' read pitch error compensation data information Declare Function cnc_rdpitchinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' read custom macro variable information Declare Function cnc_rdmacroinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBMVINF ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBMVINF) As Short ' read P code macro variable information Declare Function cnc_rdpmacroinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBPMINF ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBPMINF) As Short ' read validity of tool offset Declare Function cnc_tofs_rnge Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer , ByVal b As Integer , ByRef c As ODBDATRNG ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByRef c As ODBDATRNG) As Short ' read validity of work zero offset Declare Function cnc_zofs_rnge Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer , ByVal b As Integer , ByRef c As ODBDATRNG ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByRef c As ODBDATRNG) As Short ' read validity of work zero offset Declare Function cnc_wksft_rnge Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer , ByRef b As ODBDATRNG ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As ODBDATRNG) As Short ' read the information for function cnc_rdhsparam() Declare Function cnc_rdhsprminfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer , ByRef b As HSPINFO_data ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As HSPINFO_data) As Short ' read parameters at the high speed Declare Function cnc_rdhsparam Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer , ByRef b As HSPINFO , ByRef c As HSPDATA_1 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As HSPINFO, ByRef c As HSPDATA_1) As Short Declare Function cnc_rdhsparam Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer , ByRef b As HSPINFO , ByRef c As HSPDATA_2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As HSPINFO, ByRef c As HSPDATA_2) As Short Declare Function cnc_rdhsparam Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer , ByRef b As HSPINFO , ByRef c As HSPDATA_3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As HSPINFO, ByRef c As HSPDATA_3) As Short -'---------------------------------------- -' CNC: Tool life management data related -'---------------------------------------- + '---------------------------------------- + ' CNC: Tool life management data related + '---------------------------------------- ' read tool life management data(tool group number) Declare Function cnc_rdgrpid Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBTLIFE1 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBTLIFE1) As Short ' read tool life management data(number of tool groups) Declare Function cnc_rdngrp Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBTLIFE2 ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBTLIFE2) As Short ' read tool life management data(number of tools) Declare Function cnc_rdntool Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBTLIFE3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBTLIFE3) As Short ' read tool life management data(tool life) Declare Function cnc_rdlife Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBTLIFE3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBTLIFE3) As Short ' read tool life management data(tool lift counter) Declare Function cnc_rdcount Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBTLIFE3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBTLIFE3) As Short ' read tool life management data(tool length number-1) Declare Function cnc_rd1length Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4) As Short ' read tool life management data(tool length number-2) Declare Function cnc_rd2length Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4) As Short ' read tool life management data(cutter compensation no.-1) Declare Function cnc_rd1radius Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4) As Short ' read tool life management data(cutter compensation no.-2) Declare Function cnc_rd2radius Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4) As Short ' read tool life management data(tool information-1) Declare Function cnc_t1info Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4) As Short ' read tool life management data(tool information-2) Declare Function cnc_t2info Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4) As Short ' read tool life management data(tool number) Declare Function cnc_toolnum Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTLIFE4) As Short ' read tool life management data(tool number, tool life, tool life counter)(area specified) Declare Function cnc_rdtoolrng Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBTR ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBTR) As Short ' read tool life management data(all data within group) Declare Function cnc_rdtoolgrp Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTG ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBTG) As Short ' write tool life management data(tool life counter) (area specified) Declare Function cnc_wrcountr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IDBWRC ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IDBWRC) As Short ' read tool life management data(used tool group number) Declare Function cnc_rdusegrpid Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBUSEGR ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBUSEGR) As Short ' read tool life management data(max. number of tool groups) Declare Function cnc_rdmaxgrp Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBLFNO ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBLFNO) As Short ' read tool life management data(maximum number of tool within group) Declare Function cnc_rdmaxtool Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBLFNO ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBLFNO) As Short ' read tool life management data(used tool no. within group) Declare Function cnc_rdusetlno Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBTLUSE ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBTLUSE) As Short ' read tool life management data(tool data1) Declare Function cnc_rd1tlifedata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBTD ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBTD) As Short ' read tool life management data(tool data2) Declare Function cnc_rd2tlifedata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBTD ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBTD) As Short ' write tool life management data(tool data1) Declare Function cnc_wr1tlifedata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBTD ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBTD) As Short ' write tool life management data(tool data2) Declare Function cnc_wr2tlifedata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBTD ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBTD) As Short ' read tool life management data(tool group information) Declare Function cnc_rdgrpinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBTGI ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBTGI) As Short ' read tool life management data(tool group information 2) Declare Function cnc_rdgrpinfo2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBTGI2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBTGI2) As Short ' read tool life management data(tool group information 3) Declare Function cnc_rdgrpinfo3 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBTGI3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBTGI3) As Short ' read tool life management data(tool group information 4) Declare Function cnc_rdgrpinfo4 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As Short, ByRef e As IODBTGI4 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As Short, ByRef e As IODBTGI4) As Short ' write tool life management data(tool group information) Declare Function cnc_wrgrpinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTGI ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTGI) As Short ' write tool life management data(tool group information 2) Declare Function cnc_wrgrpinfo2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTGI2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTGI2) As Short ' write tool life management data(tool group information 3) Declare Function cnc_wrgrpinfo3 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTGI3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTGI3) As Short ' delete tool life management data(tool group) Declare Function cnc_deltlifegrp Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' insert tool life management data(tool data) Declare Function cnc_instlifedt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IDBITD ) As Short + (ByVal FlibHndl As Integer, ByRef a As IDBITD) As Short ' delete tool life management data(tool data) Declare Function cnc_deltlifedt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short) As Short ' clear tool life management data(tool life counter, tool information)(area specified) Declare Function cnc_clrcntinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short) As Short ' read tool life management data(tool group number) 2 Declare Function cnc_rdgrpid2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As ODBTLIFE5 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As ODBTLIFE5) As Short ' read tool life management data(tool data1) 2 Declare Function cnc_rd1tlifedat2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As IODBTD2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As IODBTD2) As Short ' write tool life management data(tool data1) 2 Declare Function cnc_wr1tlifedat2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBTD2 ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBTD2) As Short ' read tool life management data Declare Function cnc_rdtlinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBTLINFO ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBTLINFO) As Short ' read tool life management data(used tool group number) Declare Function cnc_rdtlusegrp Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBUSEGRP ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBUSEGRP) As Short ' read tool life management data(tool group information 2) Declare Function cnc_rdtlgrp Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Short, ByRef c As IODBTLGRP ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Short, ByRef c As IODBTLGRP) As Short ' read tool life management data (tool data1) Declare Function cnc_rdtltool Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByRef c As Short, ByRef d As IODBTLTOOL ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByRef c As Short, ByRef d As IODBTLTOOL) As Short Declare Function cnc_rdexchgtgrp Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef b As Short, ByRef c As ODBEXGP ) As Short + (ByVal FlibHndl As Integer, ByRef b As Short, ByRef c As ODBEXGP) As Short -'----------------------------------- -' CNC: Tool management data related -'----------------------------------- + '----------------------------------- + ' CNC: Tool management data related + '----------------------------------- ' new registration of tool management data Declare Function cnc_regtool Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLMNG ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLMNG) As Short ' new registration of tool management data Declare Function cnc_regtool_f2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLMNG_F2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLMNG_F2) As Short ' deletion of tool management data Declare Function cnc_deltool Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short) As Short ' lead of tool management data Declare Function cnc_rdtool Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLMNG ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLMNG) As Short ' lead of tool management data Declare Function cnc_rdtool_f2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLMNG_F2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLMNG_F2) As Short ' write of tool management data Declare Function cnc_wrtool Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTLMNG ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTLMNG) As Short ' write of individual data of tool management data Declare Function cnc_wrtool2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IDBTLM ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IDBTLM) As Short ' write tool management data Declare Function cnc_wrtool_f2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTLMNG_F2_data ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTLMNG_F2_data) As Short ' new registration of magazine management data Declare Function cnc_regmagazine Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As IODBTLMAG ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As IODBTLMAG) As Short ' deletion of magazine management data Declare Function cnc_delmagazine Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As IODBTLMAG2 ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As IODBTLMAG2) As Short ' lead of magazine management data Declare Function cnc_rdmagazine Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As IODBTLMAG ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As IODBTLMAG) As Short ' Individual write of magazine management data Declare Function cnc_wrmagazine Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short) As Short -'------------------------------------- -' CNC: Operation history data related -'------------------------------------- + '------------------------------------- + ' CNC: Operation history data related + '------------------------------------- ' stop logging operation history data Declare Function cnc_stopophis Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' restart logging operation history data Declare Function cnc_startophis Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' read number of operation history data Declare Function cnc_rdophisno Lib "FWLIB32.DLL" _ @@ -8615,52 +8819,52 @@ Public Class Focas1 ' read operation history data Declare Function cnc_rdophistry2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, <[In], Out> ByVal d() As ODBOPHIS) As Short ' read operation history data F30i Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_1) As Short Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_2) As Short Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_3) As Short Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_4) As Short Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_5) As Short Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_6) As Short Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_7) As Short Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_8) As Short Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_9) As Short Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_10) As Short Declare Function cnc_rdophistry4 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As Integer, ByRef d As ODBOPHIS4_11) As Short ' read number of alarm history data @@ -8689,39 +8893,39 @@ Public Class Focas1 ' clear operation history data Declare Function cnc_clearophis Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' read signals related operation history Declare Function cnc_rdhissgnl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBSIG ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBSIG) As Short ' read signals related operation history 2 Declare Function cnc_rdhissgnl2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBSIG2 ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBSIG2) As Short ' read signals related operation history 3 Declare Function cnc_rdhissgnl3 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBSIG3 ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBSIG3) As Short ' write signals related operation history Declare Function cnc_wrhissgnl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBSIG ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBSIG) As Short ' write signals related operation history 2 Declare Function cnc_wrhissgnl2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBSIG2 ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBSIG2) As Short ' write signals related operation history for F30i Declare Function cnc_wrhissgnl3 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBSIG3 ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBSIG3) As Short ' read number of operater message history data Declare Function cnc_rdomhisno Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short -'------------- -' CNC: Others -'------------- + '------------- + ' CNC: Others + '------------- ' read CNC system information Declare Function cnc_sysinfo Lib "FWLIB32.DLL" _ @@ -8729,7 +8933,7 @@ Public Class Focas1 ' read CNC status information Declare Function cnc_statinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBST ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBST) As Short ' read alarm status Declare Function cnc_alarm Lib "FWLIB32.DLL" _ @@ -8737,7 +8941,7 @@ Public Class Focas1 ' read alarm status Declare Function cnc_alarm2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer) As Short ' read alarm information Declare Function cnc_rdalminfo Lib "FWLIB32.DLL" _ @@ -8748,168 +8952,168 @@ Public Class Focas1 ' read alarm message Declare Function cnc_rdalmmsg Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBALMMSG ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBALMMSG) As Short ' read alarm message (2) Declare Function cnc_rdalmmsg2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBALMMSG2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBALMMSG2) As Short ' clear CNC alarm Declare Function cnc_clralm Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' read modal data Declare Function cnc_modal Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBMDL_1 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBMDL_1) As Short Declare Function cnc_modal Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBMDL_2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBMDL_2) As Short Declare Function cnc_modal Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBMDL_3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBMDL_3) As Short Declare Function cnc_modal Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBMDL_4 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBMDL_4) As Short Declare Function cnc_modal Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBMDL_5 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBMDL_5) As Short ' read G code Declare Function cnc_rdgcode Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As Short, ByRef d As ODBGCD ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As Short, ByRef d As ODBGCD) As Short ' read command value Declare Function cnc_rdcommand Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As Short, ByRef d As ODBCMD ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As Short, ByRef d As ODBCMD) As Short ' read diagnosis data Declare Function cnc_diagnoss Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBDGN_1 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBDGN_1) As Short Declare Function cnc_diagnoss Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBDGN_2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBDGN_2) As Short Declare Function cnc_diagnoss Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBDGN_3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBDGN_3) As Short Declare Function cnc_diagnoss Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBDGN_4 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBDGN_4) As Short ' read diagnosis data(area specified) Declare Function cnc_diagnosr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As ODBDGN_A ) As Short + (ByVal FlibHndl As Integer, + ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As ODBDGN_A) As Short Declare Function cnc_diagnosr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As ODBDGN_B ) As Short + (ByVal FlibHndl As Integer, + ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As ODBDGN_B) As Short Declare Function cnc_diagnosr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As ODBDGN_C ) As Short + (ByVal FlibHndl As Integer, + ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As ODBDGN_C) As Short Declare Function cnc_diagnosr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As ODBDGN_D ) As Short + (ByVal FlibHndl As Integer, + ByRef a As Short, ByVal b As Short, ByRef c As Short, ByRef d As Short, ByRef e As ODBDGN_D) As Short ' read A/D conversion data Declare Function cnc_adcnv Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAD ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAD) As Short ' read operator's message Declare Function cnc_rdopmsg Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As OPMSG ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As OPMSG) As Short ' read operator's message Declare Function cnc_rdopmsg2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As OPMSG2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As OPMSG2) As Short ' read operator's message Declare Function cnc_rdopmsg3 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As OPMSG3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As OPMSG3) As Short ' set path number(for 4 axes lathes, multi-path) Declare Function cnc_setpath Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' get path number(for 4 axes lathes, multi-path) Declare Function cnc_getpath Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As Short) As Short ' allocate library handle Declare Function cnc_allclibhndl Lib "FWLIB32.DLL" _ - ( ByRef FlibHndl As Integer ) As Short + (ByRef FlibHndl As Integer) As Short ' free library handle Declare Function cnc_freelibhndl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' get library option Declare Function cnc_getlibopt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, <[In], Out> ByVal b() As Char, ByRef c As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, <[In], Out> ByVal b() As Char, ByRef c As Integer) As Short ' set library option Declare Function cnc_setlibopt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b() As Char, ByVal c As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b() As Char, ByVal c As Integer) As Short ' get custom macro type Declare Function cnc_getmactype Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' set custom macro type Declare Function cnc_setmactype Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' get P code macro type Declare Function cnc_getpmactype Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' set P code macro type Declare Function cnc_setpmactype Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' get screen status Declare Function cnc_getcrntscrn Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' change screen mode Declare Function cnc_slctscrn Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' read CNC configuration information Declare Function cnc_sysconfig Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBSYSC ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBSYSC) As Short ' read program restart information Declare Function cnc_rdprstrinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBPRS ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBPRS) As Short ' search sequence number for program restart Declare Function cnc_rstrseqsrch Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c As Short, ByVal d As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, ByVal c As Short, ByVal d As Short) As Short ' search sequence number for program restart 2 Declare Function cnc_rstrseqsrch2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByVal a As Integer, ByVal b As Integer, ByVal c As Short, ByVal d As Short, ByVal e As Integer ) As Short + (ByVal FlibHndl As Integer, + ByVal a As Integer, ByVal b As Integer, ByVal c As Short, ByVal d As Short, ByVal e As Integer) As Short ' read output signal image of software operator's panel Declare Function cnc_rdopnlsgnl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSGNL ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSGNL) As Short ' write output signal of software operator's panel Declare Function cnc_wropnlsgnl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBSGNL ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBSGNL) As Short ' read general signal image of software operator's panel Declare Function cnc_rdopnlgnrl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBGNRL ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBGNRL) As Short ' write general signal image of software operator's panel Declare Function cnc_wropnlgnrl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBGNRL ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBGNRL) As Short ' read general signal name of software operator's panel Declare Function cnc_rdopnlgsname Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBRDNA ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBRDNA) As Short ' write general signal name of software operator's panel Declare Function cnc_wropnlgsname Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBRDNA ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBRDNA) As Short ' get detail error Declare Function cnc_getdtailerr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBERR ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBERR) As Short ' read informations of CNC parameter Declare Function cnc_rdparainfo Lib "FWLIB32.DLL" _ @@ -8925,136 +9129,136 @@ Public Class Focas1 ' read maximum, minimum and total number of CNC parameter Declare Function cnc_rdparanum Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBPARANUM ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBPARANUM) As Short ' read maximum, minimum and total number of CNC setting data Declare Function cnc_rdsetnum Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBSETNUM ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBSETNUM) As Short ' read maximum, minimum and total number of CNC diagnose data Declare Function cnc_rddiagnum Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBDIAGNUM ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBDIAGNUM) As Short ' get maximum valid figures and number of decimal places Declare Function cnc_getfigure Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, <[In], Out> ByVal c() As Short, <[In], Out> ByVal d() As Short) As Short ' read F-ROM information on CNC Declare Function cnc_rdfrominfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBFINFO ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBFINFO) As Short ' start of reading F-ROM data from CNC Declare Function cnc_fromsvstart Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String, ByVal c As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String, ByVal c As Integer) As Short ' read F-ROM data from CNC Declare Function cnc_fromsave Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Byte, ByRef c As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Byte, ByRef c As Integer) As Short ' end of reading F-ROM data from CNC Declare Function cnc_fromsvend Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' start of writing F-ROM data to CNC Declare Function cnc_fromldstart Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer) As Short ' write F-ROM data to CNC Declare Function cnc_fromload Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal b() As Byte, ByRef b As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal b() As Byte, ByRef b As Integer) As Short ' end of writing F-ROM data to CNC Declare Function cnc_fromldend Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' delete F-ROM data on CNC Declare Function cnc_fromdelete Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String, ByVal c As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String, ByVal c As Integer) As Short ' read S-RAM information on CNC Declare Function cnc_rdsraminfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBSINFO ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBSINFO) As Short ' start of reading S-RAM data from CNC Declare Function cnc_srambkstart Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Integer) As Short ' read S-RAM data from CNC Declare Function cnc_srambackup Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Byte, ByRef c As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Byte, ByRef c As Integer) As Short ' end of reading S-RAM data from CNC Declare Function cnc_srambkend Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' read F-ROM information on CNC Declare Function cnc_getfrominfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBFINFORM ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBFINFORM) As Short ' start of reading F-ROM data from CNC Declare Function cnc_fromgetstart Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String) As Short ' read F-ROM data from CNC Declare Function cnc_fromget Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Byte, ByRef c As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Byte, ByRef c As Integer) As Short ' end of reading F-ROM data from CNC Declare Function cnc_fromgetend Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' start of writing F-ROM data to CNC Declare Function cnc_fromputstart Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' write F-ROM data to CNC Declare Function cnc_fromput Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a() As Byte, ByRef b As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a() As Byte, ByRef b As Integer) As Short ' end of writing F-ROM data to CNC Declare Function cnc_fromputend Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' delete F-ROM data on CNC Declare Function cnc_fromremove Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As String) As Short ' read S-RAM information on CNC Declare Function cnc_getsraminfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBSINFO ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBSINFO) As Short ' start of reading S-RAM data from CNC Declare Function cnc_sramgetstart Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String ) As Short + (ByVal FlibHndl As Integer, ByVal a As String) As Short ' start of reading S-RAM data from CNC (2) Declare Function cnc_sramgetstart2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String ) As Short + (ByVal FlibHndl As Integer, ByVal a As String) As Short ' read S-RAM data from CNC Declare Function cnc_sramget Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Byte, ByRef c As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Byte, ByRef c As Integer) As Short ' read S-RAM data from CNC (2) Declare Function cnc_sramget2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Byte, ByRef c As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, <[In], Out> ByVal b() As Byte, ByRef c As Integer) As Short ' end of reading S-RAM data from CNC Declare Function cnc_sramgetend Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' end of reading S-RAM data from CNC (2) Declare Function cnc_sramgetend2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' read number of S-RAM data kind on CNC Declare Function cnc_rdsramnum Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' read S-RAM data address information on CNC Declare Function cnc_rdsramaddr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As SRAMADDR ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As SRAMADDR) As Short ' get current NC data protection information Declare Function cnc_getlockstat Lib "FWLIB32.DLL" _ @@ -9074,11 +9278,11 @@ Public Class Focas1 ' get transfer status for FTP Declare Function cnc_dtsvftpstat Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' read file directory in Data Server Declare Function cnc_dtsvrdpgdir Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Short, ByRef c As ODBDSDIR ) As Short + (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Short, ByRef c As ODBDSDIR) As Short ' delete files in Data Server Declare Function cnc_dtsvdelete Lib "FWLIB32.DLL" _ @@ -9094,11 +9298,11 @@ Public Class Focas1 ' close upload/download between Data Server and CNC Declare Function cnc_dtsvcnclupdn Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' get transfer status for up/down load Declare Function cnc_dtsvupdnstat Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' get file name for DNC operation in Data Server Declare Function cnc_dtsvgetdncpg Lib "FWLIB32.DLL" _ @@ -9110,23 +9314,23 @@ Public Class Focas1 ' read setting data for Data Server Declare Function cnc_dtsvrdset Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBDSSET ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBDSSET) As Short ' write setting data for Data Server Declare Function cnc_dtsvwrset Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBDSSET ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBDSSET) As Short ' check hard disk in Data Server Declare Function cnc_dtsvchkdsk Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' format hard disk in Data Server Declare Function cnc_dtsvhdformat Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' save interface area in Data Server Declare Function cnc_dtsvsavecram Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' get interface area in Data Server Declare Function cnc_dtsvrdcram Lib "FWLIB32.DLL" _ @@ -9134,15 +9338,15 @@ Public Class Focas1 ' read maintenance information for Data Server Declare Function cnc_dtsvmntinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBDSMNT ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBDSMNT) As Short ' get Data Server mode Declare Function cnc_dtsvgetmode Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' set Data Server mode Declare Function cnc_dtsvsetmode Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' read error message for Data Server Declare Function cnc_dtsvrderrmsg Lib "FWLIB32.DLL" _ @@ -9158,39 +9362,39 @@ Public Class Focas1 ' read the loop gain for each axis Declare Function cnc_rdloopgain Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer) As Short ' read the actual current for each axis Declare Function cnc_rdcurrent Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' read the actual speed for each axis Declare Function cnc_rdsrvspeed Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer) As Short ' read the operation mode Declare Function cnc_rdopmode Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' read the position deviation S Declare Function cnc_rdposerrs Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer) As Short ' read the position deviation S1 and S2 Declare Function cnc_rdposerrs2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBPSER ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBPSER) As Short ' read the position deviation Z in the rigid tap mode Declare Function cnc_rdposerrz Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer) As Short ' read the synchronous error in the synchronous control mode Declare Function cnc_rdsynerrsy Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer) As Short ' read the synchronous error in the rigid tap mode Declare Function cnc_rdsynerrrg Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer) As Short ' read the spindle alarm Declare Function cnc_rdspdlalm Lib "FWLIB32.DLL" _ @@ -9198,128 +9402,128 @@ Public Class Focas1 ' read the control input signal Declare Function cnc_rdctrldi Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBSPDI ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBSPDI) As Short ' read the control output signal Declare Function cnc_rdctrldo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBSPDO ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBSPDO) As Short ' read the number of controled spindle Declare Function cnc_rdnspdl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' read data from FANUC BUS Declare Function cnc_rdfbusmem Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByVal d As Integer, <[In], Out> ByVal e() As Byte) As Short ' write data to FANUC BUS Declare Function cnc_wrfbusmem Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByVal d As Integer, ByVal e() As Byte) As Short ' read the parameter of wave diagnosis Declare Function cnc_rdwaveprm Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBWAVE ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBWAVE) As Short ' write the parameter of wave diagnosis Declare Function cnc_wrwaveprm Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBWAVE ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBWAVE) As Short ' read the parameter of wave diagnosis 2 Declare Function cnc_rdwaveprm2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBWVPRM ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBWVPRM) As Short ' write the parameter of wave diagnosis 2 Declare Function cnc_wrwaveprm2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBWVPRM ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBWVPRM) As Short ' start the sampling for wave diagnosis Declare Function cnc_wavestart Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' stop the sampling for wave diagnosis Declare Function cnc_wavestop Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' read the status of wave diagnosis Declare Function cnc_wavestat Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' read the data of wave diagnosis Declare Function cnc_rdwavedata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByRef d As Integer, ByRef e As ODBWVDT ) As Short + (ByVal FlibHndl As Integer, + ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByRef d As Integer, ByRef e As ODBWVDT) As Short ' read the parameter of wave diagnosis for remort diagnosis Declare Function cnc_rdrmtwaveprm Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBRMTPRM, ByVal b As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBRMTPRM, ByVal b As Short) As Short ' write the parameter of wave diagnosis for remort diagnosis Declare Function cnc_wrrmtwaveprm Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBRMTPRM ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBRMTPRM) As Short ' start the sampling for wave diagnosis for remort diagnosis Declare Function cnc_rmtwavestart Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' stop the sampling for wave diagnosis for remort diagnosis Declare Function cnc_rmtwavestop Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' read the status of wave diagnosis for remort diagnosis Declare Function cnc_rmtwavestat Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' read the data of wave diagnosis for remort diagnosis Declare Function cnc_rdrmtwavedt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As Integer, ByRef d As ODBRMTDT ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As Integer, ByRef d As ODBRMTDT) As Short ' read of address for PMC signal batch save Declare Function cnc_rdsavsigadr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBSIGAD, ByVal b As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBSIGAD, ByVal b As Short) As Short ' write of address for PMC signal batch save Declare Function cnc_wrsavsigadr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBSIGAD, ByRef b As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBSIGAD, ByRef b As Short) As Short ' read of data for PMC signal batch save Declare Function cnc_rdsavsigdata Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, <[In], Out> ByVal c() As Byte, ByRef d As Short) As Short ' read M-code group data Declare Function cnc_rdmgrpdata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBMGRP ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBMGRP) As Short ' write M-code group data Declare Function cnc_wrmgrpdata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IDBMGRP ) As Short + (ByVal FlibHndl As Integer, ByRef a As IDBMGRP) As Short ' read executing M-code group data Declare Function cnc_rdexecmcode Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBEXEM ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBEXEM) As Short ' read program restart M-code group data Declare Function cnc_rdrstrmcode Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBRSTRM ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBRSTRM) As Short ' read processing time stamp data Declare Function cnc_rdproctime Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBPTIME ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBPTIME) As Short ' read MDI program stat Declare Function cnc_rdmdiprgstat Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' read program directory for processing time data Declare Function cnc_rdprgdirtime Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Short, ByRef c As PRGDIRTM ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer, ByRef b As Short, ByRef c As PRGDIRTM) As Short ' read program directory 2 #If ONO8D = Nothing Then Declare Function cnc_rdprogdir2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As Short, ByRef d As PRGDIR2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As Short, ByRef d As PRGDIR2) As Short #Else Declare Function cnc_rdprogdir2 Lib "FWLIB32.DLL" Alias "cnc_rdprogdir2o8" _ ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As Short, ByRef d As PRGDIR2 ) As Short @@ -9327,11 +9531,11 @@ Public Class Focas1 ' read program directory 3 Declare Function cnc_rdprogdir3 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Integer, ByRef c As Short, ByRef d As PRGDIR3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Integer, ByRef c As Short, ByRef d As PRGDIR3) As Short ' read program directory 4 Declare Function cnc_rdprogdir4 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As Short, ByRef d As PRGDIR4 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As Short, ByRef d As PRGDIR4) As Short ' read DNC file name for DNC1, DNC2, OSI-Ethernet Declare Function cnc_rddncfname Lib "FWLIB32.DLL" _ @@ -9343,11 +9547,11 @@ Public Class Focas1 ' read communication parameter for DNC1, DNC2, OSI-Ethernet Declare Function cnc_rdcomparam Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBCPRM ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBCPRM) As Short ' write communication parameter for DNC1, DNC2, OSI-Ethernet Declare Function cnc_wrcomparam Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBCPRM ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBCPRM) As Short ' read log message for DNC2 Declare Function cnc_rdcomlogmsg Lib "FWLIB32.DLL" _ @@ -9371,7 +9575,7 @@ Public Class Focas1 ' clear message buffer for OSI-Ethernet Declare Function cnc_clrmsgbuff Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' read message recieve status for OSI-Ethernet Declare Function cnc_rdrcvstat Lib "FWLIB32.DLL" _ @@ -9379,43 +9583,43 @@ Public Class Focas1 ' read interference check Declare Function cnc_rdintchk Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBINT ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBINT) As Short ' write interference check Declare Function cnc_wrintchk Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBINT ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBINT) As Short ' read interference check information Declare Function cnc_rdintinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' read work coordinate shift Declare Function cnc_rdwkcdshft Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBWCSF ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBWCSF) As Short ' write work coordinate shift Declare Function cnc_wrwkcdshft Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBWCSF ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBWCSF) As Short ' read work coordinate shift measure Declare Function cnc_rdwkcdsfms Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBWCSF ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBWCSF) As Short ' write work coordinate shift measure Declare Function cnc_wrwkcdsfms Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBWCSF ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBWCSF) As Short ' stop the sampling for operator message history Declare Function cnc_stopomhis Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' start the sampling for operator message history Declare Function cnc_startomhis Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' read operator message history information Declare Function cnc_rdomhisinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBOMIF ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBOMIF) As Short ' read operator message history Declare Function cnc_rdomhistry Lib "FWLIB32.DLL" _ @@ -9423,43 +9627,43 @@ Public Class Focas1 ' read operater message history data F30i Declare Function cnc_rdomhistry2 Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBOMHIS2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As ODBOMHIS2) As Short ' write external key operation history for F30i Declare Function cnc_wrkeyhistry Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Byte ) As Short + (ByVal FlibHndl As Integer, ByVal a As Byte) As Short ' clear operator message history Declare Function cnc_clearomhis Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' read b-axis tool offset value(area specified) Declare Function cnc_rdbtofsr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBBTO ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBBTO) As Short ' write b-axis tool offset value(area specified) Declare Function cnc_wrbtofsr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBBTO ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBBTO) As Short ' read b-axis tool offset information Declare Function cnc_rdbtofsinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBBTLINF ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBBTLINF) As Short ' read b-axis command Declare Function cnc_rdbaxis Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBBAXIS ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBBAXIS) As Short ' read CNC system soft series and version Declare Function cnc_rdsyssoft Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBSYSS ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBSYSS) As Short ' read CNC system soft series and version (2) Declare Function cnc_rdsyssoft2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBSYSS2 ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBSYSS2) As Short ' read CNC module configuration information Declare Function cnc_rdmdlconfig Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBMDLC ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBMDLC) As Short ' read CNC module configuration information 2 Declare Function cnc_rdmdlconfig2 Lib "FWLIB32.DLL" _ @@ -9467,219 +9671,219 @@ Public Class Focas1 ' read processing condition file (processing data) Declare Function cnc_rdpscdproc Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBPSCD ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBPSCD) As Short ' write processing condition file (processing data) Declare Function cnc_wrpscdproc Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBPSCD ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBPSCD) As Short ' read processing condition file (piercing data) Declare Function cnc_rdpscdpirc Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBPIRC ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBPIRC) As Short ' write processing condition file (piercing data) Declare Function cnc_wrpscdpirc Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBPIRC ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBPIRC) As Short ' read processing condition file (edging data) Declare Function cnc_rdpscdedge Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBEDGE ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBEDGE) As Short ' write processing condition file (edging data) Declare Function cnc_wrpscdedge Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBEDGE ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBEDGE) As Short ' read processing condition file (slope data) Declare Function cnc_rdpscdslop Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBSLOP ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBSLOP) As Short ' write processing condition file (slope data) Declare Function cnc_wrpscdslop Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBSLOP ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBSLOP) As Short ' read power controll duty data Declare Function cnc_rdlpwrdty Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBLPWDT ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBLPWDT) As Short ' write power controll duty data Declare Function cnc_wrlpwrdty Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBLPWDT ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBLPWDT) As Short ' read laser power data Declare Function cnc_rdlpwrdat Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBLOPDT ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBLOPDT) As Short ' read power complement Declare Function cnc_rdlpwrcpst Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' write power complement Declare Function cnc_wrlpwrcpst Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' read laser assist gas selection Declare Function cnc_rdlagslt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBLAGSL ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBLAGSL) As Short ' write laser assist gas selection Declare Function cnc_wrlagslt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBLAGSL ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBLAGSL) As Short ' read laser assist gas flow Declare Function cnc_rdlagst Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBLAGST ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBLAGST) As Short ' write laser assist gas flow Declare Function cnc_wrlagst Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBLAGST ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBLAGST) As Short ' read laser power for edge processing Declare Function cnc_rdledgprc Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBLEGPR ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBLEGPR) As Short ' write laser power for edge processing Declare Function cnc_wrledgprc Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBLEGPR ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBLEGPR) As Short ' read laser power for piercing Declare Function cnc_rdlprcprc Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBLPCPR ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBLPCPR) As Short ' write laser power for piercing Declare Function cnc_wrlprcprc Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBLPCPR ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBLPCPR) As Short ' read laser command data Declare Function cnc_rdlcmddat Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBLCMDT ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBLCMDT) As Short ' read displacement Declare Function cnc_rdldsplc Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' write displacement Declare Function cnc_wrldsplc Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' read error for axis z Declare Function cnc_rdlerrz Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' read active number Declare Function cnc_rdlactnum Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBLACTN ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBLACTN) As Short ' read laser comment Declare Function cnc_rdlcmmt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBLCMMT ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBLCMMT) As Short ' read laser power select Declare Function cnc_rdlpwrslt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' write laser power select Declare Function cnc_wrlpwrslt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' read laser power controll Declare Function cnc_rdlpwrctrl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' write laser power controll Declare Function cnc_wrlpwrctrl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' read power correction factor history data Declare Function cnc_rdpwofsthis Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As ODBPWOFST ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As ODBPWOFST) As Short ' read management time Declare Function cnc_rdmngtime Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As IODBMNGTIME ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As IODBMNGTIME) As Short ' write management time Declare Function cnc_wrmngtime Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As IODBMNGTIME ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As IODBMNGTIME) As Short ' read data related to electrical discharge at power correction ends Declare Function cnc_rddischarge Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBDISCHRG ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBDISCHRG) As Short ' read alarm history data related to electrical discharg Declare Function cnc_rddischrgalm Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As ODBDISCHRGALM ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByRef b As Integer, ByRef c As ODBDISCHRGALM) As Short ' get date and time from cnc Declare Function cnc_gettimer Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBTIMER ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBTIMER) As Short ' set date and time for cnc Declare Function cnc_settimer Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBTIMER ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBTIMER) As Short ' read timer data from cnc Declare Function cnc_rdtimer Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTIME ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTIME) As Short ' write timer data for cnc Declare Function cnc_wrtimer Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTIME ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBTIME) As Short ' read tool controll data Declare Function cnc_rdtlctldata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBTLCTL ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBTLCTL) As Short ' write tool controll data Declare Function cnc_wrtlctldata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBTLCTL ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBTLCTL) As Short ' read tool data Declare Function cnc_rdtooldata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLDT ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLDT) As Short ' read tool data Declare Function cnc_wrtooldata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLDT ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLDT) As Short ' read multi tool data Declare Function cnc_rdmultitldt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBMLTTL ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBMLTTL) As Short ' write multi tool data Declare Function cnc_wrmultitldt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBMLTTL ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBMLTTL) As Short ' read multi tap data Declare Function cnc_rdmtapdata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBMTAP ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBMTAP) As Short ' write multi tap data Declare Function cnc_wrmtapdata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBMTAP ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBMTAP) As Short ' read multi-piece machining number Declare Function cnc_rdmultipieceno Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer) As Short ' read tool information Declare Function cnc_rdtoolinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBPTLINF ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBPTLINF) As Short ' read safetyzone data Declare Function cnc_rdsafetyzone Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBSAFE ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBSAFE) As Short ' write safetyzone data Declare Function cnc_wrsafetyzone Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBSAFE ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBSAFE) As Short ' read toolzone data Declare Function cnc_rdtoolzone Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLZN ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLZN) As Short ' write toolzone data Declare Function cnc_wrtoolzone Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLZN ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBTLZN) As Short ' read active toolzone data Declare Function cnc_rdacttlzone Lib "FWLIB32.DLL" _ @@ -9687,175 +9891,175 @@ Public Class Focas1 ' read setzone number Declare Function cnc_rdsetzone Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' write setzone number Declare Function cnc_wrsetzone Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' read block restart information Declare Function cnc_rdbrstrinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBBRS ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBBRS) As Short ' read menu switch signal Declare Function cnc_rdmenuswitch Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' write menu switch signal Declare Function cnc_wrmenuswitch Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short) As Short ' read tool radius offset for position data Declare Function cnc_rdradofs Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBROFS ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBROFS) As Short ' read tool length offset for position data Declare Function cnc_rdlenofs Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBLOFS ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBLOFS) As Short ' read fixed cycle for position data Declare Function cnc_rdfixcycle Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBFIX ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBFIX) As Short ' read coordinate rotate for position data Declare Function cnc_rdcdrotate Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBROT ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBROT) As Short ' read 3D coordinate convert for position data Declare Function cnc_rd3dcdcnv Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODB3DCD ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODB3DCD) As Short ' read programable mirror image for position data Declare Function cnc_rdmirimage Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBMIR ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBMIR) As Short ' read scaling for position data Declare Function cnc_rdscaling Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBSCL ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBSCL) As Short ' read 3D tool offset for position data Declare Function cnc_rd3dtofs Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODB3DTO ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODB3DTO) As Short ' read tool position offset for position data Declare Function cnc_rdposofs Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBPOFS ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBPOFS) As Short ' read hpcc setting data Declare Function cnc_rdhpccset Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBHPST ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBHPST) As Short ' write hpcc setting data Declare Function cnc_wrhpccset Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBHPST ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBHPST) As Short ' hpcc data auto setting data Declare Function cnc_hpccatset Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' read hpcc tuning data ( parameter input ) Declare Function cnc_rdhpcctupr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBHPPR ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBHPPR) As Short ' write hpcc tuning data ( parameter input ) Declare Function cnc_wrhpcctupr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBHPPR ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBHPPR) As Short ' read hpcc tuning data ( acc input ) Declare Function cnc_rdhpcctuac Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBHPAC ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBHPAC) As Short ' write hpcc tuning data ( acc input ) Declare Function cnc_wrhpcctuac Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBHPAC ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBHPAC) As Short ' hpcc data auto tuning Declare Function cnc_hpccattune Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short) As Short ' read hpcc fine level Declare Function cnc_hpccactfine Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' select hpcc fine level Declare Function cnc_hpccselfine Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' read active fixture offset Declare Function cnc_rdactfixofs Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBZOFS ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBZOFS) As Short ' read fixture offset Declare Function cnc_rdfixofs Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBZOR ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByVal d As Short, ByRef e As IODBZOR) As Short ' write fixture offset Declare Function cnc_wrfixofs Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBZOR ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBZOR) As Short ' read tip of tool for 3D handle Declare Function cnc_rd3dtooltip Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODB3DHDL ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODB3DHDL) As Short ' read pulse for 3D handle Declare Function cnc_rd3dpulse Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODB3DPLS ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODB3DPLS) As Short ' read move overrlap of tool for 3D handle Declare Function cnc_rd3dmovrlap Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODB3DHDL ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODB3DHDL) As Short ' read change offset for 3D handle Declare Function cnc_rd3dofschg Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer) As Short ' clear pulse and change offset for 3D handle Declare Function cnc_clr3dplsmov Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' cycle start Declare Function cnc_start Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' reset CNC Declare Function cnc_reset Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' reset CNC Declare Function cnc_reset2 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' read axis name Declare Function cnc_rdaxisname Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As ODBAXISNAME ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As ODBAXISNAME) As Short ' read spindle name Declare Function cnc_rdspdlname Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As ODBSPDLNAME ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As ODBSPDLNAME) As Short ' read extended axis name Declare Function cnc_exaxisname Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBEXAXISNAME ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBEXAXISNAME) As Short ' read SRAM variable area for C language executor Declare Function cnc_rdcexesram Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, <[In], Out> ByVal b() As Byte, ByRef c As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, <[In], Out> ByVal b() As Byte, ByRef c As Integer) As Short ' write SRAM variable area for C language executor Declare Function cnc_wrcexesram Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b() As Byte, ByRef c As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b() As Byte, ByRef c As Integer) As Short ' read maximum size and linear address of SRAM variable area for C language executor Declare Function cnc_cexesraminfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As Integer, ByRef c As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As Integer, ByRef c As Integer) As Short ' read maximum size of SRAM variable area for C language executor Declare Function cnc_cexesramsize Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer) As Short ' read additional workpiece coordinate systems number Declare Function cnc_rdcoordnum Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' converts from FANUC code to Shift JIS code Declare Function cnc_ftosjis Lib "FWLIB32.DLL" _ @@ -9863,109 +10067,109 @@ Public Class Focas1 ' Set the unsolicited message parameters Declare Function cnc_wrunsolicprm Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBUNSOLIC ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBUNSOLIC) As Short ' Get the unsolicited message parameters Declare Function cnc_rdunsolicprm Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBUNSOLIC ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBUNSOLIC) As Short ' Start of unsolicited message Declare Function cnc_unsolicstart Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal hWnd As Integer, ByVal c As Integer, ByVal d As Short, ByRef e As Short) As Short ' End of unsolicited message Declare Function cnc_unsolicstop Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' Reads the unsolicited message data Declare Function cnc_rdunsolicmsg Lib "FWLIB32.DLL" _ - ( ByVal a As Short, ByRef b As IDBUNSOLICMSG ) As Short + (ByVal a As Short, ByRef b As IDBUNSOLICMSG) As Short ' read cnc maintenance item Declare Function cnc_rdpm_mcnitem Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short , ByRef c As IODBITEM ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBITEM) As Short ' write machine specific maintenance item Declare Function cnc_wrpm_mcnitem Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short , ByRef c As IODBITEM ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As IODBITEM) As Short ' read machine specific maintenance item Declare Function cnc_rdpm_cncitem Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short , ByRef c As IODBITEM ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBITEM) As Short ' read maintenance item status Declare Function cnc_rdpm_item Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short , ByRef c As IODBPMAINTE ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As IODBPMAINTE) As Short ' write maintenance item status Declare Function cnc_wrpm_item Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPMAINTE ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPMAINTE) As Short ' Display of optional message Declare Function cnc_dispoptmsg Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String) As Short + (ByVal FlibHndl As Integer, ByVal a As String) As Short ' Reading of answer for optional message display Declare Function cnc_optmsgans Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' Get CNC Model Declare Function cnc_getcncmodel Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' read number of repeats Declare Function cnc_rdrepeatval Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Integer ) As Short + (ByVal FlibHndl As Integer, ByRef a As Integer) As Short ' read CNC system hard info Declare Function cnc_rdsyshard Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBSYSH ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As ODBSYSH) As Short ' read CNC system soft series and version (3) Declare Function cnc_rdsyssoft3 Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short , ByRef b As Short , ByRef c As Short , ByRef d As ODBSYSS3 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As Short, ByRef d As ODBSYSS3) As Short ' read digit of program number Declare Function cnc_progdigit Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' read CNC system path information Declare Function cnc_sysinfo_ex Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBSYSEX ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBSYSEX) As Short -'------------------ -' CNC : SERCOS I/F -'------------------ + '------------------ + ' CNC : SERCOS I/F + '------------------ ' Get reservation of service channel for SERCOS I/F Declare Function cnc_srcsrsvchnl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Read ID information of SERCOS I/F Declare Function cnc_srcsrdidinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, _ - ByVal a As Integer, ByVal b As Short, ByVal c As Short, ByRef d As IODBIDINF ) As Short + (ByVal FlibHndl As Integer, + ByVal a As Integer, ByVal b As Short, ByVal c As Short, ByRef d As IODBIDINF) As Short ' Write ID information of SERCOS I/F Declare Function cnc_srcswridinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBIDINF ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBIDINF) As Short ' Start of reading operation data from drive of SERCOS I/F Declare Function cnc_srcsstartrd Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Short) As Short ' Start of writing operation data to drive of SERCOS I/F Declare Function cnc_srcsstartwrt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Short) As Short ' Stop of reading/writing operation data from/to drive of SERCOS I/F Declare Function cnc_srcsstopexec Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Get execution status of reading/writing operation data of SERCOS I/F Declare Function cnc_srcsrdexstat Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBSRCSST ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBSRCSST) As Short ' Read operation data from data buffer for SERCOS I/F Declare Function cnc_srcsrdopdata Lib "FWLIB32.DLL" _ @@ -9977,36 +10181,36 @@ Public Class Focas1 ' Free reservation of service channel for SERCOS I/F Declare Function cnc_srcsfreechnl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Read drive assign of SERCOS I/F Declare Function cnc_srcsrdlayout Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBSRCSLYT ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBSRCSLYT) As Short ' Read communication phase of drive of SERCOS I/F Declare Function cnc_srcsrddrvcp Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short -'---------------------------- -' CNC : Graphic command data -'---------------------------- + '---------------------------- + ' CNC : Graphic command data + '---------------------------- ' Start drawing position Declare Function cnc_startdrawpos Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Stop drawing position Declare Function cnc_stopdrawpos Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Start dynamic graphic Declare Function cnc_startdyngrph Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Stop dynamic graphic Declare Function cnc_stopdyngrph Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Read graphic command data Declare Function cnc_rdgrphcmd Lib "FWLIB32.DLL" _ @@ -10014,40 +10218,40 @@ Public Class Focas1 ' Update graphic command read pointer Declare Function cnc_wrgrphcmdptr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' Read cancel flag Declare Function cnc_rdgrphcanflg Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' Clear graphic command Declare Function cnc_clrgrphcmd Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short -'--------------------------- -' CNC : Servo learning data -'--------------------------- + '--------------------------- + ' CNC : Servo learning data + '--------------------------- ' Servo learning data read start Declare Function cnc_svdtstartrd Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' Servo learning data write start Declare Function cnc_svdtstartwr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' Servo learning data read end Declare Function cnc_svdtendrd Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Servo learning data write end Declare Function cnc_svdtendwr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Servo learning data read/write stop Declare Function cnc_svdtstopexec Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Servo learning data read from I/F buffer Declare Function cnc_svdtrddata Lib "FWLIB32.DLL" _ @@ -10058,16 +10262,16 @@ Public Class Focas1 (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As Integer, ByVal c() As Byte) As Short -'---------------------------- -' CNC : Servo Guide -'---------------------------- + '---------------------------- + ' CNC : Servo Guide + '---------------------------- ' Servo Guide (Channel data set) Declare Function cnc_sdsetchnl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IDBCHAN ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IDBCHAN) As Short ' Servo Guide (Channel data clear) Declare Function cnc_sdclrchnl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Servo Guide (Sampling start) Declare Function cnc_sdstartsmpl Lib "FWLIB32.DLL" _ @@ -10075,15 +10279,15 @@ Public Class Focas1 ' Servo Guide (Sampling cancel) Declare Function cnc_sdcancelsmpl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Servo Guide (read Sampling data) Declare Function cnc_sdreadsmpl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, ByVal b As Integer, ByRef c As ODBSD ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, ByVal b As Integer, ByRef c As ODBSD) As Short ' Servo Guide (Sampling end) Declare Function cnc_sdendsmpl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Servo Guide (read 1 shot data) Declare Function cnc_sdread1shot Lib "FWLIB32.DLL" _ @@ -10091,32 +10295,32 @@ Public Class Focas1 ' Servo feedback data (Channel data set) Declare Function cnc_sfbsetchnl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As IDBSFBCHAN ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByRef c As IDBSFBCHAN) As Short ' Servo feedback data (Channel data clear) Declare Function cnc_sfbclrchnl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Servo feedback data (Sampling start) Declare Function cnc_sfbstartsmpl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer) As Short ' Servo feedback data (Sampling cancel) Declare Function cnc_sfbcancelsmpl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Servo feedback data (read Sampling data) Declare Function cnc_sfbreadsmpl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, ByVal b As Integer, ByRef c As ODBSD ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, ByVal b As Integer, ByRef c As ODBSD) As Short ' Servo feedback data (Sampling end) Declare Function cnc_sfbendsmpl Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short -'---------------------------- -' CNC : NC display function -'---------------------------- + '---------------------------- + ' CNC : NC display function + '---------------------------- ' Start NC display Declare Function cnc_startnccmd Lib "FWLIB32.DLL" _ @@ -10135,17 +10339,17 @@ Public Class Focas1 (ByVal FlibHndl As Integer, ByRef a As Short) As Short -'------------------------------------ -' CNC : Remote diagnostics function -'------------------------------------ + '------------------------------------ + ' CNC : Remote diagnostics function + '------------------------------------ ' Start remote diagnostics function Declare Function cnc_startrmtdgn Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Stop remote diagnostics function Declare Function cnc_stoprmtdgn Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Read data from remote diagnostics I/F Declare Function cnc_rdrmtdgn Lib "FWLIB32.DLL" _ @@ -10157,16 +10361,16 @@ Public Class Focas1 ' Set CommStatus of remote diagnostics I/F area Declare Function cnc_wrcommstatus Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' Check remote diagnostics I/F Declare Function cnc_chkrmtdgn Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short -'------------------------- -' CNC : FS18-LN function -'------------------------- + '------------------------- + ' CNC : FS18-LN function + '------------------------- ' read allowance Declare Function cnc_allowance Lib "FWLIB32.DLL" _ @@ -10174,28 +10378,28 @@ Public Class Focas1 ' read allowanced state Declare Function cnc_allowcnd Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBCAXIS ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBCAXIS) As Short ' set work zero Declare Function cnc_workzero Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBZOFS ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBZOFS) As Short ' set slide position Declare Function cnc_slide Lib "FWLIB32.DLL" _ (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByRef c As ODBAXIS) As Short -'---------------------------------- -' CNC: Teaching data I/F function -'---------------------------------- + '---------------------------------- + ' CNC: Teaching data I/F function + '---------------------------------- ' Teaching data get start Declare Function cnc_startgetdgdat Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Teaching data get stop Declare Function cnc_stopgetdgdat Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' Teaching data read Declare Function cnc_rddgdat Lib "FWLIB32.DLL" _ @@ -10203,24 +10407,24 @@ Public Class Focas1 ' Teaching data read pointer write Declare Function cnc_wrdgdatptr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' Teaching data clear Declare Function cnc_clrdgdat Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short -'--------------------------------- -' CNC : C-EXE SRAM file function -'--------------------------------- + '--------------------------------- + ' CNC : C-EXE SRAM file function + '--------------------------------- ' open C-EXE SRAM file Declare Function cnc_opencexefile Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Short, ByVal c As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As Short, ByVal c As Short) As Short ' close C-EXE SRAM file Declare Function cnc_closecexefile Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' read C-EXE SRAM file Declare Function cnc_rdcexefile Lib "FWLIB32.DLL" _ @@ -10232,13 +10436,13 @@ Public Class Focas1 ' read C-EXE SRAM disk directory Declare Function cnc_cexedirectory Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, <[In], Out> ByVal a() As Char, ByRef b As Short, ByVal c As Short, ByRef d As CFILEINFO) As Short -'----- -' PMC -'----- + '----- + ' PMC + '----- ' read message from PMC to MMC Declare Function pmc_rdmsg Lib "FWLIB32.DLL" _ @@ -10254,17 +10458,17 @@ Public Class Focas1 ' write message from MMC to PMC(conditional) Declare Function pmc_cwrmsg Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b() As Short) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b() As Short) As Short ' read PMC data(area specified) Declare Function pmc_rdpmcrng Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByVal d As Integer, ByVal e As Integer, ByRef f As IODBPMC0) As Short Declare Function pmc_rdpmcrng Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByVal d As Integer, ByVal e As Integer, ByRef f As IODBPMC1) As Short Declare Function pmc_rdpmcrng Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Integer, ByVal d As Integer, ByVal e As Integer, ByRef f As IODBPMC2) As Short ' write PMC data(area specified) @@ -10297,55 +10501,55 @@ Public Class Focas1 ' read informations of PMC data Declare Function pmc_rdpmcinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBPMCINF ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As ODBPMCINF) As Short ' read PMC parameter data table contorol data Declare Function pmc_rdcntldata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPMCCNTL ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Short, ByVal c As Short, ByRef d As IODBPMCCNTL) As Short ' write PMC parameter data table contorol data Declare Function pmc_wrcntldata Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPMCCNTL ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPMCCNTL) As Short ' read PMC parameter data table contorol data group number Declare Function pmc_rdcntlgrp Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short) As Short ' write PMC parameter data table contorol data group number Declare Function pmc_wrcntlgrp Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short) As Short ' read PMC alarm message Declare Function pmc_rdalmmsg Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As Short, ByRef d As ODBPMCALM ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short, ByRef c As Short, ByRef d As ODBPMCALM) As Short ' get detail error for pmc Declare Function pmc_getdtailerr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBPMCERR ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBPMCERR) As Short ' read PMC memory data Declare Function pmc_rdpmcmem Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByVal c As Integer, <[In], Out> ByVal d() As Byte) As Short ' write PMC memory data Declare Function pmc_wrpmcmem Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByVal c As Integer, ByVal d() As Byte) As Short ' read PMC-SE memory data Declare Function pmc_rdpmcsemem Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByVal c As Integer, <[In], Out> ByVal d() As Byte) As Short ' write PMC-SE memory data Declare Function pmc_wrpmcsemem Lib "FWLIB32.DLL" _ - (ByVal FlibHndl As Integer, _ + (ByVal FlibHndl As Integer, ByVal a As Short, ByVal b As Integer, ByVal c As Integer, ByVal d() As Byte) As Short ' read pmc title data Declare Function pmc_rdpmctitle Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBPMCTITLE ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBPMCTITLE) As Short ' read PMC parameter start Declare Function pmc_rdprmstart Lib "FWLIB32.DLL" _ @@ -10372,17 +10576,17 @@ Public Class Focas1 (ByVal FlibHndl As Integer) As Short ' read PMC data -' Declare Function pmc_rdpmcrng_ext Lib "FWLIB32.DLL" _ -' ( ByVal FlibHndl As Integer, _ -' ByVal a As Short, ByRef b As IODBPMCEXT ) As Short + ' Declare Function pmc_rdpmcrng_ext Lib "FWLIB32.DLL" _ + ' ( ByVal FlibHndl As Integer, _ + ' ByVal a As Short, ByRef b As IODBPMCEXT ) As Short ' write PMC I/O link assigned data -' Declare Function pmc_wriolinkdat Lib "FWLIB32.DLL" _ -' ( ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b() As Byte, ByVal c As Integer ) As Short + ' Declare Function pmc_wriolinkdat Lib "FWLIB32.DLL" _ + ' ( ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b() As Byte, ByVal c As Integer ) As Short ' read PMC address information Declare Function pmc_rdpmcaddr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBPMCADR ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBPMCADR) As Short ' select PMC unit Declare Function pmc_select_pmc_unit Lib "FWLIB32.DLL" _ @@ -10408,53 +10612,53 @@ Public Class Focas1 Declare Function pmc_get_timer_type Lib "FWLIB32.DLL" _ (ByVal FlibHndl As Integer, ByVal a As Integer, ByVal b As Integer, <[In](), Out()> ByVal c() As Short) As Short -'---------------------------- -' PMC : PROFIBUS function -'---------------------------- + '---------------------------- + ' PMC : PROFIBUS function + '---------------------------- ' read PROFIBUS configration data Declare Function pmc_prfrdconfig Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBPRFCNF ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBPRFCNF) As Short ' read bus parameter for master function Declare Function pmc_prfrdbusprm Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBBUSPRM ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBBUSPRM) As Short ' write bus parameter for master function Declare Function pmc_prfwrbusprm Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBBUSPRM ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBBUSPRM) As Short ' read slave parameter for master function Declare Function pmc_prfrdslvprm Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVPRM ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVPRM) As Short Declare Function pmc_prfrdslvprm Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVPRM2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVPRM2) As Short ' write slave parameter for master function Declare Function pmc_prfwrslvprm Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVPRM ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVPRM) As Short Declare Function pmc_prfwrslvprm Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVPRM2 ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBSLVPRM2) As Short ' read allocation address for master function Declare Function pmc_prfrdallcadr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPRFADR ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPRFADR) As Short ' set allocation address for master function Declare Function pmc_prfwrallcadr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPRFADR ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As IODBPRFADR) As Short ' read allocation address for slave function Declare Function pmc_prfrdslvaddr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBSLVADR ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBSLVADR) As Short ' set allocation address for slave function Declare Function pmc_prfwrslvaddr Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As IODBSLVADR ) As Short + (ByVal FlibHndl As Integer, ByRef a As IODBSLVADR) As Short ' read status for slave function Declare Function pmc_prfrdslvstat Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As ODBSLVST ) As Short + (ByVal FlibHndl As Integer, ByRef a As ODBSLVST) As Short ' Reads DI/DO parameter of master function Declare Function pmc_prfrddido Lib "FWLIB32.DLL" _ @@ -10496,9 +10700,9 @@ Public Class Focas1 Declare Function pmc_prfwropmode Lib "FWLIB32.DLL" _ (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Short) As Short -'-----------------------------------------------v -' DS : Data server & Ethernet board function ' -'-----------------------------------------------' + '-----------------------------------------------v + ' DS : Data server & Ethernet board function ' + '-----------------------------------------------' ' read the parameter of the Ethernet board */ Declare Function etb_rdparam Lib "FWLIB32.DLL" _ @@ -10696,30 +10900,30 @@ Public Class Focas1 Declare Function ds_wrfile Lib "FWLIB32.DLL" _ (ByVal FlibHndl As Integer, ByVal a As String, ByVal b As String) As Short -'-------------------------- -' HSSB multiple connection -'-------------------------- + '-------------------------- + ' HSSB multiple connection + '-------------------------- ' read number of node Declare Function cnc_rdnodenum Lib "FWLIB32.DLL" _ - ( ByRef a As Integer ) As Short + (ByRef a As Integer) As Short ' read node informations Declare Function cnc_rdnodeinfo Lib "FWLIB32.DLL" _ - ( ByVal a As Integer, ByRef b As ODBNODE ) As Short + (ByVal a As Integer, ByRef b As ODBNODE) As Short ' set default node number Declare Function cnc_setdefnode Lib "FWLIB32.DLL" _ - ( ByVal a As Integer ) As Short + (ByVal a As Integer) As Short ' allocate library handle 2 Declare Function cnc_allclibhndl2 Lib "FWLIB32.DLL" _ (ByVal node As Integer, ByRef FlibHndl As Integer) As Short -'--------------------- -' Ethernet connection -'--------------------- + '--------------------- + ' Ethernet connection + '--------------------- ' allocate library handle 3 Declare Function cnc_allclibhndl3 Lib "FWLIB32.DLL" _ @@ -10731,18 +10935,18 @@ Public Class Focas1 ' set timeout for socket Declare Function cnc_settimeout Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Integer) As Short ' reset all socket connection Declare Function cnc_resetconnect Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer ) As Short + (ByVal FlibHndl As Integer) As Short ' get option state for FOCAS1/Ethernet Declare Function cnc_getfocas1opt Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Integer ) As Short + (ByVal FlibHndl As Integer, ByVal a As Short, ByRef b As Integer) As Short ' read Ethernet board information Declare Function cnc_rdetherinfo Lib "FWLIB32.DLL" _ - ( ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As Short ) As Short + (ByVal FlibHndl As Integer, ByRef a As Short, ByRef b As Short) As Short End Class 'Focas1 From 4e75f287171cdfc368d2f5f7c011676c38656651 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Tue, 7 Mar 2017 14:25:44 +0100 Subject: [PATCH 16/46] modifica preliminare ESA x caricamento files di conf variabili dei 4 banchi di memoria --- MTC_Adapter/MTC_Adapter.sln | 2 +- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 109 ++++++++++++++++++ MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 2 +- MTC_Adapter/MTC_Adapter/App.config | 5 + .../MTC_Adapter/DATA/CONF/IOT_ByteList.map | 21 ++++ .../MTC_Adapter/DATA/CONF/IOT_DWordList.map | 71 ++++++++++++ .../MTC_Adapter/DATA/CONF/IOT_StringList.map | 5 + .../MTC_Adapter/DATA/CONF/IOT_WordList.map | 39 +++++++ MTC_Adapter/MTC_Adapter/MTC-Adapter.csproj | 12 ++ .../MTC_Adapter/Resources/SCM/Appunti SCM.txt | 10 +- MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs | 7 +- 11 files changed, 277 insertions(+), 6 deletions(-) create mode 100644 MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_ByteList.map create mode 100644 MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_DWordList.map create mode 100644 MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_StringList.map create mode 100644 MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_WordList.map diff --git a/MTC_Adapter/MTC_Adapter.sln b/MTC_Adapter/MTC_Adapter.sln index 85b1cdb..63a2158 100644 --- a/MTC_Adapter/MTC_Adapter.sln +++ b/MTC_Adapter/MTC_Adapter.sln @@ -3,7 +3,7 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio 14 VisualStudioVersion = 14.0.25420.1 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetAdapterSDK", "..\..\..\GitHub\MTConnect\dot_net_sdk\DotNetAdapterSDK.csproj", "{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetAdapterSDK", "..\..\..\..\GitHub\MTConnect\dot_net_sdk\DotNetAdapterSDK.csproj", "{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{695A97F7-B396-4DD3-8596-F043ECA3E2BD}" ProjectSection(SolutionItems) = preProject diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index f226965..7c7e7bf 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -5,11 +5,118 @@ using SCMCncLib; using System.Windows.Forms; using System.Threading; using System.IO; +using System.Collections.Generic; namespace MTC_Adapter { public class AdapterESA : AdapterGeneric { +#if false + // vettore valori in file interscambio + public Dictionary generalStatus; +#endif + /// + /// Configurazione valori da leggere IOT_Byte + /// + public otherData[] mapIOT_Byte; + /// + /// Configurazione valori da leggere IOT_Word + /// + public otherData[] mapIOT_Word; + /// + /// Configurazione valori da leggere IOT_DWord + /// + public otherData[] mapIOT_DWord; + /// + /// Configurazione valori da leggere IOT_String + /// + public otherData[] mapIOT_String; + + /// + /// Carico file conf dati IOT + /// + protected override void loadOtherFile() + { + base.loadOtherFile(); + loadByteListMap(); + loadWordListMap(); + loadDWordListMap(); + loadStringListMap(); + } + /// + /// Carico conf vettore dati STRING + /// + private void loadStringListMap() + { + loadConfFile(ref mapIOT_String, filePath("IOTStringFilePath"), 1); + } + /// + /// Carico conf vettore dati DWORD + /// + private void loadDWordListMap() + { + loadConfFile(ref mapIOT_DWord, filePath("IOTDWordFilePath"), 1); + } + /// + /// Carico conf vettore dati WORD + /// + private void loadWordListMap() + { + loadConfFile(ref mapIOT_Word, filePath("IOTWordFilePath"), 1); + } + /// + /// Carico conf vettore dati BYTE + /// + private void loadByteListMap() + { + loadConfFile(ref mapIOT_Byte, filePath("IOTByteFilePath"), 1); + } + /// + /// Restituisce path completo file da chaive configurazione + /// + /// chaive conf x file richiesto + /// + protected string filePath(string keyFile) + { + return string.Format(@"{0}\{1}", utils.confDir, utils.CRS(keyFile)); + } + /// + /// Legge il file di conf di una MAP di informazioni da gestire con lettura set memoria + /// + /// nome vettore memoria + /// file origine + /// dimensione (in byte) della memoria + protected void loadConfFile(ref otherData[] vettoreConf, string nomeFile, int memSize) + { + // carico dati x Maintenance + if (utils.CRB("verbose")) lg.Info("Inizio caricamento vettore mappa " + nomeFile); + int totRighe = 0; + string linea; + totRighe = File.ReadLines(nomeFile).Count(); + // creo un vettore della dimensione corretta... conta anche commenti tanto poi riduco... + vettoreConf = new otherData[File.ReadLines(nomeFile).Count()]; + // carica da file... + System.IO.StreamReader file = new System.IO.StreamReader(nomeFile); + // leggo 1 linea alla volta... + int numRiga = 0; + while ((linea = file.ReadLine()) != null) + { + // SE non è un commento... + if (linea.Substring(0, 1) != "#") + { + //elencoAllarmi[rumRiga] = decodeAlarmLine(linea, ':'); + vettoreConf[numRiga] = decodeOtherData(linea, utils.CRC("testCharSep"), "", 0, memSize); + numRiga++; + } + } + // chiudo file + file.Close(); + // ora trimmo vettore al solo numero VERO dei valori caricati... + Array.Resize(ref vettoreConf, numRiga); + + if (utils.CRB("verbose")) lg.Info(string.Format("Fine caricamento vettore di {0} variabili per file {1}", numRiga, nomeFile)); + } + /// /// oggetto onnessione ESA /// @@ -104,6 +211,8 @@ namespace MTC_Adapter // accodo dati path in DataMonitor...... StringBuilder sb = new StringBuilder(); + //2017.03 RIVEDERE DA QUI x lettura globale + if (connectionOk) { // leggo TUTTO il blocco di memoria diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index f4d9189..efc772c 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -1268,7 +1268,7 @@ namespace MTC_Adapter return new otherData(valori[0], memAddr, valori[1].Trim(), valori[2].Trim()); } /// - /// Decodifica file allarme + /// Decodifica file MAP /// /// /// diff --git a/MTC_Adapter/MTC_Adapter/App.config b/MTC_Adapter/MTC_Adapter/App.config index 8894ba0..3c5226e 100644 --- a/MTC_Adapter/MTC_Adapter/App.config +++ b/MTC_Adapter/MTC_Adapter/App.config @@ -60,6 +60,11 @@ + + + + + diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_ByteList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_ByteList.map new file mode 100644 index 0000000..8ee1ee2 --- /dev/null +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_ByteList.map @@ -0,0 +1,21 @@ +# Commenti con cancelletto, struttura un variabile per riga, tipo chiave|valore (occhio che il separatore è configurato da .cofig come "testCharSep"); spazi e tabulazioni dovrei trimmarli in acquisizione (qui inseriti per comodità di lettura) +001|IOT_EXEC |BIT +002|IOT_HOLD |BIT +003|IOT_EMG |BIT +004|IOT_ALRM |BIT +005|IOT_OVRF |BYTE +006|IOT_OVRS |BYTE +007|IOT_LUB_EMPTY |BYTE +008|IOT_C_LUB |BYTE +009|IOT_I_MD1 |BYTE +010|IOT_I_MD2 |BYTE +011|IOT_I_MD3 |BYTE +012|IOT_I_MD4 |BYTE +013|IOT_I_MD5 |BYTE +014|IOT_I_MD6 |BYTE +015|IOT_I_MD7 |BYTE +016|IOT_I_MD8 |BYTE +017|IOT_PGMR_A1 |BYTE +018|IOT_PGMR_A2 |BYTE +019|IOT_PGMR_A3 |BYTE +020|IOT_PGMR_A4 |BYTE \ No newline at end of file diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_DWordList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_DWordList.map new file mode 100644 index 0000000..3389643 --- /dev/null +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_DWordList.map @@ -0,0 +1,71 @@ +# Commenti con cancelletto, struttura un variabile per riga, tipo chiave|valore (occhio che il separatore è configurato da .cofig come "testCharSep"); spazi e tabulazioni dovrei trimmarli in acquisizione (qui inseriti per comodità di lettura) +1 001|IOT_C_KU_AX1 |DWORD +2 002|IOT_C_KU_AX2 |DWORD +3 003|IOT_C_KU_AX3 |DWORD +4 004|IOT_C_KU_AX4 |DWORD +5 005|IOT_C_KU_AX5 |DWORD +6 006|IOT_C_KU_AX6 |DWORD +7 007|IOT_C_KU_AX7 |DWORD +8 008|IOT_C_KU_AX8 |DWORD +9 009|IOT_C_KU_AX9 |DWORD +10 010|IOT_C_KU_AX10 |DWORD +11 011|IOT_C_KU_AX11 |DWORD +12 012|IOT_C_KU_AX12 |DWORD +13 013|IOT_C_KU_AX13 |DWORD +14 014|IOT_C_KU_AX14 |DWORD +15 015|IOT_C_KU_AX15 |DWORD +16 016|IOT_C_KINV_AX1 |DWORD +17 017|IOT_C_KINV_AX2 |DWORD +18 018|IOT_C_KINV_AX3 |DWORD +19 019|IOT_C_KINV_AX4 |DWORD +20 020|IOT_C_KINV_AX5 |DWORD +21 021|IOT_C_KINV_AX6 |DWORD +22 022|IOT_C_KINV_AX7 |DWORD +23 023|IOT_C_KINV_AX8 |DWORD +24 024|IOT_C_KINV_AX9 |DWORD +25 025|IOT_C_KINV_AX10 |DWORD +26 026|IOT_C_KINV_AX11 |DWORD +27 027|IOT_C_KINV_AX12 |DWORD +28 028|IOT_C_KINV_AX13 |DWORD +29 029|IOT_C_KINV_AX14 |DWORD +30 030|IOT_C_KINV_AX15 |DWORD +31 031|IOT_POS_AX1 |DWORD +32 032|IOT_POS_AX2 |DWORD +33 033|IOT_POS_AX3 |DWORD +34 034|IOT_POS_AX4 |DWORD +35 035|IOT_POS_AX5 |DWORD +36 036|IOT_POS_AX6 |DWORD +37 037|IOT_POS_AX7 |DWORD +38 038|IOT_POS_AX8 |DWORD +39 039|IOT_POS_AX9 |DWORD +40 040|IOT_POS_AX10 |DWORD +41 041|IOT_POS_AX11 |DWORD +42 042|IOT_POS_AX12 |DWORD +43 043|IOT_POS_AX13 |DWORD +44 044|IOT_POS_AX14 |DWORD +45 045|IOT_POS_AX15 |DWORD +46 046|IOT_C_KREV_MD1 |DWORD +47 047|IOT_C_KREV_MD2 |DWORD +48 048|IOT_C_KREV_MD3 |DWORD +49 049|IOT_C_KREV_MD4 |DWORD +50 050|IOT_C_KREV_MD5 |DWORD +51 051|IOT_C_KREV_MD6 |DWORD +52 052|IOT_C_KREV_MD7 |DWORD +53 053|IOT_C_KREV_MD8 |DWORD +54 054|IOT_PLC_MSG_00 |DWORD +55 055|IOT_PLC_MSG_01 |DWORD +56 056|IOT_PLC_MSG_02 |DWORD +57 057|IOT_PLC_MSG_03 |DWORD +58 058|IOT_PLC_MSG_04 |DWORD +59 059|IOT_PLC_MSG_05 |DWORD +60 060|IOT_PLC_MSG_06 |DWORD +61 061|IOT_PLC_MSG_07 |DWORD +62 062|IOT_PLC_MSG_08 |DWORD +63 063|IOT_PLC_MSG_09 |DWORD +64 064|IOT_PLC_MSG_10 |DWORD +65 065|IOT_PLC_MSG_11 |DWORD +66 066|IOT_PLC_MSG_12 |DWORD +67 067|IOT_C_EXEC_A1 |DWORD +68 068|IOT_C_EXEC_A2 |DWORD +69 069|IOT_C_EXEC_A3 |DWORD +70 070|IOT_C_EXEC_A4 |DWORD \ No newline at end of file diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_StringList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_StringList.map new file mode 100644 index 0000000..7e9dfac --- /dev/null +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_StringList.map @@ -0,0 +1,5 @@ +# Commenti con cancelletto, struttura un variabile per riga, tipo chiave|valore (occhio che il separatore è configurato da .cofig come "testCharSep"); spazi e tabulazioni dovrei trimmarli in acquisizione (qui inseriti per comodità di lettura) +1 001|IOT_PGMID_A1 |STRING +2 002|IOT_PGMID_A2 |STRING +3 003|IOT_PGMID_A3 |STRING +4 004|IOT_PGMID_A4 |STRING \ No newline at end of file diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_WordList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_WordList.map new file mode 100644 index 0000000..1fe7b7c --- /dev/null +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_WordList.map @@ -0,0 +1,39 @@ +# Commenti con cancelletto, struttura un variabile per riga, tipo chiave|valore (occhio che il separatore è configurato da .cofig come "testCharSep"); spazi e tabulazioni dovrei trimmarli in acquisizione (qui inseriti per comodità di lettura) +002|IOT_S_MD2 |WORD +001|IOT_S_MD1 |WORD +003|IOT_S_MD3 |WORD +004|IOT_S_MD4 |WORD +005|IOT_S_MD5 |WORD +006|IOT_S_MD6 |WORD +007|IOT_S_MD7 |WORD +008|IOT_S_MD8 |WORD +009|IOT_T_MD1 |WORD +010|IOT_T_MD2 |WORD +011|IOT_T_MD3 |WORD +012|IOT_T_MD4 |WORD +013|IOT_T_MD5 |WORD +014|IOT_T_MD6 |WORD +015|IOT_T_MD7 |WORD +016|IOT_T_MD8 |WORD +017|IOT_C_H_VAC1 |WORD +018|IOT_C_H_VAC2 |WORD +019|IOT_C_H_VAC3 |WORD +020|IOT_C_H_VAC4 |WORD +021|IOT_C_TC1 |WORD +022|IOT_C_TC2 |WORD +023|IOT_C_TC3 |WORD +024|IOT_C_TC4 |WORD +025|IOT_C_TC5 |WORD +026|IOT_C_TC6 |WORD +027|IOT_C_TC7 |WORD +028|IOT_C_TC8 |WORD +029|IOT_C_H_MD1 |WORD +030|IOT_C_H_MD2 |WORD +031|IOT_C_H_MD3 |WORD +032|IOT_C_H_MD4 |WORD +033|IOT_C_H_MD5 |WORD +034|IOT_C_H_MD6 |WORD +035|IOT_C_H_MD7 |WORD +036|IOT_C_H_MD8 |WORD +037|IOT_F_AX1 |WORD +038|IOT_F_AX2 |WORD \ No newline at end of file diff --git a/MTC_Adapter/MTC_Adapter/MTC-Adapter.csproj b/MTC_Adapter/MTC_Adapter/MTC-Adapter.csproj index d8d7c85..baeff00 100644 --- a/MTC_Adapter/MTC_Adapter/MTC-Adapter.csproj +++ b/MTC_Adapter/MTC_Adapter/MTC-Adapter.csproj @@ -167,6 +167,15 @@ Always + + Always + + + Always + + + Always + Always @@ -178,6 +187,9 @@ Designer + + Always + Designer diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt index 1a62e69..f94616c 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt @@ -6,4 +6,12 @@ 02) lettura assi... va da SImDATA, am serve "molteplice conversione", ovvero BitConverter.ToInt32(BitConverter.GetBytes(PLC_MemoryRead[240]),0) 03) in caso di chiusura SI BLOCCA - va visto meglio l'insieme delle procedure di chiusura... \ No newline at end of file + va visto meglio l'insieme delle procedure di chiusura... + + +TODO + - inizializzazione dell'oggetto NC da thdNcEsaGvKvara con NUOVE aree di memoria + - verifica lettura GLOBALE di getGlobalData() + + - eliminare da thdNcEsaGvKvara "vecchie" aree di memoria + diff --git a/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs b/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs index b933771..5e9a36b 100644 --- a/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs +++ b/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs @@ -111,9 +111,7 @@ namespace SCMCncLib /// memorie a 1 byte (8 bit) x area Allarmi (V[300] - 256 bit) /// public Byte[] PLC_MemoryAreaAllarmi; - - - + /// /// memorie a 1 byte (8 bit) x area IOT.Byte /// @@ -216,6 +214,9 @@ namespace SCMCncLib EOKAreaByteSize = 32; // era 14aggiunto sino a 31 x avere 91... AlarmByteSize = 32; + // nuove aree: definisco al SIZE in base ai files di configurazione letti... + + CommandsAddressName = fIni.ReadString("NC", "CommandsAddress", "SIMREAD[0]"); EOKAreaAddressName = fIni.ReadString("NC", "EOKAreaAddress", "EOK"); ETKAreaAddressName = fIni.ReadString("NC", "ETKAreaAddress", "ETK"); From 85b86965bbb35c60f9ecd3408af74c98ffb7da78 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Tue, 7 Mar 2017 18:12:19 +0100 Subject: [PATCH 17/46] continuata modifica x integrazione vettore memorie BYTE --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 291 ++++++++++++------ MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 2 +- .../MTC_Adapter/Resources/SCM/EsaKvara.ini | 9 + MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs | 157 +++++++--- 4 files changed, 320 insertions(+), 139 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index 7c7e7bf..703d969 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -31,6 +31,10 @@ namespace MTC_Adapter /// Configurazione valori da leggere IOT_String /// public otherData[] mapIOT_String; + /// + /// variabile globale x usare IOT MEMORI (!!! da eliminare alla fine dei test) + /// + protected bool useIotMem = true; /// /// Carico file conf dati IOT @@ -88,8 +92,8 @@ namespace MTC_Adapter /// dimensione (in byte) della memoria protected void loadConfFile(ref otherData[] vettoreConf, string nomeFile, int memSize) { - // carico dati x Maintenance - if (utils.CRB("verbose")) lg.Info("Inizio caricamento vettore mappa " + nomeFile); + //// carico dati x Maintenance + //if (utils.CRB("verbose")) lg.Info("Inizio caricamento vettore mappa " + nomeFile); int totRighe = 0; string linea; totRighe = File.ReadLines(nomeFile).Count(); @@ -141,7 +145,9 @@ namespace MTC_Adapter if (utils.CRB("verbose")) lg.Info("step 01: impostato INI File {0}", iniPath); - ncDevice = new thdNcEsaGvKvara(EsaIni); + loadOtherFile(); + + ncDevice = new thdNcEsaGvKvara(EsaIni, mapIOT_Byte.Length, mapIOT_Word.Length, mapIOT_DWord.Length, mapIOT_String.Length); if (utils.CRB("verbose")) lg.Info("step 02: avviato thdNcEsaGvKvara da INI File {0}", iniPath); @@ -211,7 +217,7 @@ namespace MTC_Adapter // accodo dati path in DataMonitor...... StringBuilder sb = new StringBuilder(); - //2017.03 RIVEDERE DA QUI x lettura globale + //2017.03.07 RIVEDERE DA QUI x lettura globale if (connectionOk) { @@ -277,7 +283,7 @@ namespace MTC_Adapter needSave = procNumCU(needSave); // per ESA calcolo a mano se ci sia stato impiego assi... salvo le istantanee mov precedenti... - double precVal=0; + double precVal = 0; DateTime adesso = DateTime.Now; TimeSpan accumTime = adesso.Subtract(lastChekAccumTimeAxis); @@ -473,86 +479,177 @@ namespace MTC_Adapter // HARD CODE: forzo path 1 (indice 0...) int idxPath = 0; - // verifica macchina accesa... - Byte V73 = ncDevice.PLC_MemoryAreaV[5]; - if (((StFlag8)V73).HasFlag(StFlag8.B2)) + // 2017.03.07 IN BLOCCO processo TUTTI i valori della memoria BYTE... + if (useIotMem) { - mPower.Value = "ON"; + + ncDevice.ReadBufferByte(); + // accodo dati path in DataMonitor...... + StringBuilder sb = new StringBuilder(); + // uno ad uno vado a inserirli nella mappa dei dati dell'adapter... + for (int i = 0; i < mapIOT_Byte.Length; i++) + { + if (mapIOT_Byte[i].varName == "IOT_EXEC") + { + //mProtectionStatus.Value = status; + // 2017.03.07 VERIFICARE!!!: per ora ON = NO EMERGENZA... + if (ncDevice.PLC_MemoryAreaIOT_Byte[i] == 0) + { + mPower.Value = "ON"; + } + else + { + mPower.Value = "OFF"; + } + } + else if (mapIOT_Byte[i].varName == "IOT_HOLD") + { + if (ncDevice.PLC_MemoryAreaIOT_Byte[i] != 0) + { + vettPath[idxPath].mPathExeMode.Value = "FEED_HOLD"; //"FEEDHOLD"; + } + } + else if (mapIOT_Byte[i].varName == "IOT_EMG") + { + // 2017.03.07 controllo bit emergenza... + if (ncDevice.PLC_MemoryAreaIOT_Byte[i] != 0) + { + mEStop.Value = "TRIGGERED"; + } + else + { + mEStop.Value = "ARMED"; + } + } + else if (mapIOT_Byte[i].varName == "IOT_ALRM") + { + if (ncDevice.PLC_MemoryAreaIOT_Byte[i] != 0) + { + // carico IN BLOCCO memoria allarmi... + // FARE!!! + } + } + else if (mapIOT_Byte[i].varName == "IOT_OVRF") + { + // ------------------------------------------- + // recupero dati FeedOverride + // FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213) + FeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[i] * 100) / 213); + sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); + } + else if (mapIOT_Byte[i].varName == "IOT_OVRS") + { + // ------------------------------------------- + // recupero dati SpeedOverride + // SpeedOver: 50% = 128 + SpeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[i] * 100) / 255); + sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); + } + else if (mapIOT_Byte[i].varName == "IOT_LUB_EMPTY") + { + if (ncDevice.PLC_MemoryAreaIOT_Byte[i] != 0) + { + // CREARE allarme serbatoio vuoto... !!!FARE + } + } + else if (mapIOT_Byte[i].varName == "IOT_C_LUB") + { + if (ncDevice.PLC_MemoryAreaIOT_Byte[i] != 0) + { + vettLubro[0].mLubroNum.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i]; + } + } + else + { + + } + } } else { - mPower.Value = "OFF"; - } + // verifica macchina accesa... + Byte V73 = ncDevice.PLC_MemoryAreaV[5]; - // switch su EXE mode... - /* - * MODO_X V[70/71] --> byte (2-3) - * V70.2 = Modo RUN  - * V70.3 = Modo FeedHold - * V71.5 = Ready - * */ - Byte V70 = ncDevice.PLC_MemoryAreaV[2]; - Byte V71 = ncDevice.PLC_MemoryAreaV[3]; - if (((StFlag8)V70).HasFlag(StFlag8.B3)) - { - vettPath[idxPath].mPathExeMode.Value = "FEED_HOLD"; //"FEEDHOLD"; - } - else if (((StFlag8)V70).HasFlag(StFlag8.B2)) - { - vettPath[idxPath].mPathExeMode.Value = "ACTIVE"; - } - else if (((StFlag8)V71).HasFlag(StFlag8.B5)) - { - vettPath[idxPath].mPathExeMode.Value = "READY"; - } - //// appunto: modi da creare - //STOPPED/HOLD(da creare) - //INTERRUPTED(da creare) - //OPTIONAL_STOP(da creare) - //PROGRAM_STOPPED(da creare) - //PROGRAM_COMPLETED(da creare) + if (((StFlag8)V73).HasFlag(StFlag8.B2)) + { + mPower.Value = "ON"; + } + else + { + mPower.Value = "OFF"; + } + + // switch su EXE mode... + /* + * MODO_X V[70/71] --> byte (2-3) + * V70.2 = Modo RUN  + * V70.3 = Modo FeedHold + * V71.5 = Ready + * */ + Byte V70 = ncDevice.PLC_MemoryAreaV[2]; + Byte V71 = ncDevice.PLC_MemoryAreaV[3]; + + if (((StFlag8)V70).HasFlag(StFlag8.B3)) + { + vettPath[idxPath].mPathExeMode.Value = "FEED_HOLD"; //"FEEDHOLD"; + } + else if (((StFlag8)V70).HasFlag(StFlag8.B2)) + { + vettPath[idxPath].mPathExeMode.Value = "ACTIVE"; + } + else if (((StFlag8)V71).HasFlag(StFlag8.B5)) + { + vettPath[idxPath].mPathExeMode.Value = "READY"; + } + //// appunto: modi da creare + //STOPPED/HOLD(da creare) + //INTERRUPTED(da creare) + //OPTIONAL_STOP(da creare) + //PROGRAM_STOPPED(da creare) + //PROGRAM_COMPLETED(da creare) - // switch su run mode... - /* - * MODO_X V[74].W --> byte (6) - * 0 = Modo NESSUNO  - * 1 = Modo MANUALE  - * 2 = Modo AUTOMATICO  - * 3 = Modo POM  - * 4 = Modo MDI  - * 5 = Modo SEMIAUTOMATICO  - * 6 = Modo RAP  - * 7 = Modo TES - * */ - uint V74 = ncDevice.PLC_MemoryAreaV[6]; - switch (V74) - { - case 1: - vettPath[idxPath].mPathRunMode.Value = "EDIT"; - break; - case 2: - vettPath[idxPath].mPathRunMode.Value = "AUTOMATIC"; - break; - case 3: - vettPath[idxPath].mPathRunMode.Value = "MANUAL"; - break; - case 4: - vettPath[idxPath].mPathRunMode.Value = "MANUAL_DATA_INPUT"; - break; - case 5: - vettPath[idxPath].mPathRunMode.Value = "SEMI_AUTOMATIC"; //"SEMIAUTO"; - break; - case 6: - vettPath[idxPath].mPathRunMode.Value = "MANUAL"; //"RAP"; - break; - case 7: - vettPath[idxPath].mPathRunMode.Value = "MANUAL"; //"TES"; - break; - case 0: - default: - vettPath[idxPath].mPathRunMode.Value = "NA"; - break; + // switch su run mode... + /* + * MODO_X V[74].W --> byte (6) + * 0 = Modo NESSUNO  + * 1 = Modo MANUALE  + * 2 = Modo AUTOMATICO  + * 3 = Modo POM  + * 4 = Modo MDI  + * 5 = Modo SEMIAUTOMATICO  + * 6 = Modo RAP  + * 7 = Modo TES + * */ + uint V74 = ncDevice.PLC_MemoryAreaV[6]; + switch (V74) + { + case 1: + vettPath[idxPath].mPathRunMode.Value = "EDIT"; + break; + case 2: + vettPath[idxPath].mPathRunMode.Value = "AUTOMATIC"; + break; + case 3: + vettPath[idxPath].mPathRunMode.Value = "MANUAL"; + break; + case 4: + vettPath[idxPath].mPathRunMode.Value = "MANUAL_DATA_INPUT"; + break; + case 5: + vettPath[idxPath].mPathRunMode.Value = "SEMI_AUTOMATIC"; //"SEMIAUTO"; + break; + case 6: + vettPath[idxPath].mPathRunMode.Value = "MANUAL"; //"RAP"; + break; + case 7: + vettPath[idxPath].mPathRunMode.Value = "MANUAL"; //"TES"; + break; + case 0: + default: + vettPath[idxPath].mPathRunMode.Value = "NA"; + break; + } } } @@ -682,26 +779,28 @@ namespace MTC_Adapter public override void processAlarm() { base.processAlarm(); - - // ora controllo "allarmi speciali" se si sono... - if (AlarmFlags != null) + if (!useIotMem) { - // variabili helper - StFlag32 AlarmBlock = 0; - int eStopCode = utils.CRI("eStopCode") - 1; // è base zero memoria, ma allarmi base 1... + // ora controllo "allarmi speciali" se si sono... + if (AlarmFlags != null) + { + // variabili helper + StFlag32 AlarmBlock = 0; + int eStopCode = utils.CRI("eStopCode") - 1; // è base zero memoria, ma allarmi base 1... - int memStart = (int)Math.Floor((double)eStopCode / 8); - // leggo 32bit alla volta... - AlarmBlock = (StFlag32)BitConverter.ToUInt32(AlarmFlags, memStart); - int eStopIndex = eStopCode - memStart * 8; - // converto! e aggiungo allarmi sollevati al corretto controller allarmi... - if (AlarmBlock.HasFlag((StFlag32)Math.Pow(2, eStopIndex))) - { - mEStop.Value = "TRIGGERED"; - } - else - { - mEStop.Value = "ARMED"; + int memStart = (int)Math.Floor((double)eStopCode / 8); + // leggo 32bit alla volta... + AlarmBlock = (StFlag32)BitConverter.ToUInt32(AlarmFlags, memStart); + int eStopIndex = eStopCode - memStart * 8; + // converto! e aggiungo allarmi sollevati al corretto controller allarmi... + if (AlarmBlock.HasFlag((StFlag32)Math.Pow(2, eStopIndex))) + { + mEStop.Value = "TRIGGERED"; + } + else + { + mEStop.Value = "ARMED"; + } } } } diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index efc772c..ad74bc1 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -1311,7 +1311,7 @@ namespace MTC_Adapter { contDistMovAssi[i] = getStoredValUInt(string.Format("Axis_{0:00}_DistDone", i + 1)); contNumInvAssi[i] = getStoredValUInt(string.Format("Axis_{0:00}_InvDDone", i + 1)); - contAccTimeAssi[i] = getStoredValUInt(string.Format("Axis_{0:00}_AccTime", i + 1)); + contAccTimeAssi[i] = getStoredValDouble(string.Format("Axis_{0:00}_AccTime", i + 1)); } for (int i = 0; i < currAdpConf.nVacuumPump; i++) diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/EsaKvara.ini b/MTC_Adapter/MTC_Adapter/Resources/SCM/EsaKvara.ini index 78bda4a..5925cde 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/EsaKvara.ini +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/EsaKvara.ini @@ -79,6 +79,15 @@ SysDefCn=C:\KVARA\DISCOI ; modo sincronizzato con il plc ;PlcSyncAddress=2103 +;CONFIGURAZIONE DELLE AREE DI MEMORIA IOT (dimensioni vari array...) +IOT_AreaAddressByte=IOT.BYTE +IOT_AreaAddressWord=IOT.WORD +IOT_AreaAddressDWord=IOT.DWORD +IOT_AreaAddressString=IOT.STRING +;IOT_ByteAreaByteSize=20 +;IOT_WordAreaByteSize=38 +;IOT_DWordAreaByteSize=70 +;IOT_StringAreaByteSize=4 [XILOG] Enable=1 diff --git a/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs b/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs index 5e9a36b..f546074 100644 --- a/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs +++ b/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs @@ -38,10 +38,10 @@ namespace SCMCncLib private UInt16 ETKAreaByteSize; private UInt16 AlarmByteSize; - private UInt16 IOTByteAreaByteSize; - private UInt16 IOTWordAreaByteSize; - private UInt16 IOTDWordAreaByteSize; - private UInt16 IOTStringAreaByteSize; + private UInt16 IOT_ByteAreaByteSize; + private UInt16 IOT_WordAreaByteSize; + private UInt16 IOT_DWordAreaByteSize; + private UInt16 IOT_StringAreaByteSize; private string SysLink = ""; @@ -61,7 +61,7 @@ namespace SCMCncLib private string EOKAreaAddressName; private TS_REG EOKAreaAddress; - + private string ETKAreaAddressName; private TS_REG ETKAreaAddress; @@ -69,17 +69,17 @@ namespace SCMCncLib private TS_REG PlcErrAreaAddress; - private string IOTByteAreaAddressName; - private TS_REG IOTByteAreaAddress; + private string IOT_ByteAreaAddressName; + private TS_REG IOT_ByteAreaAddress; - private string IOTWordAreaAddressName; - private TS_REG IOTWordAreaAddress; + private string IOT_WordAreaAddressName; + private TS_REG IOT_WordAreaAddress; - private string IOTDWordAreaAddressName; - private TS_REG IOTDWordAreaAddress; + private string IOT_DWordAreaAddressName; + private TS_REG IOT_DWordAreaAddress; - private string IOTStringAreaAddressName; - private TS_REG IOTStringAreaAddress; + private string IOT_StringAreaAddressName; + private TS_REG IOT_StringAreaAddress; /// /// Memorie a 4 byte (32 bit) @@ -111,23 +111,35 @@ namespace SCMCncLib /// memorie a 1 byte (8 bit) x area Allarmi (V[300] - 256 bit) /// public Byte[] PLC_MemoryAreaAllarmi; - + + #region memorie IOT NUOVE + + /// + /// Area IOT_Byte: memoria temp di UINT di 4 byte (32 bit) + /// + public UInt32[] PLC_MemoryAreaIOT_Byte_tmp; + /// + /// Area IOT_Word: memoria temp di UINT di 4 byte (32 bit) + /// + public UInt32[] PLC_MemoryAreaIOT_Word_tmp; /// /// memorie a 1 byte (8 bit) x area IOT.Byte /// - public UInt32[] PLC_MemoryAreaIOTByte; + public Byte[] PLC_MemoryAreaIOT_Byte; /// /// memorie a 2 byte (16 bit) x area IOT.Word /// - public uint[] PLC_MemoryAreaIOTWord; + public UInt16[] PLC_MemoryAreaIOT_Word; /// /// memorie a 4 byte (32 bit) x area IOT.DWord /// - public UInt32[] PLC_MemoryAreaIOTDWord; + public UInt32[] PLC_MemoryAreaIOT_DWord; /// /// memorie stringa x area IOT.String /// - public UInt32[] PLC_MemoryAreaIOTString; + public string[] PLC_MemoryAreaIOT_String; + + #endregion // esa constants #region ESA_PLC_CONSTANTS @@ -149,7 +161,7 @@ namespace SCMCncLib [DllImport("KvCom3x", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi, EntryPoint = "_read_regbuffer@16")] private static extern int read_regbuffer(ref TS_REG pReg, UInt16 Offset, UInt16 Count, [MarshalAs(UnmanagedType.LPArray)] UInt32[] pDst); - + [DllImport("KvCom3x", CallingConvention = CallingConvention.StdCall, CharSet = CharSet.Ansi, EntryPoint = "_write_regbuffer@16")] private static extern int write_regbuffer(ref TS_REG pReg, UInt16 Offset, UInt16 Count, [MarshalAs(UnmanagedType.LPArray)] UInt32[] pSrc); @@ -183,7 +195,7 @@ namespace SCMCncLib /// Initializes a new instance of the class. /// /// The f ini. - public thdNcEsaGvKvara(IniFile fIni) : base(fIni) + public thdNcEsaGvKvara(IniFile fIni, int IAS_Byte, int IAS_Word, int IAS_DWord, int IAS_String) : base(fIni) { DeviceType = NC_DEVICE_TYPE.ESAGV_KVARA; @@ -206,15 +218,18 @@ namespace SCMCncLib DefCn = tempS.ToString() + "\\defcn"; //StrCat(DefCn, "\\defcn"); - ReadNumber = 265; WriteNumber = 265; VAreaByteSize = 32; - ETKAreaByteSize = 8; + ETKAreaByteSize = 8; EOKAreaByteSize = 32; // era 14aggiunto sino a 31 x avere 91... AlarmByteSize = 32; - // nuove aree: definisco al SIZE in base ai files di configurazione letti... + // nuove aree: da init mi passa le dimensioni delle memorie + IOT_ByteAreaByteSize = Convert.ToUInt16(IAS_Byte); + IOT_WordAreaByteSize = Convert.ToUInt16(IAS_Word); + IOT_DWordAreaByteSize = Convert.ToUInt16(IAS_DWord); + IOT_StringAreaByteSize = Convert.ToUInt16(IAS_String); CommandsAddressName = fIni.ReadString("NC", "CommandsAddress", "SIMREAD[0]"); @@ -224,6 +239,12 @@ namespace SCMCncLib StatusAddressName = fIni.ReadString("NC", "StatusAddress", "SIMWRITE[0]"); VAreaAddressName = fIni.ReadString("NC", "VAreaAddress", "V"); + // indirizzo area IOT... + IOT_ByteAreaAddressName = fIni.ReadString("NC", "IOT_AreaAddressByte", "IOT.BYTE"); + IOT_WordAreaAddressName = fIni.ReadString("NC", "IOT_AreaAddressWord", "IOT.WORD"); + IOT_DWordAreaAddressName = fIni.ReadString("NC", "IOT_AreaAddressDWord", "IOT.DWORD"); + IOT_StringAreaAddressName = fIni.ReadString("NC", "IOT_AreaAddressString", "IOT"); + /************************************************** * Creazione buffers letture memoria **************************************************/ @@ -246,6 +267,14 @@ namespace SCMCncLib PLC_MemoryAreaEOK = new uint[EOKAreaByteSize]; PLC_MemoryAreaETK = new UInt32[ETKAreaByteSize]; + // creo array x aree memoria IOT... + PLC_MemoryAreaIOT_Byte_tmp = new UInt32[(int)Math.Ceiling((decimal)IOT_ByteAreaByteSize / 4)]; + PLC_MemoryAreaIOT_Word_tmp = new UInt32[(int)Math.Ceiling((decimal)IOT_WordAreaByteSize / 2)]; + PLC_MemoryAreaIOT_Byte = new Byte[IOT_ByteAreaByteSize]; + PLC_MemoryAreaIOT_Word = new UInt16[IOT_WordAreaByteSize]; + PLC_MemoryAreaIOT_DWord = new UInt32[IOT_DWordAreaByteSize]; + PLC_MemoryAreaIOT_String = new string[IOT_StringAreaByteSize]; + if (!Connect()) Disconnect(); } @@ -279,13 +308,64 @@ namespace SCMCncLib Finished = true; } + + /// + /// Leggo il buffer di memorie BYTE + /// + public void ReadBufferByte() + { + // 2017.02: modifiche x nuova versione PLC: leggo intero buffer BYTE + iError = read_regbuffer(ref IOT_ByteAreaAddress, 0, IOT_ByteAreaByteSize, PLC_MemoryAreaIOT_Byte_tmp); + // ...e copio in array a byte... + try + { + Buffer.BlockCopy(PLC_MemoryAreaIOT_Byte_tmp, 0, PLC_MemoryAreaIOT_Byte, 0, IOT_ByteAreaByteSize); + } + catch + { } + } + /// + /// Leggo il buffer di memorie WORD + /// + public void ReadBufferWord() + { + // 2017.02: modifiche x nuova versione PLC: leggo intero buffer WORD + iError = read_regbuffer(ref IOT_WordAreaAddress, 0, IOT_WordAreaByteSize, PLC_MemoryAreaIOT_Word_tmp); + try + { + Buffer.BlockCopy(PLC_MemoryAreaIOT_Word_tmp, 0, PLC_MemoryAreaIOT_Word, 0, IOT_WordAreaByteSize); + } + catch + { } + } + /// + /// Leggo il buffer di memorie DWORD + /// + public void ReadBufferDWord() + { + // leggo intero buffer DWORD + iError = read_regbuffer(ref IOT_DWordAreaAddress, 0, IOT_DWordAreaByteSize, PLC_MemoryAreaIOT_DWord); + } + /// + /// Leggo il buffer di memorie STRING + /// + public void ReadBufferString() + { +#if false + // leggo intero buffer STRING + iError = read_regbuffer(ref IOT_StringAreaAddress, 0, IOT_StringAreaByteSize, PLC_MemoryAreaIOT_String); +#endif + } + + + /// /// Reads the buffer. /// public void ReadBuffer() { // leggo da posizione memorie V/allarmi come TS_REG - iError = read_regbuffer(ref PlcErrAreaAddress, 300, AlarmByteSize, PLC_MemAreaAlarm_tmp); + iError = read_regbuffer(ref PlcErrAreaAddress, 300, AlarmByteSize, PLC_MemAreaAlarm_tmp); // lettura buffer dal CN iError = read_regbuffer(ref StatusAddress, 0, ReadNumber, PLC_MemoryRead); @@ -296,23 +376,6 @@ namespace SCMCncLib // leggo da posizione memorie EOK TS_REG iError = read_regbuffer(ref EOKAreaAddress, 60, EOKAreaByteSize, PLC_MemoryAreaEOK); - // 2017.02: modifiche x nuova versione PLC - // leggo intero buffer BYTE - iError = read_regbuffer(ref IOTByteAreaAddress, 0, IOTByteAreaByteSize, PLC_MemoryAreaIOTByte); - - // leggo intero buffer WORD - iError = read_regbuffer(ref IOTWordAreaAddress, 0, IOTWordAreaByteSize, PLC_MemoryAreaIOTWord); - - // leggo intero buffer DWORD - iError = read_regbuffer(ref IOTDWordAreaAddress, 0, IOTDWordAreaByteSize, PLC_MemoryAreaIOTDWord); - - // leggo intero buffer STRING - iError = read_regbuffer(ref IOTStringAreaAddress, 0, IOTStringAreaByteSize, PLC_MemoryAreaIOTString); - - - - - // copio in array a byte... try { @@ -328,7 +391,7 @@ namespace SCMCncLib catch { } } - + /// /// Connects to device. /// @@ -350,6 +413,16 @@ namespace SCMCncLib if (iError == 0) iError = get_reg_by_name(VAreaAddressName, ref VAreaAddress); + + if (iError == 0) + iError = get_reg_by_name(IOT_ByteAreaAddressName, ref IOT_ByteAreaAddress); + if (iError == 0) + iError = get_reg_by_name(IOT_WordAreaAddressName, ref IOT_WordAreaAddress); + if (iError == 0) + iError = get_reg_by_name(IOT_DWordAreaAddressName, ref IOT_DWordAreaAddress); + if (iError == 0) + iError = get_reg_by_name(IOT_StringAreaAddressName, ref IOT_StringAreaAddress); + Connected = (iError == 0); return Connected; } From 1cae0ab961cbc11198ab2b1fcd2a3714427f8c76 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 8 Mar 2017 12:05:18 +0100 Subject: [PATCH 18/46] modificata gestione bit/byte in load e unpacking... --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 235 +++++++++++++----- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 8 +- .../DATA/CONF/Adapter_ItemList.xml | 4 +- .../MTC_Adapter/DATA/CONF/IOT_ByteList.map | 40 +-- MTC_Adapter/MTC_Adapter/MTC-Adapter.csproj | 1 + .../MTC_Adapter/Resources/SCM/Appunti SCM.txt | 1 + 6 files changed, 201 insertions(+), 88 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index 703d969..0008e00 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -103,13 +103,41 @@ namespace MTC_Adapter System.IO.StreamReader file = new System.IO.StreamReader(nomeFile); // leggo 1 linea alla volta... int numRiga = 0; + int bitNum = 0; + int byteNum = 0; while ((linea = file.ReadLine()) != null) { // SE non è un commento... if (linea.Substring(0, 1) != "#") { - //elencoAllarmi[rumRiga] = decodeAlarmLine(linea, ':'); - vettoreConf[numRiga] = decodeOtherData(linea, utils.CRC("testCharSep"), "", 0, memSize); + // se finisce per BIT allora processo bit-a-bit... + if (linea.EndsWith("BIT")) + { + try + { + string[] memIdx = linea.Split(utils.CRC("testCharSep"))[0].Split('.'); + // calcolo bit e byte number... + int.TryParse(memIdx[0], out byteNum); + if (memIdx.Length > 1) + { + int.TryParse(memIdx[1], out bitNum); + } + else + { + bitNum = 0; + } + } + catch + { + byteNum = 0; + bitNum = 0; + } + vettoreConf[numRiga] = decodeBitData(linea, utils.CRC("testCharSep"), "0", byteNum, 1, bitNum); + } + else + { + vettoreConf[numRiga] = decodeOtherData(linea, utils.CRC("testCharSep"), "", 0, memSize); + } numRiga++; } } @@ -487,82 +515,159 @@ namespace MTC_Adapter // accodo dati path in DataMonitor...... StringBuilder sb = new StringBuilder(); // uno ad uno vado a inserirli nella mappa dei dati dell'adapter... + int numero = 0; + string status = ""; + int bitNum = 0; + int byteNum = 0; + byte currByte; for (int i = 0; i < mapIOT_Byte.Length; i++) { - if (mapIOT_Byte[i].varName == "IOT_EXEC") + // gestisco in primis le variabili BIT + if (mapIOT_Byte[i].dataType == "BIT") { - //mProtectionStatus.Value = status; - // 2017.03.07 VERIFICARE!!!: per ora ON = NO EMERGENZA... - if (ncDevice.PLC_MemoryAreaIOT_Byte[i] == 0) + string[] memIdx = mapIOT_Byte[i].memAddr.Split('.'); + // calcolo bit e byte number... + int.TryParse(memIdx[0], out byteNum); + if (memIdx.Length > 1) { - mPower.Value = "ON"; + int.TryParse(memIdx[1], out bitNum); } - else + // leggo byte... + currByte = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; + if (mapIOT_Byte[i].varName == "IOT_EXEC") { - mPower.Value = "OFF"; + if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) + { + vettPath[idxPath].mPathExeMode.Value = "RUN"; + // !!!FARE per ora prendo ANCHE poweron... + mPower.Value = "ON"; + } + else + { + vettPath[idxPath].mPathExeMode.Value = "READY"; + // !!!FARE per ora prendo ANCHE poweron... + mPower.Value = "OFF"; + } + } + else if (mapIOT_Byte[i].varName == "IOT_HOLD") + { + if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) + { + vettPath[idxPath].mPathExeMode.Value = "FEED_HOLD"; //"FEEDHOLD"; + } + } + else if (mapIOT_Byte[i].varName == "IOT_EMG") + { + // 2017.03.07 controllo bit emergenza... + if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) + { + mEStop.Value = "TRIGGERED"; + } + else + { + mEStop.Value = "ARMED"; + } + } + else if (mapIOT_Byte[i].varName == "IOT_ALRM") + { + if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) + { + // carico IN BLOCCO memoria allarmi... + // FARE!!! + } } } - else if (mapIOT_Byte[i].varName == "IOT_HOLD") + // vado poi a gestire le variabili BYTE + else if (mapIOT_Byte[i].dataType == "BYTE") { - if (ncDevice.PLC_MemoryAreaIOT_Byte[i] != 0) + int.TryParse(mapIOT_Byte[i].memAddr, out bitNum); + if (mapIOT_Byte[i].varName == "IOT_OVRF") { - vettPath[idxPath].mPathExeMode.Value = "FEED_HOLD"; //"FEEDHOLD"; + // ------------------------------------------- + // recupero dati FeedOverride + // FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213) + FeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[bitNum] * 100) / 213); + sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); + } + else if (mapIOT_Byte[i].varName == "IOT_OVRS") + { + // ------------------------------------------- + // recupero dati SpeedOverride + // SpeedOver: 50% = 128 + SpeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[bitNum] * 100) / 255); + sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); + } + else if (mapIOT_Byte[i].varName.StartsWith("IOT_LUB_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_LUB_", "").Replace("_Status", "")); + } + catch + { + // se non trovo --> 1! + numero = 1; + } + if (mapIOT_Byte[i].varName.EndsWith("_STA")) + { + if (ncDevice.PLC_MemoryAreaIOT_Byte[bitNum] != 0) + { + status = "EMPTY"; + } + else + { + status = "OK"; + } + vettLubro[numero - 1].mLubroStatus.Value = status; + } + else if (mapIOT_Byte[i].varName.EndsWith("_CNT")) + { + vettLubro[numero - 1].mLubroNum.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i]; + } + } + else if (mapIOT_Byte[i].varName.StartsWith("IOT_I_MD_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_I_MD_", "")); + } + catch + { + // se non trovo --> 1! + numero = 1; + } + // salvo in vettore carico mandrini + try + { + vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i]; + } + catch + { } + } + else if (mapIOT_Byte[i].varName.StartsWith("IOT_PGMR_A_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_I_MD_", "")); + } + catch + { + // se non trovo --> 1! + numero = 1; + } + //// salvo in vettore carico mandrini + //try + //{ + // vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i]; + //} + //catch + //{ } } } - else if (mapIOT_Byte[i].varName == "IOT_EMG") - { - // 2017.03.07 controllo bit emergenza... - if (ncDevice.PLC_MemoryAreaIOT_Byte[i] != 0) - { - mEStop.Value = "TRIGGERED"; - } - else - { - mEStop.Value = "ARMED"; - } - } - else if (mapIOT_Byte[i].varName == "IOT_ALRM") - { - if (ncDevice.PLC_MemoryAreaIOT_Byte[i] != 0) - { - // carico IN BLOCCO memoria allarmi... - // FARE!!! - } - } - else if (mapIOT_Byte[i].varName == "IOT_OVRF") - { - // ------------------------------------------- - // recupero dati FeedOverride - // FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213) - FeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[i] * 100) / 213); - sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); - } - else if (mapIOT_Byte[i].varName == "IOT_OVRS") - { - // ------------------------------------------- - // recupero dati SpeedOverride - // SpeedOver: 50% = 128 - SpeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[i] * 100) / 255); - sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); - } - else if (mapIOT_Byte[i].varName == "IOT_LUB_EMPTY") - { - if (ncDevice.PLC_MemoryAreaIOT_Byte[i] != 0) - { - // CREARE allarme serbatoio vuoto... !!!FARE - } - } - else if (mapIOT_Byte[i].varName == "IOT_C_LUB") - { - if (ncDevice.PLC_MemoryAreaIOT_Byte[i] != 0) - { - vettLubro[0].mLubroNum.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i]; - } - } - else - { - } } } else diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index ad74bc1..1926188 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -96,6 +96,10 @@ namespace MTC_Adapter /// numero pompate necessarie per far scattare sensore /// public Event mLubroNum; + /// + /// Status + /// + public Event mLubroStatus; /// /// Classe Lubrorefrigerante @@ -111,6 +115,7 @@ namespace MTC_Adapter mLubroAlias = new Event(string.Format("{0}_Alias", ident)); mLubroAlias.Value = alias; mLubroNum = new Event(dataRefList[0].Key); + mLubroStatus = new Event(string.Format("{0}_Status", ident)); } } /// @@ -1024,6 +1029,7 @@ namespace MTC_Adapter vettLubro[i] = new Lubro(adpConf.Lubro[i]); //mAdapter.AddDataItem(vettLubro[i].mLubroAlias); mAdapter.AddDataItem(vettLubro[i].mLubroNum); + mAdapter.AddDataItem(vettLubro[i].mLubroStatus); } // Cooler vettCooler = new Cooler[adpConf.nCooler]; @@ -1292,7 +1298,7 @@ namespace MTC_Adapter string memAddr = string.Format("{0}{1}.{2}", memPre, baseAddr + shift * memSize, resto); return new otherData(valori[0], memAddr, valori[1].Trim(), valori[2].Trim()); } - + #region metodi adapter public void loadPersData() diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml index aac3ce7..cf09a6f 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml @@ -1,8 +1,8 @@ 1 - ADAPTER_FANUC - FANUC + ADAPTER_ESAGV + ESAGV 0 0 diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_ByteList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_ByteList.map index 8ee1ee2..d67ce04 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_ByteList.map +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_ByteList.map @@ -1,21 +1,21 @@ # Commenti con cancelletto, struttura un variabile per riga, tipo chiave|valore (occhio che il separatore è configurato da .cofig come "testCharSep"); spazi e tabulazioni dovrei trimmarli in acquisizione (qui inseriti per comodità di lettura) -001|IOT_EXEC |BIT -002|IOT_HOLD |BIT -003|IOT_EMG |BIT -004|IOT_ALRM |BIT -005|IOT_OVRF |BYTE -006|IOT_OVRS |BYTE -007|IOT_LUB_EMPTY |BYTE -008|IOT_C_LUB |BYTE -009|IOT_I_MD1 |BYTE -010|IOT_I_MD2 |BYTE -011|IOT_I_MD3 |BYTE -012|IOT_I_MD4 |BYTE -013|IOT_I_MD5 |BYTE -014|IOT_I_MD6 |BYTE -015|IOT_I_MD7 |BYTE -016|IOT_I_MD8 |BYTE -017|IOT_PGMR_A1 |BYTE -018|IOT_PGMR_A2 |BYTE -019|IOT_PGMR_A3 |BYTE -020|IOT_PGMR_A4 |BYTE \ No newline at end of file +000.0|IOT_EXEC |BIT +001.0|IOT_HOLD |BIT +002.0|IOT_EMG |BIT +003.0|IOT_ALRM |BIT +004|IOT_OVRF |BYTE +005|IOT_OVRS |BYTE +006|IOT_LUB_01_STA |BYTE +007|IOT_LUB_01_CNT |BYTE +008|IOT_I_MD_01 |BYTE +009|IOT_I_MD_02 |BYTE +010|IOT_I_MD_03 |BYTE +011|IOT_I_MD_04 |BYTE +012|IOT_I_MD_05 |BYTE +013|IOT_I_MD_06 |BYTE +014|IOT_I_MD_07 |BYTE +015|IOT_I_MD_08 |BYTE +016|IOT_PGMR_A1 |BYTE +017|IOT_PGMR_A2 |BYTE +018|IOT_PGMR_A3 |BYTE +019|IOT_PGMR_A4 |BYTE \ No newline at end of file diff --git a/MTC_Adapter/MTC_Adapter/MTC-Adapter.csproj b/MTC_Adapter/MTC_Adapter/MTC-Adapter.csproj index baeff00..026f252 100644 --- a/MTC_Adapter/MTC_Adapter/MTC-Adapter.csproj +++ b/MTC_Adapter/MTC_Adapter/MTC-Adapter.csproj @@ -163,6 +163,7 @@ App.config + Designer Always diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt index f94616c..23b0b3e 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt @@ -11,6 +11,7 @@ TODO - inizializzazione dell'oggetto NC da thdNcEsaGvKvara con NUOVE aree di memoria + - attenzione a decodeBitData / decodeOtherData - verifica lettura GLOBALE di getGlobalData() - eliminare da thdNcEsaGvKvara "vecchie" aree di memoria From aebb2a812f97b3f955620afffda83d9ddd4929df Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 8 Mar 2017 15:59:04 +0100 Subject: [PATCH 19/46] ok byte (quasi tutti), NON riporta le WORD... --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 390 ++++++++++++++++++-------- 1 file changed, 273 insertions(+), 117 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index 0008e00..33d157a 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -132,11 +132,12 @@ namespace MTC_Adapter byteNum = 0; bitNum = 0; } - vettoreConf[numRiga] = decodeBitData(linea, utils.CRC("testCharSep"), "0", byteNum, 1, bitNum); + vettoreConf[numRiga] = decodeBitData(linea, utils.CRC("testCharSep"), "", byteNum, 1, bitNum); } else { - vettoreConf[numRiga] = decodeOtherData(linea, utils.CRC("testCharSep"), "", 0, memSize); + //int.TryParse(linea.Split(utils.CRC("testCharSep"))[0], out byteNum); + vettoreConf[numRiga] = decodeOtherData(linea, utils.CRC("testCharSep"), "", 1, memSize); } numRiga++; } @@ -230,14 +231,6 @@ namespace MTC_Adapter } } - /// - /// Effettuo lettura memorie strobe/status - /// - public override void getStrobeAndAckStatus() - { - base.getStrobeAndAckStatus(); - } - public override void getGlobalData() { base.getGlobalData(); @@ -246,112 +239,276 @@ namespace MTC_Adapter StringBuilder sb = new StringBuilder(); //2017.03.07 RIVEDERE DA QUI x lettura globale - - if (connectionOk) + // 2017.03.07 IN BLOCCO processo TUTTI i valori della memoria WORD/DWORD... + if (useIotMem) { - // leggo TUTTO il blocco di memoria - inizio = DateTime.Now; - ncDevice.ReadBuffer(); - if (utils.CRB("recTime")) TimingData.addResult(string.Format("R-PLC_FullMemoryRead", ncDevice.PLC_MemoryRead.Length), DateTime.Now.Subtract(inizio).Ticks); + if (connectionOk) + { + // leggo TUTTO il blocco di memoria + inizio = DateTime.Now; + ncDevice.ReadBufferWord(); + if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-Word", ncDevice.PLC_MemoryAreaIOT_Word.Length), DateTime.Now.Subtract(inizio).Ticks); + inizio = DateTime.Now; + ncDevice.ReadBufferDWord(); + if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-DWord", ncDevice.PLC_MemoryAreaIOT_DWord.Length), DateTime.Now.Subtract(inizio).Ticks); + } + else + { + lg.Error("Errore connessione mancante in getGlobalData"); + } + + int numero = 0; + int byteNum = 0; + // Processing area WORD + for (int i = 0; i < mapIOT_Word.Length; i++) + { + int.TryParse(mapIOT_Word[i].memAddr, out byteNum); + if (mapIOT_Word[i].varName.StartsWith("IOT_S_MD_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_S_MD_", "")); + vettUnOp[numero - 1].mUnOpSpeed.Value = ncDevice.PLC_MemoryAreaIOT_Word[i]; + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } + else if (mapIOT_Word[i].varName.StartsWith("IOT_T_MD_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_T_MD_", "")); + vettUnOp[numero - 1].mUnOpToolId.Value = ncDevice.PLC_MemoryAreaIOT_Word[i]; + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } + else if (mapIOT_Word[i].varName.StartsWith("IOT_C_H_MD_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_H_MD_", "")); + vettUnOp[numero - 1].mUnOpAccTime.Value = ncDevice.PLC_MemoryAreaIOT_Word[i]; + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } + } +#if false + // dati override feed/speed... + Byte v82 = ncDevice.PLC_MemoryAreaV[14]; + Byte v83 = ncDevice.PLC_MemoryAreaV[15]; + // 2 byte x speed da copiare... + byte[] tmpByte = new byte[2]; + Buffer.BlockCopy(ncDevice.PLC_MemoryAreaV, 16, tmpByte, 0, 2); + short v84 = BitConverter.ToInt16(tmpByte, 0); + // lista allarmi PLC/CNC + Byte v87 = ncDevice.PLC_MemoryAreaV[19]; // Allarme CN (almeno 1?!?) + + // ------------------------------------------- + // recupero dati Feed/Speed/override + // FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213) + FeedRateOver = Convert.ToInt16((decimal)(v82 * 100) / 213); + sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); + // SpeedOver: 50% = 128 + SpeedRateOver = Convert.ToInt16((decimal)(v83 * 100) / 255); + sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); + // Speed S5000 OK!!! + SpeedRate = v84; + sb.AppendLine(string.Format("SpeedRate: {0} rpm", SpeedRate)); + // ------------------------------------------- + + // da recuperare da qualche parte?!? + UnOpLoad = 0; + sb.AppendLine(string.Format("Load: {0}", UnOpLoad)); + + // ------------------------------------------- + // recupero dati dai contatori EOK + bool needSave = false; + + // ore totali accensione + int MinMaccOn = (int)ncDevice.PLC_MemoryAreaEOK[0]; + int OreMaccOn = (int)ncDevice.PLC_MemoryAreaEOK[1]; + istOreMaccOn = OreMaccOn + (double)MinMaccOn / 60; + needSave = procOreMaccOn(needSave); + + // ore totali lavoro + int MinMaccLav = (int)ncDevice.PLC_MemoryAreaEOK[2]; + int OreMaccLav = (int)ncDevice.PLC_MemoryAreaEOK[3]; + istOreMaccLav = OreMaccLav + (double)MinMaccLav / 60; + needSave = procOreMaccLav(needSave); + + // giri totali degli elettromandrini! + for (int i = 0; i < currAdpConf.nUnOp; i++) + { + istGiriElettrom[i] = (uint)ncDevice.PLC_MemoryAreaEOK[4 + i]; + } + needSave = procGiriTotUnOp(needSave); + needSave = procNumCU(needSave); + + // per ESA calcolo a mano se ci sia stato impiego assi... salvo le istantanee mov precedenti... + double precVal = 0; + DateTime adesso = DateTime.Now; + TimeSpan accumTime = adesso.Subtract(lastChekAccumTimeAxis); + + // spostamento totale assi! + for (int i = 0; i < 3; i++) + { + precVal = istDistMovAssi[i]; + // primo è metri, secondo km (moltiplico x 1000) + istDistMovAssi[i] = ncDevice.PLC_MemoryAreaEOK[8 + 2 * i] + ncDevice.PLC_MemoryAreaEOK[9 + 2 * i] * 1000; + // verifico SE devo aggiungere tempo lavoro sui singoli assi (se si sono spostati...) -- è a maglie LARGHE poiché leggiamo lo "scatto ogni metro" x cui se campiono velocemente ma assi muovono lenti prendo MENO tempo di movimento del reale... + if (precVal != istDistMovAssi[i]) + { + istAccTimeAssi[i] += accumTime.TotalHours; + } + } + // salvo valore lastChekAccumTimeAxis + lastChekAccumTimeAxis = adesso; + + needSave = procMovTotAssi(needSave); + needSave = procAccTimeAssi(needSave); + needSave = procProgrName(needSave); + needSave = procPartId(needSave); + needSave = procPzProd(needSave); + needSave = procNumInvAssi(needSave); + needSave = procVacPump(needSave); + needSave = procVacAct(needSave); + needSave = procLubro(needSave); + + // salvo se necessario! + if (needSave) parentForm.persistData(); + // ------------------------------------------- + + + // copio allarmi in vettore generale AlarFlags (dove lo gestisce)... + Buffer.BlockCopy(ncDevice.PLC_MemoryAreaAllarmi, 0, AlarmFlags, 0, ncDevice.PLC_MemoryAreaAllarmi.Length); + //Buffer.BlockCopy(ncDevice.PLC_MemAreaAlarm_tmp, 0, AlarmFlags, 0, ncDevice.PLC_MemAreaAlarm_tmp.Length); + + parentForm.dataMonitor = sb.ToString(); +#endif + } else { - lg.Error("Errore connessione mancante in getStrobeAndAckStatus"); - } - - // dati override feed/speed... - Byte v82 = ncDevice.PLC_MemoryAreaV[14]; - Byte v83 = ncDevice.PLC_MemoryAreaV[15]; - // 2 byte x speed da copiare... - byte[] tmpByte = new byte[2]; - Buffer.BlockCopy(ncDevice.PLC_MemoryAreaV, 16, tmpByte, 0, 2); - short v84 = BitConverter.ToInt16(tmpByte, 0); - // lista allarmi PLC/CNC - Byte v87 = ncDevice.PLC_MemoryAreaV[19]; // Allarme CN (almeno 1?!?) - - // ------------------------------------------- - // recupero dati Feed/Speed/override - // FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213) - FeedRateOver = Convert.ToInt16((decimal)(v82 * 100) / 213); - sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); - // SpeedOver: 50% = 128 - SpeedRateOver = Convert.ToInt16((decimal)(v83 * 100) / 255); - sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); - // Speed S5000 OK!!! - SpeedRate = v84; - sb.AppendLine(string.Format("SpeedRate: {0} rpm", SpeedRate)); - // ------------------------------------------- - - // da recuperare da qualche parte?!? - UnOpLoad = 0; - sb.AppendLine(string.Format("Load: {0}", UnOpLoad)); - - // ------------------------------------------- - // recupero dati dai contatori EOK - bool needSave = false; - - // ore totali accensione - int MinMaccOn = (int)ncDevice.PLC_MemoryAreaEOK[0]; - int OreMaccOn = (int)ncDevice.PLC_MemoryAreaEOK[1]; - istOreMaccOn = OreMaccOn + (double)MinMaccOn / 60; - needSave = procOreMaccOn(needSave); - - // ore totali lavoro - int MinMaccLav = (int)ncDevice.PLC_MemoryAreaEOK[2]; - int OreMaccLav = (int)ncDevice.PLC_MemoryAreaEOK[3]; - istOreMaccLav = OreMaccLav + (double)MinMaccLav / 60; - needSave = procOreMaccLav(needSave); - - // giri totali degli elettromandrini! - for (int i = 0; i < currAdpConf.nUnOp; i++) - { - istGiriElettrom[i] = (uint)ncDevice.PLC_MemoryAreaEOK[4 + i]; - } - needSave = procGiriTotUnOp(needSave); - needSave = procNumCU(needSave); - - // per ESA calcolo a mano se ci sia stato impiego assi... salvo le istantanee mov precedenti... - double precVal = 0; - DateTime adesso = DateTime.Now; - TimeSpan accumTime = adesso.Subtract(lastChekAccumTimeAxis); - - // spostamento totale assi! - for (int i = 0; i < 3; i++) - { - precVal = istDistMovAssi[i]; - // primo è metri, secondo km (moltiplico x 1000) - istDistMovAssi[i] = ncDevice.PLC_MemoryAreaEOK[8 + 2 * i] + ncDevice.PLC_MemoryAreaEOK[9 + 2 * i] * 1000; - // verifico SE devo aggiungere tempo lavoro sui singoli assi (se si sono spostati...) -- è a maglie LARGHE poiché leggiamo lo "scatto ogni metro" x cui se campiono velocemente ma assi muovono lenti prendo MENO tempo di movimento del reale... - if (precVal != istDistMovAssi[i]) + if (connectionOk) { - istAccTimeAssi[i] += accumTime.TotalHours; + // leggo TUTTO il blocco di memoria + inizio = DateTime.Now; + ncDevice.ReadBuffer(); + if (utils.CRB("recTime")) TimingData.addResult(string.Format("R-PLC_FullMemoryRead", ncDevice.PLC_MemoryRead.Length), DateTime.Now.Subtract(inizio).Ticks); } + else + { + lg.Error("Errore connessione mancante in getGlobalData"); + } + + // dati override feed/speed... + Byte v82 = ncDevice.PLC_MemoryAreaV[14]; + Byte v83 = ncDevice.PLC_MemoryAreaV[15]; + // 2 byte x speed da copiare... + byte[] tmpByte = new byte[2]; + Buffer.BlockCopy(ncDevice.PLC_MemoryAreaV, 16, tmpByte, 0, 2); + short v84 = BitConverter.ToInt16(tmpByte, 0); + // lista allarmi PLC/CNC + Byte v87 = ncDevice.PLC_MemoryAreaV[19]; // Allarme CN (almeno 1?!?) + + // ------------------------------------------- + // recupero dati Feed/Speed/override + // FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213) + FeedRateOver = Convert.ToInt16((decimal)(v82 * 100) / 213); + sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); + // SpeedOver: 50% = 128 + SpeedRateOver = Convert.ToInt16((decimal)(v83 * 100) / 255); + sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); + // Speed S5000 OK!!! + SpeedRate = v84; + sb.AppendLine(string.Format("SpeedRate: {0} rpm", SpeedRate)); + // ------------------------------------------- + + // da recuperare da qualche parte?!? + UnOpLoad = 0; + sb.AppendLine(string.Format("Load: {0}", UnOpLoad)); + + // ------------------------------------------- + // recupero dati dai contatori EOK + bool needSave = false; + + // ore totali accensione + int MinMaccOn = (int)ncDevice.PLC_MemoryAreaEOK[0]; + int OreMaccOn = (int)ncDevice.PLC_MemoryAreaEOK[1]; + istOreMaccOn = OreMaccOn + (double)MinMaccOn / 60; + needSave = procOreMaccOn(needSave); + + // ore totali lavoro + int MinMaccLav = (int)ncDevice.PLC_MemoryAreaEOK[2]; + int OreMaccLav = (int)ncDevice.PLC_MemoryAreaEOK[3]; + istOreMaccLav = OreMaccLav + (double)MinMaccLav / 60; + needSave = procOreMaccLav(needSave); + + // giri totali degli elettromandrini! + for (int i = 0; i < currAdpConf.nUnOp; i++) + { + istGiriElettrom[i] = (uint)ncDevice.PLC_MemoryAreaEOK[4 + i]; + } + needSave = procGiriTotUnOp(needSave); + needSave = procNumCU(needSave); + + // per ESA calcolo a mano se ci sia stato impiego assi... salvo le istantanee mov precedenti... + double precVal = 0; + DateTime adesso = DateTime.Now; + TimeSpan accumTime = adesso.Subtract(lastChekAccumTimeAxis); + + // spostamento totale assi! + for (int i = 0; i < 3; i++) + { + precVal = istDistMovAssi[i]; + // primo è metri, secondo km (moltiplico x 1000) + istDistMovAssi[i] = ncDevice.PLC_MemoryAreaEOK[8 + 2 * i] + ncDevice.PLC_MemoryAreaEOK[9 + 2 * i] * 1000; + // verifico SE devo aggiungere tempo lavoro sui singoli assi (se si sono spostati...) -- è a maglie LARGHE poiché leggiamo lo "scatto ogni metro" x cui se campiono velocemente ma assi muovono lenti prendo MENO tempo di movimento del reale... + if (precVal != istDistMovAssi[i]) + { + istAccTimeAssi[i] += accumTime.TotalHours; + } + } + // salvo valore lastChekAccumTimeAxis + lastChekAccumTimeAxis = adesso; + + needSave = procMovTotAssi(needSave); + needSave = procAccTimeAssi(needSave); + needSave = procProgrName(needSave); + needSave = procPartId(needSave); + needSave = procPzProd(needSave); + needSave = procNumInvAssi(needSave); + needSave = procVacPump(needSave); + needSave = procVacAct(needSave); + needSave = procLubro(needSave); + + + + // salvo se necessario! + if (needSave) parentForm.persistData(); + // ------------------------------------------- + + + // copio allarmi in vettore generale AlarFlags (dove lo gestisce)... + Buffer.BlockCopy(ncDevice.PLC_MemoryAreaAllarmi, 0, AlarmFlags, 0, ncDevice.PLC_MemoryAreaAllarmi.Length); + //Buffer.BlockCopy(ncDevice.PLC_MemAreaAlarm_tmp, 0, AlarmFlags, 0, ncDevice.PLC_MemAreaAlarm_tmp.Length); + + parentForm.dataMonitor = sb.ToString(); } - // salvo valore lastChekAccumTimeAxis - lastChekAccumTimeAxis = adesso; - - needSave = procMovTotAssi(needSave); - needSave = procAccTimeAssi(needSave); - needSave = procProgrName(needSave); - needSave = procPartId(needSave); - needSave = procPzProd(needSave); - needSave = procNumInvAssi(needSave); - needSave = procVacPump(needSave); - needSave = procVacAct(needSave); - needSave = procLubro(needSave); - - - - // salvo se necessario! - if (needSave) parentForm.persistData(); - // ------------------------------------------- - - - // copio allarmi in vettore generale AlarFlags (dove lo gestisce)... - Buffer.BlockCopy(ncDevice.PLC_MemoryAreaAllarmi, 0, AlarmFlags, 0, ncDevice.PLC_MemoryAreaAllarmi.Length); - //Buffer.BlockCopy(ncDevice.PLC_MemAreaAlarm_tmp, 0, AlarmFlags, 0, ncDevice.PLC_MemAreaAlarm_tmp.Length); - - parentForm.dataMonitor = sb.ToString(); } /// /// Path percorso file prod @@ -510,8 +667,9 @@ namespace MTC_Adapter // 2017.03.07 IN BLOCCO processo TUTTI i valori della memoria BYTE... if (useIotMem) { - + inizio = DateTime.Now; ncDevice.ReadBufferByte(); + if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-Byte", ncDevice.PLC_MemoryAreaIOT_Byte.Length), DateTime.Now.Subtract(inizio).Ticks); // accodo dati path in DataMonitor...... StringBuilder sb = new StringBuilder(); // uno ad uno vado a inserirli nella mappa dei dati dell'adapter... @@ -580,13 +738,13 @@ namespace MTC_Adapter // vado poi a gestire le variabili BYTE else if (mapIOT_Byte[i].dataType == "BYTE") { - int.TryParse(mapIOT_Byte[i].memAddr, out bitNum); + int.TryParse(mapIOT_Byte[i].memAddr, out byteNum); if (mapIOT_Byte[i].varName == "IOT_OVRF") { // ------------------------------------------- // recupero dati FeedOverride // FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213) - FeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[bitNum] * 100) / 213); + FeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 213); sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); } else if (mapIOT_Byte[i].varName == "IOT_OVRS") @@ -594,7 +752,7 @@ namespace MTC_Adapter // ------------------------------------------- // recupero dati SpeedOverride // SpeedOver: 50% = 128 - SpeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[bitNum] * 100) / 255); + SpeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 255); sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); } else if (mapIOT_Byte[i].varName.StartsWith("IOT_LUB_")) @@ -611,7 +769,7 @@ namespace MTC_Adapter } if (mapIOT_Byte[i].varName.EndsWith("_STA")) { - if (ncDevice.PLC_MemoryAreaIOT_Byte[bitNum] != 0) + if (ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) { status = "EMPTY"; } @@ -760,12 +918,10 @@ namespace MTC_Adapter public override void getUnOp() { - base.getUnOp(); - // cicl su UnOp for (int i = 0; i < currAdpConf.nUnOp; i++) { - vettUnOp[i].mUnOpToolId.Value = (int)ncDevice.PLC_MemoryAreaEOK[31]; + vettUnOp[i].mUnOpSpeedOverr.Value = SpeedRateOver; } } From 7c79a1752928a356c7e78328c82d13a1d4d1df62 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 8 Mar 2017 16:26:25 +0100 Subject: [PATCH 20/46] =?UTF-8?q?ok:=20sistemato=20lettura=20BYTE=20e=20WO?= =?UTF-8?q?RD=20(con=20blockcopy=20corretto...)=20ed=20=C3=A8=20a=20posto?= =?UTF-8?q?=20sino=20li...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 28 +++++++ .../MTC_Adapter/DATA/CONF/IOT_WordList.map | 76 +++++++++---------- MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs | 4 +- 3 files changed, 68 insertions(+), 40 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index 33d157a..247b176 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -291,6 +291,34 @@ namespace MTC_Adapter numero = 1; } } + else if (mapIOT_Word[i].varName.StartsWith("IOT_C_H_VAC_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_H_VAC_", "")); + vettVacAct[numero - 1].mVacActCount.Value = ncDevice.PLC_MemoryAreaIOT_Word[i]; + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } + else if (mapIOT_Word[i].varName.StartsWith("IOT_C_TC_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_TC_", "")); + vettUnOp[numero - 1].mUnOpNumCU.Value = ncDevice.PLC_MemoryAreaIOT_Word[i]; + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } else if (mapIOT_Word[i].varName.StartsWith("IOT_C_H_MD_")) { // recupero NUMERO diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_WordList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_WordList.map index 1fe7b7c..39fd695 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_WordList.map +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_WordList.map @@ -1,39 +1,39 @@ # Commenti con cancelletto, struttura un variabile per riga, tipo chiave|valore (occhio che il separatore è configurato da .cofig come "testCharSep"); spazi e tabulazioni dovrei trimmarli in acquisizione (qui inseriti per comodità di lettura) -002|IOT_S_MD2 |WORD -001|IOT_S_MD1 |WORD -003|IOT_S_MD3 |WORD -004|IOT_S_MD4 |WORD -005|IOT_S_MD5 |WORD -006|IOT_S_MD6 |WORD -007|IOT_S_MD7 |WORD -008|IOT_S_MD8 |WORD -009|IOT_T_MD1 |WORD -010|IOT_T_MD2 |WORD -011|IOT_T_MD3 |WORD -012|IOT_T_MD4 |WORD -013|IOT_T_MD5 |WORD -014|IOT_T_MD6 |WORD -015|IOT_T_MD7 |WORD -016|IOT_T_MD8 |WORD -017|IOT_C_H_VAC1 |WORD -018|IOT_C_H_VAC2 |WORD -019|IOT_C_H_VAC3 |WORD -020|IOT_C_H_VAC4 |WORD -021|IOT_C_TC1 |WORD -022|IOT_C_TC2 |WORD -023|IOT_C_TC3 |WORD -024|IOT_C_TC4 |WORD -025|IOT_C_TC5 |WORD -026|IOT_C_TC6 |WORD -027|IOT_C_TC7 |WORD -028|IOT_C_TC8 |WORD -029|IOT_C_H_MD1 |WORD -030|IOT_C_H_MD2 |WORD -031|IOT_C_H_MD3 |WORD -032|IOT_C_H_MD4 |WORD -033|IOT_C_H_MD5 |WORD -034|IOT_C_H_MD6 |WORD -035|IOT_C_H_MD7 |WORD -036|IOT_C_H_MD8 |WORD -037|IOT_F_AX1 |WORD -038|IOT_F_AX2 |WORD \ No newline at end of file +000|IOT_S_MD_01 |WORD +001|IOT_S_MD_02 |WORD +002|IOT_S_MD_03 |WORD +003|IOT_S_MD_04 |WORD +004|IOT_S_MD_05 |WORD +005|IOT_S_MD_06 |WORD +006|IOT_S_MD_07 |WORD +007|IOT_S_MD_08 |WORD +008|IOT_T_MD_01 |WORD +009|IOT_T_MD_02 |WORD +010|IOT_T_MD_03 |WORD +011|IOT_T_MD_04 |WORD +012|IOT_T_MD_05 |WORD +013|IOT_T_MD_06 |WORD +014|IOT_T_MD_07 |WORD +015|IOT_T_MD_08 |WORD +016|IOT_C_H_VAC_01 |WORD +017|IOT_C_H_VAC_02 |WORD +018|IOT_C_H_VAC_03 |WORD +019|IOT_C_H_VAC_04 |WORD +020|IOT_C_TC_01 |WORD +021|IOT_C_TC_02 |WORD +022|IOT_C_TC_03 |WORD +023|IOT_C_TC_04 |WORD +024|IOT_C_TC_05 |WORD +025|IOT_C_TC_06 |WORD +026|IOT_C_TC_07 |WORD +027|IOT_C_TC_08 |WORD +028|IOT_C_H_MD_01 |WORD +029|IOT_C_H_MD_02 |WORD +030|IOT_C_H_MD_03 |WORD +031|IOT_C_H_MD_04 |WORD +032|IOT_C_H_MD_05 |WORD +033|IOT_C_H_MD_06 |WORD +034|IOT_C_H_MD_07 |WORD +035|IOT_C_H_MD_08 |WORD +036|IOT_F_AX_01 |WORD +037|IOT_F_AX_02 |WORD \ No newline at end of file diff --git a/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs b/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs index f546074..cf35560 100644 --- a/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs +++ b/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs @@ -319,7 +319,7 @@ namespace SCMCncLib // ...e copio in array a byte... try { - Buffer.BlockCopy(PLC_MemoryAreaIOT_Byte_tmp, 0, PLC_MemoryAreaIOT_Byte, 0, IOT_ByteAreaByteSize); + Buffer.BlockCopy(PLC_MemoryAreaIOT_Byte_tmp, 0, PLC_MemoryAreaIOT_Byte, 0, IOT_ByteAreaByteSize * 4); } catch { } @@ -333,7 +333,7 @@ namespace SCMCncLib iError = read_regbuffer(ref IOT_WordAreaAddress, 0, IOT_WordAreaByteSize, PLC_MemoryAreaIOT_Word_tmp); try { - Buffer.BlockCopy(PLC_MemoryAreaIOT_Word_tmp, 0, PLC_MemoryAreaIOT_Word, 0, IOT_WordAreaByteSize); + Buffer.BlockCopy(PLC_MemoryAreaIOT_Word_tmp, 0, PLC_MemoryAreaIOT_Word, 0, IOT_WordAreaByteSize * 2); } catch { } From 32a760c4f7a7d63f3ea2dc0b180cd7510fa8ed19 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 8 Mar 2017 17:38:58 +0100 Subject: [PATCH 21/46] prima bozza lettura aree DWORD (tranne allarmi...) --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 390 +++++++++--------- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 6 + .../MTC_Adapter/DATA/CONF/IOT_DWordList.map | 140 +++---- 3 files changed, 278 insertions(+), 258 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index 247b176..5408c08 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -231,6 +231,204 @@ namespace MTC_Adapter } } + /// + /// Carica ed acquisisce dati del buffer WORD (16 bit) di memoria + /// + protected void getIotMem_Word() + { + if (connectionOk) + { + // leggo TUTTO il blocco di memoria + inizio = DateTime.Now; + ncDevice.ReadBufferWord(); + if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-Word", ncDevice.PLC_MemoryAreaIOT_Word.Length), DateTime.Now.Subtract(inizio).Ticks); + } + else + { + lg.Error("Errore connessione mancante in getIotMem_Word"); + } + + int numero = 0; + int byteNum = 0; + // Processing area WORD + for (int i = 0; i < mapIOT_Word.Length; i++) + { + int.TryParse(mapIOT_Word[i].memAddr, out byteNum); + if (mapIOT_Word[i].varName.StartsWith("IOT_S_MD_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_S_MD_", "")); + vettUnOp[numero - 1].mUnOpSpeed.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } + else if (mapIOT_Word[i].varName.StartsWith("IOT_T_MD_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_T_MD_", "")); + vettUnOp[numero - 1].mUnOpToolId.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } + else if (mapIOT_Word[i].varName.StartsWith("IOT_C_H_VAC_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_H_VAC_", "")); + vettVacAct[numero - 1].mVacActCount.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } + else if (mapIOT_Word[i].varName.StartsWith("IOT_C_TC_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_TC_", "")); + vettUnOp[numero - 1].mUnOpNumCU.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } + else if (mapIOT_Word[i].varName.StartsWith("IOT_C_H_MD_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_H_MD_", "")); + vettUnOp[numero - 1].mUnOpAccTime.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } + } + } + /// + /// Carica ed acquisisce dati del buffer DWORD (32 bit) di memoria + /// + protected void getIotMem_DWord() + { + if (connectionOk) + { + // leggo TUTTO il blocco di memoria + inizio = DateTime.Now; + ncDevice.ReadBufferDWord(); + if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-DWord", ncDevice.PLC_MemoryAreaIOT_DWord.Length), DateTime.Now.Subtract(inizio).Ticks); + } + else + { + lg.Error("Errore connessione mancante in getIotMem_DWord"); + } + + int numero = 0; + int byteNum = 0; + double valDouble = 0; + // Processing area WORD + for (int i = 0; i < mapIOT_DWord.Length; i++) + { + int.TryParse(mapIOT_DWord[i].memAddr, out byteNum); + if (mapIOT_DWord[i].varName.StartsWith("IOT_C_KU_AX_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_C_KU_AX_", "")); + vettAxis[numero - 1].mAxDistDone.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]; + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } + else if (mapIOT_DWord[i].varName.StartsWith("IOT_C_KINV_AX_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_C_KINV_AX_", "")); + vettAxis[numero - 1].mAxInvDDone.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]; + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } + else if (mapIOT_DWord[i].varName.StartsWith("IOT_POS_AX_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_POS_AX_", "")); + // recupero valore pos assi (in micron) + valDouble = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]), 0); + // riporto il dato in mm (divido x 1000) + vettAxis[numero - 1].mAxPosAct.Value = valDouble / 1000; + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } + else if (mapIOT_DWord[i].varName.StartsWith("IOT_C_KREV_MD_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_C_KREV_MD_", "")); + vettUnOp[numero - 1].mUnOpKRev.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]; + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } + else if (mapIOT_DWord[i].varName.StartsWith("IOT_C_EXEC_A_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_C_EXEC_A_", "")); + //vettAxis[numero - 1].mAxInvDDone.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]; + // FARE!!!! nuovo oggetto ed area x programmi caricati in area... + //mMessage.Code = mapIOT_DWord[i].varName; + //mMessage.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]; + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } + } + } + public override void getGlobalData() { base.getGlobalData(); @@ -238,196 +436,11 @@ namespace MTC_Adapter // accodo dati path in DataMonitor...... StringBuilder sb = new StringBuilder(); - //2017.03.07 RIVEDERE DA QUI x lettura globale // 2017.03.07 IN BLOCCO processo TUTTI i valori della memoria WORD/DWORD... if (useIotMem) { - if (connectionOk) - { - // leggo TUTTO il blocco di memoria - inizio = DateTime.Now; - ncDevice.ReadBufferWord(); - if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-Word", ncDevice.PLC_MemoryAreaIOT_Word.Length), DateTime.Now.Subtract(inizio).Ticks); - inizio = DateTime.Now; - ncDevice.ReadBufferDWord(); - if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-DWord", ncDevice.PLC_MemoryAreaIOT_DWord.Length), DateTime.Now.Subtract(inizio).Ticks); - } - else - { - lg.Error("Errore connessione mancante in getGlobalData"); - } - - int numero = 0; - int byteNum = 0; - // Processing area WORD - for (int i = 0; i < mapIOT_Word.Length; i++) - { - int.TryParse(mapIOT_Word[i].memAddr, out byteNum); - if (mapIOT_Word[i].varName.StartsWith("IOT_S_MD_")) - { - // recupero NUMERO - try - { - numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_S_MD_", "")); - vettUnOp[numero - 1].mUnOpSpeed.Value = ncDevice.PLC_MemoryAreaIOT_Word[i]; - } - catch - { - // se non trovo --> 1! - numero = 1; - } - } - else if (mapIOT_Word[i].varName.StartsWith("IOT_T_MD_")) - { - // recupero NUMERO - try - { - numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_T_MD_", "")); - vettUnOp[numero - 1].mUnOpToolId.Value = ncDevice.PLC_MemoryAreaIOT_Word[i]; - } - catch - { - // se non trovo --> 1! - numero = 1; - } - } - else if (mapIOT_Word[i].varName.StartsWith("IOT_C_H_VAC_")) - { - // recupero NUMERO - try - { - numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_H_VAC_", "")); - vettVacAct[numero - 1].mVacActCount.Value = ncDevice.PLC_MemoryAreaIOT_Word[i]; - } - catch - { - // se non trovo --> 1! - numero = 1; - } - } - else if (mapIOT_Word[i].varName.StartsWith("IOT_C_TC_")) - { - // recupero NUMERO - try - { - numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_TC_", "")); - vettUnOp[numero - 1].mUnOpNumCU.Value = ncDevice.PLC_MemoryAreaIOT_Word[i]; - } - catch - { - // se non trovo --> 1! - numero = 1; - } - } - else if (mapIOT_Word[i].varName.StartsWith("IOT_C_H_MD_")) - { - // recupero NUMERO - try - { - numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_H_MD_", "")); - vettUnOp[numero - 1].mUnOpAccTime.Value = ncDevice.PLC_MemoryAreaIOT_Word[i]; - } - catch - { - // se non trovo --> 1! - numero = 1; - } - } - } -#if false - // dati override feed/speed... - Byte v82 = ncDevice.PLC_MemoryAreaV[14]; - Byte v83 = ncDevice.PLC_MemoryAreaV[15]; - // 2 byte x speed da copiare... - byte[] tmpByte = new byte[2]; - Buffer.BlockCopy(ncDevice.PLC_MemoryAreaV, 16, tmpByte, 0, 2); - short v84 = BitConverter.ToInt16(tmpByte, 0); - // lista allarmi PLC/CNC - Byte v87 = ncDevice.PLC_MemoryAreaV[19]; // Allarme CN (almeno 1?!?) - - // ------------------------------------------- - // recupero dati Feed/Speed/override - // FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213) - FeedRateOver = Convert.ToInt16((decimal)(v82 * 100) / 213); - sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); - // SpeedOver: 50% = 128 - SpeedRateOver = Convert.ToInt16((decimal)(v83 * 100) / 255); - sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); - // Speed S5000 OK!!! - SpeedRate = v84; - sb.AppendLine(string.Format("SpeedRate: {0} rpm", SpeedRate)); - // ------------------------------------------- - - // da recuperare da qualche parte?!? - UnOpLoad = 0; - sb.AppendLine(string.Format("Load: {0}", UnOpLoad)); - - // ------------------------------------------- - // recupero dati dai contatori EOK - bool needSave = false; - - // ore totali accensione - int MinMaccOn = (int)ncDevice.PLC_MemoryAreaEOK[0]; - int OreMaccOn = (int)ncDevice.PLC_MemoryAreaEOK[1]; - istOreMaccOn = OreMaccOn + (double)MinMaccOn / 60; - needSave = procOreMaccOn(needSave); - - // ore totali lavoro - int MinMaccLav = (int)ncDevice.PLC_MemoryAreaEOK[2]; - int OreMaccLav = (int)ncDevice.PLC_MemoryAreaEOK[3]; - istOreMaccLav = OreMaccLav + (double)MinMaccLav / 60; - needSave = procOreMaccLav(needSave); - - // giri totali degli elettromandrini! - for (int i = 0; i < currAdpConf.nUnOp; i++) - { - istGiriElettrom[i] = (uint)ncDevice.PLC_MemoryAreaEOK[4 + i]; - } - needSave = procGiriTotUnOp(needSave); - needSave = procNumCU(needSave); - - // per ESA calcolo a mano se ci sia stato impiego assi... salvo le istantanee mov precedenti... - double precVal = 0; - DateTime adesso = DateTime.Now; - TimeSpan accumTime = adesso.Subtract(lastChekAccumTimeAxis); - - // spostamento totale assi! - for (int i = 0; i < 3; i++) - { - precVal = istDistMovAssi[i]; - // primo è metri, secondo km (moltiplico x 1000) - istDistMovAssi[i] = ncDevice.PLC_MemoryAreaEOK[8 + 2 * i] + ncDevice.PLC_MemoryAreaEOK[9 + 2 * i] * 1000; - // verifico SE devo aggiungere tempo lavoro sui singoli assi (se si sono spostati...) -- è a maglie LARGHE poiché leggiamo lo "scatto ogni metro" x cui se campiono velocemente ma assi muovono lenti prendo MENO tempo di movimento del reale... - if (precVal != istDistMovAssi[i]) - { - istAccTimeAssi[i] += accumTime.TotalHours; - } - } - // salvo valore lastChekAccumTimeAxis - lastChekAccumTimeAxis = adesso; - - needSave = procMovTotAssi(needSave); - needSave = procAccTimeAssi(needSave); - needSave = procProgrName(needSave); - needSave = procPartId(needSave); - needSave = procPzProd(needSave); - needSave = procNumInvAssi(needSave); - needSave = procVacPump(needSave); - needSave = procVacAct(needSave); - needSave = procLubro(needSave); - - // salvo se necessario! - if (needSave) parentForm.persistData(); - // ------------------------------------------- - - - // copio allarmi in vettore generale AlarFlags (dove lo gestisce)... - Buffer.BlockCopy(ncDevice.PLC_MemoryAreaAllarmi, 0, AlarmFlags, 0, ncDevice.PLC_MemoryAreaAllarmi.Length); - //Buffer.BlockCopy(ncDevice.PLC_MemAreaAlarm_tmp, 0, AlarmFlags, 0, ncDevice.PLC_MemAreaAlarm_tmp.Length); - - parentForm.dataMonitor = sb.ToString(); -#endif - + getIotMem_Word(); + getIotMem_DWord(); } else { @@ -975,7 +988,7 @@ namespace MTC_Adapter // leggo in modo "cablato" i dati dei vari assi... for (int i = 0; i < currAdpConf.nAxis; i++) { - +#if false // in base a indice scelgo valore posizione e load switch (i) { @@ -1008,6 +1021,7 @@ namespace MTC_Adapter vettAxis[i].mAxPosAct.Value = newPos; //vettAxis[i].mAxPosTgt.Value = newPos + (double)(valPos.dist.data) / Math.Pow(10, valPos.dist.dec); +#endif vettAxis[i].mAxFeedAct.Value = FeedRate; // calcolo distanza e salvo valore... diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index 1926188..38a97b8 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -402,6 +402,10 @@ namespace MTC_Adapter /// public Sample mUnOpAccTime; /// + /// contatore cumulato di giri mandrino (migliaia) + /// + public Sample mUnOpKRev; + /// /// Classe Unita Operatrice (Mandrino) con Idx e descrizione /// /// element base contenente parametri (da XML) @@ -423,6 +427,7 @@ namespace MTC_Adapter mUnOpLoad = new Sample(dataRefList[6].Key); mUnOpAccTime = new Sample(dataRefList[7].Key); mUnOpVitaResType = new MTConnect.Message(dataRefList[8].Key); + mUnOpKRev = new Sample(string.Format("{0}_KREV", ident)); } } /// @@ -1104,6 +1109,7 @@ namespace MTC_Adapter mAdapter.AddDataItem(vettUnOp[i].mUnOpSpeedOverr); mAdapter.AddDataItem(vettUnOp[i].mUnOpLoad); mAdapter.AddDataItem(vettUnOp[i].mUnOpAccTime); + mAdapter.AddDataItem(vettUnOp[i].mUnOpKRev); } // Assi vettAxis = new Axis[adpConf.nAxis]; diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_DWordList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_DWordList.map index 3389643..455bf13 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_DWordList.map +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_DWordList.map @@ -1,71 +1,71 @@ # Commenti con cancelletto, struttura un variabile per riga, tipo chiave|valore (occhio che il separatore è configurato da .cofig come "testCharSep"); spazi e tabulazioni dovrei trimmarli in acquisizione (qui inseriti per comodità di lettura) -1 001|IOT_C_KU_AX1 |DWORD -2 002|IOT_C_KU_AX2 |DWORD -3 003|IOT_C_KU_AX3 |DWORD -4 004|IOT_C_KU_AX4 |DWORD -5 005|IOT_C_KU_AX5 |DWORD -6 006|IOT_C_KU_AX6 |DWORD -7 007|IOT_C_KU_AX7 |DWORD -8 008|IOT_C_KU_AX8 |DWORD -9 009|IOT_C_KU_AX9 |DWORD -10 010|IOT_C_KU_AX10 |DWORD -11 011|IOT_C_KU_AX11 |DWORD -12 012|IOT_C_KU_AX12 |DWORD -13 013|IOT_C_KU_AX13 |DWORD -14 014|IOT_C_KU_AX14 |DWORD -15 015|IOT_C_KU_AX15 |DWORD -16 016|IOT_C_KINV_AX1 |DWORD -17 017|IOT_C_KINV_AX2 |DWORD -18 018|IOT_C_KINV_AX3 |DWORD -19 019|IOT_C_KINV_AX4 |DWORD -20 020|IOT_C_KINV_AX5 |DWORD -21 021|IOT_C_KINV_AX6 |DWORD -22 022|IOT_C_KINV_AX7 |DWORD -23 023|IOT_C_KINV_AX8 |DWORD -24 024|IOT_C_KINV_AX9 |DWORD -25 025|IOT_C_KINV_AX10 |DWORD -26 026|IOT_C_KINV_AX11 |DWORD -27 027|IOT_C_KINV_AX12 |DWORD -28 028|IOT_C_KINV_AX13 |DWORD -29 029|IOT_C_KINV_AX14 |DWORD -30 030|IOT_C_KINV_AX15 |DWORD -31 031|IOT_POS_AX1 |DWORD -32 032|IOT_POS_AX2 |DWORD -33 033|IOT_POS_AX3 |DWORD -34 034|IOT_POS_AX4 |DWORD -35 035|IOT_POS_AX5 |DWORD -36 036|IOT_POS_AX6 |DWORD -37 037|IOT_POS_AX7 |DWORD -38 038|IOT_POS_AX8 |DWORD -39 039|IOT_POS_AX9 |DWORD -40 040|IOT_POS_AX10 |DWORD -41 041|IOT_POS_AX11 |DWORD -42 042|IOT_POS_AX12 |DWORD -43 043|IOT_POS_AX13 |DWORD -44 044|IOT_POS_AX14 |DWORD -45 045|IOT_POS_AX15 |DWORD -46 046|IOT_C_KREV_MD1 |DWORD -47 047|IOT_C_KREV_MD2 |DWORD -48 048|IOT_C_KREV_MD3 |DWORD -49 049|IOT_C_KREV_MD4 |DWORD -50 050|IOT_C_KREV_MD5 |DWORD -51 051|IOT_C_KREV_MD6 |DWORD -52 052|IOT_C_KREV_MD7 |DWORD -53 053|IOT_C_KREV_MD8 |DWORD -54 054|IOT_PLC_MSG_00 |DWORD -55 055|IOT_PLC_MSG_01 |DWORD -56 056|IOT_PLC_MSG_02 |DWORD -57 057|IOT_PLC_MSG_03 |DWORD -58 058|IOT_PLC_MSG_04 |DWORD -59 059|IOT_PLC_MSG_05 |DWORD -60 060|IOT_PLC_MSG_06 |DWORD -61 061|IOT_PLC_MSG_07 |DWORD -62 062|IOT_PLC_MSG_08 |DWORD -63 063|IOT_PLC_MSG_09 |DWORD -64 064|IOT_PLC_MSG_10 |DWORD -65 065|IOT_PLC_MSG_11 |DWORD -66 066|IOT_PLC_MSG_12 |DWORD -67 067|IOT_C_EXEC_A1 |DWORD -68 068|IOT_C_EXEC_A2 |DWORD -69 069|IOT_C_EXEC_A3 |DWORD -70 070|IOT_C_EXEC_A4 |DWORD \ No newline at end of file +000|IOT_C_KU_AX_01 |DWORD +001|IOT_C_KU_AX_02 |DWORD +002|IOT_C_KU_AX_03 |DWORD +003|IOT_C_KU_AX_04 |DWORD +004|IOT_C_KU_AX_05 |DWORD +005|IOT_C_KU_AX_06 |DWORD +006|IOT_C_KU_AX_07 |DWORD +007|IOT_C_KU_AX_08 |DWORD +008|IOT_C_KU_AX_09 |DWORD +009|IOT_C_KU_AX_10 |DWORD +010|IOT_C_KU_AX_11 |DWORD +011|IOT_C_KU_AX_12 |DWORD +012|IOT_C_KU_AX_13 |DWORD +013|IOT_C_KU_AX_14 |DWORD +014|IOT_C_KU_AX_15 |DWORD +015|IOT_C_KINV_AX_01 |DWORD +016|IOT_C_KINV_AX_02 |DWORD +017|IOT_C_KINV_AX_03 |DWORD +018|IOT_C_KINV_AX_04 |DWORD +019|IOT_C_KINV_AX_05 |DWORD +020|IOT_C_KINV_AX_06 |DWORD +021|IOT_C_KINV_AX_07 |DWORD +022|IOT_C_KINV_AX_08 |DWORD +023|IOT_C_KINV_AX_09 |DWORD +024|IOT_C_KINV_AX_10 |DWORD +025|IOT_C_KINV_AX_11 |DWORD +026|IOT_C_KINV_AX_12 |DWORD +027|IOT_C_KINV_AX_13 |DWORD +028|IOT_C_KINV_AX_14 |DWORD +029|IOT_C_KINV_AX_15 |DWORD +030|IOT_POS_AX_01 |DWORD +031|IOT_POS_AX_02 |DWORD +032|IOT_POS_AX_03 |DWORD +033|IOT_POS_AX_04 |DWORD +034|IOT_POS_AX_05 |DWORD +035|IOT_POS_AX_06 |DWORD +036|IOT_POS_AX_07 |DWORD +037|IOT_POS_AX_08 |DWORD +038|IOT_POS_AX_09 |DWORD +039|IOT_POS_AX_10 |DWORD +040|IOT_POS_AX_11 |DWORD +041|IOT_POS_AX_12 |DWORD +042|IOT_POS_AX_13 |DWORD +043|IOT_POS_AX_14 |DWORD +044|IOT_POS_AX_15 |DWORD +045|IOT_C_KREV_MD_01 |DWORD +046|IOT_C_KREV_MD_02 |DWORD +047|IOT_C_KREV_MD_03 |DWORD +048|IOT_C_KREV_MD_04 |DWORD +049|IOT_C_KREV_MD_05 |DWORD +050|IOT_C_KREV_MD_06 |DWORD +051|IOT_C_KREV_MD_07 |DWORD +052|IOT_C_KREV_MD_08 |DWORD +053|IOT_PLC_MSG_00 |DWORD +054|IOT_PLC_MSG_01 |DWORD +055|IOT_PLC_MSG_02 |DWORD +056|IOT_PLC_MSG_03 |DWORD +057|IOT_PLC_MSG_04 |DWORD +058|IOT_PLC_MSG_05 |DWORD +059|IOT_PLC_MSG_06 |DWORD +060|IOT_PLC_MSG_07 |DWORD +061|IOT_PLC_MSG_08 |DWORD +062|IOT_PLC_MSG_09 |DWORD +063|IOT_PLC_MSG_10 |DWORD +064|IOT_PLC_MSG_11 |DWORD +065|IOT_PLC_MSG_12 |DWORD +066|IOT_C_EXEC_A_01 |DWORD +067|IOT_C_EXEC_A_02 |DWORD +068|IOT_C_EXEC_A_03 |DWORD +069|IOT_C_EXEC_A_04 |DWORD \ No newline at end of file From 785270a7d418327c64be0480b6b317da92bcdc3f Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 8 Mar 2017 18:00:14 +0100 Subject: [PATCH 22/46] fix display data + fix recupero assi (positivo/negativo etc...) --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 71 +++++++------------ .../MTC_Adapter/Resources/SCM/Appunti SCM.txt | 3 + 2 files changed, 27 insertions(+), 47 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index 5408c08..fc643d2 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -387,7 +387,7 @@ namespace MTC_Adapter // recupero valore pos assi (in micron) valDouble = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]), 0); // riporto il dato in mm (divido x 1000) - vettAxis[numero - 1].mAxPosAct.Value = valDouble / 1000; + vettAxis[numero - 1].mAxPosAct.Value = valDouble / utils.CRI("fattdecimale"); } catch { @@ -409,6 +409,21 @@ namespace MTC_Adapter numero = 1; } } + else if (mapIOT_DWord[i].varName.StartsWith("IOT_PLC_MSG_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_PLC_MSG_", "")); + // !!! FARE Copia aree allarmi!!!! + + } + catch + { + // se non trovo --> 1! + numero = 1; + } + } else if (mapIOT_DWord[i].varName.StartsWith("IOT_C_EXEC_A_")) { // recupero NUMERO @@ -426,6 +441,7 @@ namespace MTC_Adapter numero = 1; } } + } } @@ -441,6 +457,8 @@ namespace MTC_Adapter { getIotMem_Word(); getIotMem_DWord(); + // processo assi! + getAxis(); } else { @@ -547,9 +565,9 @@ namespace MTC_Adapter // copio allarmi in vettore generale AlarFlags (dove lo gestisce)... Buffer.BlockCopy(ncDevice.PLC_MemoryAreaAllarmi, 0, AlarmFlags, 0, ncDevice.PLC_MemoryAreaAllarmi.Length); //Buffer.BlockCopy(ncDevice.PLC_MemAreaAlarm_tmp, 0, AlarmFlags, 0, ncDevice.PLC_MemAreaAlarm_tmp.Length); - - parentForm.dataMonitor = sb.ToString(); } + + parentForm.dataMonitor = sb.ToString(); } /// /// Path percorso file prod @@ -973,8 +991,6 @@ namespace MTC_Adapter public override void getAxis() { - base.getAxis(); - // mostro assi in DataMonitor...... StringBuilder sb = new StringBuilder(); @@ -988,43 +1004,10 @@ namespace MTC_Adapter // leggo in modo "cablato" i dati dei vari assi... for (int i = 0; i < currAdpConf.nAxis; i++) { -#if false - // in base a indice scelgo valore posizione e load - switch (i) - { - case 0: - newPos = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryRead[240]), 0); - break; - case 1: - newPos = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryRead[241]), 0); - break; - case 2: - newPos = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryRead[242]), 0); - break; - case 3: - newPos = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryRead[243]), 0); - break; - case 4: - newPos = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryRead[244]), 0); - break; - case 5: - newPos = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryRead[245]), 0); - break; - default: - // valPos = posAssi.p1; - // valLoad = loadAssi.svload1; - break; - } - - // popolo valori... - //vettAxis[i].mAxLoad.Value = (double)(valLoad.data) / Math.Pow(10, valLoad.dec); - vettAxis[i].mAxPosAct.Value = newPos; - //vettAxis[i].mAxPosTgt.Value = newPos + (double)(valPos.dist.data) / Math.Pow(10, valPos.dist.dec); - -#endif vettAxis[i].mAxFeedAct.Value = FeedRate; // calcolo distanza e salvo valore... + newPos = Convert.ToDouble(vettAxis[i].mAxPosAct.Value); distPerc = newPos - prevPosAxis[i]; // sistemo direzione +/- (POS/NEG se lineari, CCW/CW se rotativi) @@ -1061,19 +1044,13 @@ namespace MTC_Adapter if (utils.CRB("verbose")) { - sb.AppendLine(string.Format("Asse {0}: PosAct:{1:N3}, ToGo:{2:N3}{3} | {4}", i, (double)(newPos) / utils.CRI("fattdecimale"), i, 0, direzione)); + sb.AppendLine(string.Format("Asse {0}: PosAct:{1:N3}, | {2}", i, (double)(newPos), direzione)); } // salvo valori vettore prec... prevPosAxis[i] = newPos; prevDirAxis[i] = newDir; - - //vettAxis[i].mAxMainProc.Value = AxData.AxisMainProc; - //vettAxis[i].mAxIsMaster.Value = AxData.AxisIsMaster; - //vettAxis[i].mAxMastId.Value = AxData.AxisMastId; - //vettAxis[i].mAxFeedOver.Value = AxData.AxisFeedOver; - //vettAxis[i].mAxAccelAct.Value = AxData.AxisAccel; - //vettAxis[i].mAxBattery.Value = AxData.AxisBattery; + } parentForm.dataMonitor += sb.ToString(); diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt index 23b0b3e..389ec88 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt @@ -12,6 +12,9 @@ TODO - inizializzazione dell'oggetto NC da thdNcEsaGvKvara con NUOVE aree di memoria - attenzione a decodeBitData / decodeOtherData + - lettura aree allarmi!!! + + - completare le aree IOT-STRING - verifica lettura GLOBALE di getGlobalData() - eliminare da thdNcEsaGvKvara "vecchie" aree di memoria From 2905e4518b5e982f40f5e3da5ee6d40c34f03416 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 8 Mar 2017 18:17:27 +0100 Subject: [PATCH 23/46] fix lettura area BYTE(NON VA moltiplicata x in bytecopy...) --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 6 +++--- MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index fc643d2..c375853 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -722,6 +722,8 @@ namespace MTC_Adapter // HARD CODE: forzo path 1 (indice 0...) int idxPath = 0; + // accodo dati path in DataMonitor...... + StringBuilder sb = new StringBuilder(); // 2017.03.07 IN BLOCCO processo TUTTI i valori della memoria BYTE... if (useIotMem) @@ -729,8 +731,6 @@ namespace MTC_Adapter inizio = DateTime.Now; ncDevice.ReadBufferByte(); if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-Byte", ncDevice.PLC_MemoryAreaIOT_Byte.Length), DateTime.Now.Subtract(inizio).Ticks); - // accodo dati path in DataMonitor...... - StringBuilder sb = new StringBuilder(); // uno ad uno vado a inserirli nella mappa dei dati dell'adapter... int numero = 0; string status = ""; @@ -973,6 +973,7 @@ namespace MTC_Adapter break; } } + parentForm.dataMonitor += sb.ToString(); } public override void getUnOp() @@ -1050,7 +1051,6 @@ namespace MTC_Adapter // salvo valori vettore prec... prevPosAxis[i] = newPos; prevDirAxis[i] = newDir; - } parentForm.dataMonitor += sb.ToString(); diff --git a/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs b/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs index cf35560..1549667 100644 --- a/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs +++ b/MTC_Adapter/SCMCncLib/thdNcEsaGvKvara.cs @@ -319,7 +319,7 @@ namespace SCMCncLib // ...e copio in array a byte... try { - Buffer.BlockCopy(PLC_MemoryAreaIOT_Byte_tmp, 0, PLC_MemoryAreaIOT_Byte, 0, IOT_ByteAreaByteSize * 4); + Buffer.BlockCopy(PLC_MemoryAreaIOT_Byte_tmp, 0, PLC_MemoryAreaIOT_Byte, 0, IOT_ByteAreaByteSize); } catch { } From 59d7fd39db3a7f29583dbb5d3350a2e14b421801 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 8 Mar 2017 22:29:22 +0100 Subject: [PATCH 24/46] completata lettura allarmi, nuova gestione con chiave x lettura "monoblocco" + veloce ed efficiente... --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 395 +++++++------ MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 103 ++-- MTC_Adapter/MTC_Adapter/App.CMS-FANUC.config | 1 + .../MTC_Adapter/App.CMS-SIEMENS.config | 1 + MTC_Adapter/MTC_Adapter/App.SCM-ESA.config | 5 +- MTC_Adapter/MTC_Adapter/App.config | 2 + .../MTC_Adapter/DATA/CONF/AlarmList.map | 540 +++++++++--------- .../MTC_Adapter/Resources/SCM/Appunti SCM.txt | 2 +- 8 files changed, 561 insertions(+), 488 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index c375853..a5a1d04 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -32,7 +32,7 @@ namespace MTC_Adapter /// public otherData[] mapIOT_String; /// - /// variabile globale x usare IOT MEMORI (!!! da eliminare alla fine dei test) + /// variabile globale x usare IOT MEMORY (!!! da eliminare alla fine dei test) /// protected bool useIotMem = true; @@ -231,6 +231,183 @@ namespace MTC_Adapter } } + /// + /// Carica ed acquisisce dati del buffer Byte (8 bit) di memoria + /// + protected void getIotMem_Byte() + { + // HARD CODE: forzo path 1 (indice 0...) + int idxPath = 0; + // accodo dati path in DataMonitor...... + StringBuilder sb = new StringBuilder(); + + if (connectionOk) + { + // leggo TUTTO il blocco di memoria + inizio = DateTime.Now; + ncDevice.ReadBufferByte(); + if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-Byte", ncDevice.PLC_MemoryAreaIOT_Byte.Length), DateTime.Now.Subtract(inizio).Ticks); + } + else + { + lg.Error("Errore connessione mancante in getIotMem_Byte"); + } + // Processing area BYTE + int numero = 0; + string status = ""; + int bitNum = 0; + int byteNum = 0; + byte currByte; + for (int i = 0; i < mapIOT_Byte.Length; i++) + { + // gestisco in primis le variabili BIT + if (mapIOT_Byte[i].dataType == "BIT") + { + string[] memIdx = mapIOT_Byte[i].memAddr.Split('.'); + // calcolo bit e byte number... + int.TryParse(memIdx[0], out byteNum); + if (memIdx.Length > 1) + { + int.TryParse(memIdx[1], out bitNum); + } + // leggo byte... + currByte = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; + if (mapIOT_Byte[i].varName == "IOT_EXEC") + { + if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) + { + vettPath[idxPath].mPathExeMode.Value = "RUN"; + // !!!FARE per ora prendo ANCHE poweron... + mPower.Value = "ON"; + } + else + { + vettPath[idxPath].mPathExeMode.Value = "READY"; + // !!!FARE per ora prendo ANCHE poweron... + mPower.Value = "OFF"; + } + } + else if (mapIOT_Byte[i].varName == "IOT_HOLD") + { + if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) + { + vettPath[idxPath].mPathExeMode.Value = "FEED_HOLD"; //"FEEDHOLD"; + } + } + else if (mapIOT_Byte[i].varName == "IOT_EMG") + { + // 2017.03.07 controllo bit emergenza... + if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) + { + mEStop.Value = "TRIGGERED"; + } + else + { + mEStop.Value = "ARMED"; + } + } + else if (mapIOT_Byte[i].varName == "IOT_ALRM") + { + if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) + { + // carico IN BLOCCO memoria allarmi... + // FARE!!! + } + } + } + // vado poi a gestire le variabili BYTE + else if (mapIOT_Byte[i].dataType == "BYTE") + { + int.TryParse(mapIOT_Byte[i].memAddr, out byteNum); + if (mapIOT_Byte[i].varName == "IOT_OVRF") + { + // ------------------------------------------- + // recupero dati FeedOverride + // FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213) + FeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 213); + sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); + } + else if (mapIOT_Byte[i].varName == "IOT_OVRS") + { + // ------------------------------------------- + // recupero dati SpeedOverride + // SpeedOver: 50% = 128 + SpeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 255); + sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); + } + else if (mapIOT_Byte[i].varName.StartsWith("IOT_LUB_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_LUB_", "").Replace("_Status", "")); + } + catch + { + // se non trovo --> 1! + numero = 1; + } + if (mapIOT_Byte[i].varName.EndsWith("_STA")) + { + if (ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) + { + status = "EMPTY"; + } + else + { + status = "OK"; + } + vettLubro[numero - 1].mLubroStatus.Value = status; + } + else if (mapIOT_Byte[i].varName.EndsWith("_CNT")) + { + vettLubro[numero - 1].mLubroNum.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i]; + } + } + else if (mapIOT_Byte[i].varName.StartsWith("IOT_I_MD_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_I_MD_", "")); + } + catch + { + // se non trovo --> 1! + numero = 1; + } + // salvo in vettore carico mandrini + try + { + vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i]; + } + catch + { } + } + else if (mapIOT_Byte[i].varName.StartsWith("IOT_PGMR_A_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_I_MD_", "")); + } + catch + { + // se non trovo --> 1! + numero = 1; + } + //// salvo in vettore carico mandrini + //try + //{ + // vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i]; + //} + //catch + //{ } + } + } + } + parentForm.dataMonitor += sb.ToString(); + } /// /// Carica ed acquisisce dati del buffer WORD (16 bit) di memoria /// @@ -415,8 +592,8 @@ namespace MTC_Adapter try { numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_PLC_MSG_", "")); - // !!! FARE Copia aree allarmi!!!! - + // copio allarmi in vettore generale AlarmFlags (dove lo gestisce) 4 byte alla volta + Buffer.BlockCopy(BitConverter.GetBytes(ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]), 0, AlarmFlags, numero * 4, 4); } catch { @@ -449,19 +626,15 @@ namespace MTC_Adapter { base.getGlobalData(); - // accodo dati path in DataMonitor...... - StringBuilder sb = new StringBuilder(); - // 2017.03.07 IN BLOCCO processo TUTTI i valori della memoria WORD/DWORD... if (useIotMem) { - getIotMem_Word(); - getIotMem_DWord(); - // processo assi! - getAxis(); + processAllMemory(); } else { + // accodo dati path in DataMonitor...... + StringBuilder sb = new StringBuilder(); if (connectionOk) { // leggo TUTTO il blocco di memoria @@ -564,10 +737,9 @@ namespace MTC_Adapter // copio allarmi in vettore generale AlarFlags (dove lo gestisce)... Buffer.BlockCopy(ncDevice.PLC_MemoryAreaAllarmi, 0, AlarmFlags, 0, ncDevice.PLC_MemoryAreaAllarmi.Length); - //Buffer.BlockCopy(ncDevice.PLC_MemAreaAlarm_tmp, 0, AlarmFlags, 0, ncDevice.PLC_MemAreaAlarm_tmp.Length); + parentForm.dataMonitor = sb.ToString(); } - parentForm.dataMonitor = sb.ToString(); } /// /// Path percorso file prod @@ -714,6 +886,28 @@ namespace MTC_Adapter } } } + + public override void processAllMemory() + { + // inizializzo data monitor su FORM + parentForm.dataMonitor = ""; + + // recupero le varie memorie + getIotMem_Byte(); + getIotMem_Word(); + getIotMem_DWord(); + //getIotMem_String(); + + // processo componenti specifici x info... + //getUnOp(); + //getPath(); + getAxis(); + + getConfigParam(); + ///acquisisco dati su programma in esecuzione e dati generali (stato, orologio, power...) + getSlowChangingData(); + } + /// /// Processo stti macchina... /// @@ -728,164 +922,7 @@ namespace MTC_Adapter // 2017.03.07 IN BLOCCO processo TUTTI i valori della memoria BYTE... if (useIotMem) { - inizio = DateTime.Now; - ncDevice.ReadBufferByte(); - if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-Byte", ncDevice.PLC_MemoryAreaIOT_Byte.Length), DateTime.Now.Subtract(inizio).Ticks); - // uno ad uno vado a inserirli nella mappa dei dati dell'adapter... - int numero = 0; - string status = ""; - int bitNum = 0; - int byteNum = 0; - byte currByte; - for (int i = 0; i < mapIOT_Byte.Length; i++) - { - // gestisco in primis le variabili BIT - if (mapIOT_Byte[i].dataType == "BIT") - { - string[] memIdx = mapIOT_Byte[i].memAddr.Split('.'); - // calcolo bit e byte number... - int.TryParse(memIdx[0], out byteNum); - if (memIdx.Length > 1) - { - int.TryParse(memIdx[1], out bitNum); - } - // leggo byte... - currByte = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; - if (mapIOT_Byte[i].varName == "IOT_EXEC") - { - if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) - { - vettPath[idxPath].mPathExeMode.Value = "RUN"; - // !!!FARE per ora prendo ANCHE poweron... - mPower.Value = "ON"; - } - else - { - vettPath[idxPath].mPathExeMode.Value = "READY"; - // !!!FARE per ora prendo ANCHE poweron... - mPower.Value = "OFF"; - } - } - else if (mapIOT_Byte[i].varName == "IOT_HOLD") - { - if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) - { - vettPath[idxPath].mPathExeMode.Value = "FEED_HOLD"; //"FEEDHOLD"; - } - } - else if (mapIOT_Byte[i].varName == "IOT_EMG") - { - // 2017.03.07 controllo bit emergenza... - if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) - { - mEStop.Value = "TRIGGERED"; - } - else - { - mEStop.Value = "ARMED"; - } - } - else if (mapIOT_Byte[i].varName == "IOT_ALRM") - { - if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) - { - // carico IN BLOCCO memoria allarmi... - // FARE!!! - } - } - } - // vado poi a gestire le variabili BYTE - else if (mapIOT_Byte[i].dataType == "BYTE") - { - int.TryParse(mapIOT_Byte[i].memAddr, out byteNum); - if (mapIOT_Byte[i].varName == "IOT_OVRF") - { - // ------------------------------------------- - // recupero dati FeedOverride - // FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213) - FeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 213); - sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); - } - else if (mapIOT_Byte[i].varName == "IOT_OVRS") - { - // ------------------------------------------- - // recupero dati SpeedOverride - // SpeedOver: 50% = 128 - SpeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 255); - sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); - } - else if (mapIOT_Byte[i].varName.StartsWith("IOT_LUB_")) - { - // recupero NUMERO - try - { - numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_LUB_", "").Replace("_Status", "")); - } - catch - { - // se non trovo --> 1! - numero = 1; - } - if (mapIOT_Byte[i].varName.EndsWith("_STA")) - { - if (ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) - { - status = "EMPTY"; - } - else - { - status = "OK"; - } - vettLubro[numero - 1].mLubroStatus.Value = status; - } - else if (mapIOT_Byte[i].varName.EndsWith("_CNT")) - { - vettLubro[numero - 1].mLubroNum.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i]; - } - } - else if (mapIOT_Byte[i].varName.StartsWith("IOT_I_MD_")) - { - // recupero NUMERO - try - { - numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_I_MD_", "")); - } - catch - { - // se non trovo --> 1! - numero = 1; - } - // salvo in vettore carico mandrini - try - { - vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i]; - } - catch - { } - } - else if (mapIOT_Byte[i].varName.StartsWith("IOT_PGMR_A_")) - { - // recupero NUMERO - try - { - numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_I_MD_", "")); - } - catch - { - // se non trovo --> 1! - numero = 1; - } - //// salvo in vettore carico mandrini - //try - //{ - // vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i]; - //} - //catch - //{ } - } - } - - } + processAllMemory(); } else { @@ -973,9 +1010,11 @@ namespace MTC_Adapter break; } } - parentForm.dataMonitor += sb.ToString(); + //parentForm.dataMonitor = sb.ToString(); } - + /// + /// Recupera la speed override x i mandrini (UnOp) + /// public override void getUnOp() { // cicl su UnOp @@ -985,11 +1024,9 @@ namespace MTC_Adapter } } - public override void getPath() - { - base.getPath(); - } - + /// + /// Carica info accessorie assi (direzione, feed, ...) + /// public override void getAxis() { // mostro assi in DataMonitor...... @@ -1056,6 +1093,7 @@ namespace MTC_Adapter parentForm.dataMonitor += sb.ToString(); } +#if false public override void processAlarm() { base.processAlarm(); @@ -1083,6 +1121,7 @@ namespace MTC_Adapter } } } - } + } +#endif } } diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index 38a97b8..dda3294 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -575,6 +575,10 @@ namespace MTC_Adapter /// public bool adpTryRestart; /// + /// Determina se utilizzare blocchi di memoria IOT contigui (e quindi processing "monoblocco" semplificato"= + /// + public bool procIotMem = false; + /// /// porta x adapter (x restart) /// protected int adpPortNum; @@ -968,6 +972,7 @@ namespace MTC_Adapter lg = LogManager.GetCurrentClassLogger(); lg.Info("Avvio AdapterGeneric"); + procIotMem = utils.CRB("procIotMem"); currAdpConf = adpConf; @@ -1192,7 +1197,7 @@ namespace MTC_Adapter // 2016.07.20: dimensione AlarmFlags è la MAX tra quella del numero allarmi ed il numero allarmi standard dalla memoria... if (numByte < 32) numByte = 32; AlarmFlags = new byte[numByte]; - if (utils.CRB("verbose")) lg.Info("Fine caricamento vettore allarmi"); + if (utils.CRB("verbose")) lg.Info(string.Format("Fine caricamento vettore allarmi: {0} allarmi caricati!", rumRiga)); } /// /// Caricamento altri file necessari epr adapter all'avvio @@ -1557,45 +1562,65 @@ namespace MTC_Adapter // processing degli strobes di allarme (da ULTIMA rappresentazione vettore dell'ADP) processAlarm(); - - // ciclo HF: recupero update status & strobes vari - if (ciclo == gatherCycle.HF) + // verifico se processare tutto "in un colpo solo" + if (procIotMem) { - // parte che eseguo SEMPRE: RECUPERO stato di tutti gli strobe/status e degli ack attualmente noti - getStrobeAndAckStatus(); - - // faccio refresh degli allarmi segnalati (da strobe su vettore locale) - refreshAlarmState(STRB_DW0, true); - // acquisizione degli status - processStatus(); - // processing degli strobes - processStrobe(); + processAllMemory(); + if (ciclo == gatherCycle.LF) + { + // eventuale log! + if (utils.CRB("recTime")) logTimeResults(); + } + // ciclo lentissimo + else if (ciclo == gatherCycle.VLF) + { + lg.Info("Richiesta lettura completa allarmi attivi"); + // faccio comunque rilettura completa allarmi... + forceAlarmCheck(); + } } - else if (ciclo == gatherCycle.MF) + // oppure in "modalità classica" con multistep... + else { - // leggo parametri a media freq (dati globali, path, assi, Unità Operatrice) - getGlobalData(); - getUnOp(); - getPath(); - getAxis(); - } - // ciclo lento - else if (ciclo == gatherCycle.LF) - { - // leggo EVENTUALI parametri da config file - getConfigParam(); - ///acquisisco dati su programma in esecuzione e dati generali (stato, orologio, power...) - getSlowChangingData(); + // ciclo HF: recupero update status & strobes vari + if (ciclo == gatherCycle.HF) + { + // parte che eseguo SEMPRE: RECUPERO stato di tutti gli strobe/status e degli ack attualmente noti + getStrobeAndAckStatus(); - // eventuale log! - if (utils.CRB("recTime")) logTimeResults(); - } - // ciclo lentissimo - else if (ciclo == gatherCycle.VLF) - { - lg.Info("Richiesta lettura completa allarmi attivi"); - // faccio comunque rilettura completa allarmi... - forceAlarmCheck(); + // faccio refresh degli allarmi segnalati (da strobe su vettore locale) + refreshAlarmState(STRB_DW0, true); + // acquisizione degli status + processStatus(); + // processing degli strobes + processStrobe(); + } + else if (ciclo == gatherCycle.MF) + { + // leggo parametri a media freq (dati globali, path, assi, Unità Operatrice) + getGlobalData(); + getUnOp(); + getPath(); + getAxis(); + } + // ciclo lento + else if (ciclo == gatherCycle.LF) + { + // leggo EVENTUALI parametri da config file + getConfigParam(); + ///acquisisco dati su programma in esecuzione e dati generali (stato, orologio, power...) + getSlowChangingData(); + + // eventuale log! + if (utils.CRB("recTime")) logTimeResults(); + } + // ciclo lentissimo + else if (ciclo == gatherCycle.VLF) + { + lg.Info("Richiesta lettura completa allarmi attivi"); + // faccio comunque rilettura completa allarmi... + forceAlarmCheck(); + } } // processo e svuoto eventuali code di invio per Codici M/S/T @@ -1865,7 +1890,11 @@ namespace MTC_Adapter } } } - + /// + /// Classe fittizia in caso di processing GLOBALE di tutto in 1 solo colpo... + /// + public virtual void processAllMemory() + { } /// /// metodo di recupero dei dati di identificativo macchina - DA CONF!!! /// diff --git a/MTC_Adapter/MTC_Adapter/App.CMS-FANUC.config b/MTC_Adapter/MTC_Adapter/App.CMS-FANUC.config index d750312..3a6d44e 100644 --- a/MTC_Adapter/MTC_Adapter/App.CMS-FANUC.config +++ b/MTC_Adapter/MTC_Adapter/App.CMS-FANUC.config @@ -4,6 +4,7 @@ + diff --git a/MTC_Adapter/MTC_Adapter/App.CMS-SIEMENS.config b/MTC_Adapter/MTC_Adapter/App.CMS-SIEMENS.config index 0d1692c..7a93800 100644 --- a/MTC_Adapter/MTC_Adapter/App.CMS-SIEMENS.config +++ b/MTC_Adapter/MTC_Adapter/App.CMS-SIEMENS.config @@ -4,6 +4,7 @@ + diff --git a/MTC_Adapter/MTC_Adapter/App.SCM-ESA.config b/MTC_Adapter/MTC_Adapter/App.SCM-ESA.config index a0920a8..5eaa87c 100644 --- a/MTC_Adapter/MTC_Adapter/App.SCM-ESA.config +++ b/MTC_Adapter/MTC_Adapter/App.SCM-ESA.config @@ -4,10 +4,11 @@ + - + diff --git a/MTC_Adapter/MTC_Adapter/App.config b/MTC_Adapter/MTC_Adapter/App.config index 3c5226e..f9af073 100644 --- a/MTC_Adapter/MTC_Adapter/App.config +++ b/MTC_Adapter/MTC_Adapter/App.config @@ -60,6 +60,8 @@ + + diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map index c799ba6..b86b64a 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map @@ -1,58 +1,58 @@ # Commenti con "#", elenco tipo COD_NUM|GRUPPO|LEVEL|DESCRIZIONE completa -000001|PLC|FAULT|[COD 001000] - 334 ERRORE COMUNICAZIONE PROFIBUS -000002|PLC|FAULT|[COD 001001] - 700 TABELLE IN MODIFICA -000003|PLC|FAULT|[COD 001002] - 404 BILANCIAMENTO ASSE Z INSUFFICIENTE -000004|PLC|FAULT|[COD 001003] - 403 SURRISCALDAMENTO ARMADIO ELETTRICO -000005|PLC|FAULT|[COD 001004] - 173 CAMBIARE LA BATTERIA -000006|PLC|FAULT|[COD 001005] - 407 UNO O PIU ASSI IN EXTRA CORSA -000007|PLC|FAULT|[COD 001006] - 406 PULSANTI DI EMERGENZA -000008|PLC|FAULT|[COD 001007] - ... -000009|PLC|FAULT|[COD 001008] - 583 MACCHINA SPENTA -000010|PLC|FAULT|[COD 001009] - 782 RICHIESTA ESECUZIONE TEST DI SICUREZZA -000011|PLC|FAULT|[COD 001010] - 783 INCONSISTENZA SEGNALI DUALCHEK (PARATIA) -000012|PLC|FAULT|[COD 001011] - 784 SOVRACORRENTE MODULI I/O LINK -000013|PLC|FAULT|[COD 001012] - 667 CIRCUITO DI SICUREZZA GUASTO -000014|PLC|FAULT|[COD 001013] - 404 BILANCIAMENTO ASSE W INSUFFICIENTE -000015|PLC|FAULT|[COD 001014] - 584 PORTA DI SICUREZZA AUSILIARIA 1 NON CHIUSA -000016|PLC|FAULT|[COD 001015] - 584 PORTA DI SICUREZZA AUSILIARIA 2 NON CHIUSA -000017|PLC|FAULT|[COD 001016] - 001 HAI VERIFICATO TABELLE UTENSILI ? PREMERE SOFTKEY SI -000018|PLC|FAULT|[COD 001017] - 002 SEI SICURO ? PREMERE SOFTKEY SI -000019|PLC|FAULT|[COD 001018] - 666 MODULO CONTROLLO MANDRINO FERMO NON OK -000020|PLC|FAULT|[COD 001019] - 666 DISPOSITIVO DI SICUREZZA GUASTO -000021|PLC|FAULT|[COD 001020] - 689 STATUS UTENSILE NON OK -000022|PLC|FAULT|[COD 001021] - 688 ERRORE TOOLTABLE - SINCRONISMO DATI -000023|PLC|FAULT|[COD 001022] - 688 ERRORE TOOLTABLE - UTENSILE NON TROVATO -000024|PLC|FAULT|[COD 001023] - 688 ERRORE TOOLTABLE - PASTIGLIA NON TROVATA -000025|PLC|FAULT|[COD 001024] - 688 ERRORE TOOLTABLE - FAMIGLIA NON TROVATA -000026|PLC|FAULT|[COD 001025] - 688 ERRORE TOOLTABLE - MAGAZZINO/POSTO NON TROVATO -000027|PLC|FAULT|[COD 001026] - 688 ERRORE TOOLTABLE - VITA UT. ESAURITA PER FAMIGLIA -000028|PLC|FAULT|[COD 001027] - 688 ERRORE TOOLTABLE - POSTO MAGAZZINO NON TROVATO -000029|PLC|FAULT|[COD 001028] - ... -000030|PLC|FAULT|[COD 001029] - ... -000031|PLC|FAULT|[COD 001030] - ... -000032|PLC|FAULT|[COD 001031] - 146 FIELDBUS KO (375) -000033|PLC|FAULT|[COD 001032] - -000034|PLC|FAULT|[COD 001033] - -000035|PLC|FAULT|[COD 001034] - -000036|PLC|FAULT|[COD 001035] - -000037|PLC|FAULT|[COD 001036] - -000038|PLC|FAULT|[COD 001037] - -000039|PLC|FAULT|[COD 001038] - -000040|PLC|FAULT|[COD 001039] - -000041|PLC|FAULT|[COD 001040] - -000042|PLC|FAULT|[COD 001041] - -000043|PLC|FAULT|[COD 001042] - -000044|PLC|FAULT|[COD 001043] - -000045|PLC|FAULT|[COD 001044] - -000046|PLC|FAULT|[COD 001045] - -000047|PLC|FAULT|[COD 001046] - -000048|PLC|FAULT|[COD 001047] - -000049|PLC|FAULT|[COD 001048] - -000050|PLC|FAULT|[COD 001049] - -000051|PLC|FAULT|[COD 001050] - -000052|PLC|FAULT|[COD 001051] - -000053|PLC|FAULT|[COD 001052] - -000054|PLC|FAULT|[COD 001053] - +000001|PLC|FAULT|[COD 001000] - +000002|PLC|FAULT|[COD 001001] - +000003|PLC|FAULT|[COD 001002] - +000004|PLC|FAULT|[COD 001003] - +000005|PLC|FAULT|[COD 001004] - +000006|PLC|FAULT|[COD 001005] - +000007|PLC|FAULT|[COD 001006] - +000008|PLC|FAULT|[COD 001007] - +000009|PLC|FAULT|[COD 001008] - +000010|PLC|FAULT|[COD 001009] - +000011|PLC|FAULT|[COD 001010] - +000012|PLC|FAULT|[COD 001011] - +000013|PLC|FAULT|[COD 001012] - +000014|PLC|FAULT|[COD 001013] - +000015|PLC|FAULT|[COD 001014] - +000016|PLC|FAULT|[COD 001015] - +000017|PLC|FAULT|[COD 001016] - +000018|PLC|FAULT|[COD 001017] - +000019|PLC|FAULT|[COD 001018] - +000020|PLC|FAULT|[COD 001019] - +000021|PLC|FAULT|[COD 001020] - +000022|PLC|FAULT|[COD 001021] - +000023|PLC|FAULT|[COD 001022] - +000024|PLC|FAULT|[COD 001023] - +000025|PLC|FAULT|[COD 001024] - +000026|PLC|FAULT|[COD 001025] - +000027|PLC|FAULT|[COD 001026] - +000028|PLC|FAULT|[COD 001027] - +000029|PLC|FAULT|[COD 001028] - +000030|PLC|FAULT|[COD 001029] - +000031|PLC|FAULT|[COD 001030] - +000032|PLC|FAULT|[COD 001031] - +000033|PLC|FAULT|[COD 001032] - +000034|PLC|FAULT|[COD 001033] - +000035|PLC|FAULT|[COD 001034] - +000036|PLC|FAULT|[COD 001035] - +000037|PLC|FAULT|[COD 001036] - +000038|PLC|FAULT|[COD 001037] - +000039|PLC|FAULT|[COD 001038] - +000040|PLC|FAULT|[COD 001039] - +000041|PLC|FAULT|[COD 001040] - +000042|PLC|FAULT|[COD 001041] - +000043|PLC|FAULT|[COD 001042] - +000044|PLC|FAULT|[COD 001043] - +000045|PLC|FAULT|[COD 001044] - +000046|PLC|FAULT|[COD 001045] - +000047|PLC|FAULT|[COD 001046] - +000048|PLC|FAULT|[COD 001047] - +000049|PLC|FAULT|[COD 001048] - +000050|PLC|FAULT|[COD 001049] - +000051|PLC|FAULT|[COD 001050] - +000052|PLC|FAULT|[COD 001051] - +000053|PLC|FAULT|[COD 001052] - +000054|PLC|FAULT|[COD 001053] - 000055|PLC|FAULT|[COD 001054] - 000056|PLC|FAULT|[COD 001055] - 000057|PLC|FAULT|[COD 001056] - @@ -255,109 +255,109 @@ 000254|PLC|FAULT|[COD 001253] - 000255|PLC|FAULT|[COD 001254] - 000256|PLC|FAULT|[COD 001255] - -000257|PLC|FAULT|[COD 002000] - 444 PRESSIONE LIQUIDO DI RAFFREDDAMENTO INSUFFICIENTE -000258|PLC|FAULT|[COD 002001] - 441 MALFUNZIONAMENTO RAFFREDDAMENTO MANDRINI -000259|PLC|FAULT|[COD 002002] - 276 LIMITI SOFTWARE ASSE X NON ATTUALI -000260|PLC|FAULT|[COD 002003] - 512 CAMBIO ZONA INTERROTTO -000261|PLC|FAULT|[COD 002004] - 346 PARATIA NON IN POSIZIONE -000262|PLC|FAULT|[COD 002005] - 607 PREMERE PRENOTAZIONE CAMBIO ZONA -000263|PLC|FAULT|[COD 002006] - 150 AZIONAMENTI NON ABILITATI -000264|PLC|FAULT|[COD 002007] - 161 COMUNICAZIONE INVERTER IN ERRORE -000265|PLC|FAULT|[COD 002008] - 162 FATAL ERROR INVERTER -000266|PLC|FAULT|[COD 002009] - 398 PRESSIONE ARIA INSUFFICIENTE -000267|PLC|FAULT|[COD 002010] - 400 LUBRIFICAZIONE INEFFICIENTE -000268|PLC|FAULT|[COD 002011] - 460 ASSE B BLOCCATO -000269|PLC|FAULT|[COD 002012] - 458 ASSE B NON BLOCCATO -000270|PLC|FAULT|[COD 002013] - 460 ASSE C BLOCCATO -000271|PLC|FAULT|[COD 002014] - 458 ASSE C NON BLOCCATO -000272|PLC|FAULT|[COD 002015] - 105 MACCHINA IN HOLD -000273|PLC|FAULT|[COD 002016] - 614 PREMERE LA SOFTKEY RIPRISTINO ACCOPPIAMENTO Z-W -000274|PLC|FAULT|[COD 002017] - 593 PROTEZIONI DI SICUREZZA -000275|PLC|FAULT|[COD 002018] - 362 MONTANTE CENTRALE NON IN POSIZIONE -000276|PLC|FAULT|[COD 002019] - 157 SICUREZZE ANTICADUTA ASSE Z NON OK -000277|PLC|FAULT|[COD 002020] - 158 PIOLO ANTICADUTA ASSE Z NON IN POSIZIONE -000278|PLC|FAULT|[COD 002021] - 115 CONTROLLO VELOCITA MANDRINO -000279|PLC|FAULT|[COD 002022] - 135 CONVERTITORE IN BLOCCO -000280|PLC|FAULT|[COD 002023] - 514 PROTEZIONE SUPPORTO LASER NON IN POSIZIONE -000281|PLC|FAULT|[COD 002024] - 561 LASER NON IN POSIZIONE -000282|PLC|FAULT|[COD 002025] - 230 RELE TERMICO POMPA VUOTO 1 -000283|PLC|FAULT|[COD 002026] - 230 RELE TERMICO POMPA VUOTO 2 -000284|PLC|FAULT|[COD 002027] - 200 RELE TERMICO MANDRINO -000285|PLC|FAULT|[COD 002028] - 168 CONVERTITORE NON ABILITATO -000286|PLC|FAULT|[COD 002029] - 333 COMUNICAZIONE VOLANTINO IN ERRORE -000287|PLC|FAULT|[COD 002030] - 390 FUNZIONE T NON PERMESSA -000288|PLC|FAULT|[COD 002031] - 429 UTENSILE IN MANDRINO NON OK -000289|PLC|FAULT|[COD 002032] - 245 PROTEZIONE TERMICA ASSE A -000290|PLC|FAULT|[COD 002033] - 245 PROTEZIONE TERMICA ASSE C -000291|PLC|FAULT|[COD 002034] - 004 VUOI ATTIVARE IL PROGRAMMA? PREMERE LA SOFTKEY SI OPPURE RESET -000292|PLC|FAULT|[COD 002035] - 490 VERIFICA POSIZIONE UTENSILI -000293|PLC|FAULT|[COD 002036] - 522 NUMERO DI GIRI TROPPO ELEVATI -000294|PLC|FAULT|[COD 002037] - 498 CARICO MASSIMO SUL MANDRINO -000295|PLC|FAULT|[COD 002038] - 397 CIRCUITO REFRIGERANTE UTENSILE NON OK -000296|PLC|FAULT|[COD 002039] - 465 UTENSILE ROTTO -000297|PLC|FAULT|[COD 002040] - 559 LASER/TASTATORE IN MANDRINO -000298|PLC|FAULT|[COD 002041] - 572 TASTATORE NON PRONTO -000299|PLC|FAULT|[COD 002042] - 514 PROTEZIONE SUPPORTO TASTATORE NON IN POSIZIONE -000300|PLC|FAULT|[COD 002043] - 561 TASTATORE NON IN POSIZIONE -000301|PLC|FAULT|[COD 002044] - 163 FRENO CONVERTITORE NON OK -000302|PLC|FAULT|[COD 002045] - 572 RADIO PROBE - BATTERIA SCARICA -000303|PLC|FAULT|[COD 002046] - 640 TAVOLE NON IN POSIZIONE CORRETTA -000304|PLC|FAULT|[COD 002047] - 673 ASSE Z NON OK PER CAMBIO TAVOLA -000305|PLC|FAULT|[COD 002048] - 641 CAMBIO TAVOLA INTERROTTO -000306|PLC|FAULT|[COD 002049] - 130 PROBE DEVICE NON OK - DISATTIVARE DRY RUN -000307|PLC|FAULT|[COD 002050] - 276 LIMITI SOFTWARE ASSE C NON ATTUALI -000308|PLC|FAULT|[COD 002051] - 495 AZZERAMENTO ASSI CON UTENSILE NON CONSENTITO -000309|PLC|FAULT|[COD 002052] - 479 PORTELLE ASPIRAZIONE DESTRA NON IN POSIZIONE -000310|PLC|FAULT|[COD 002053] - 479 PORTELLE ASPIRAZIONE SINISTRA NON IN POSIZIONE -000311|PLC|FAULT|[COD 002054] - ... -000312|PLC|FAULT|[COD 002055] - ... -000313|PLC|FAULT|[COD 002056] - ... -000314|PLC|FAULT|[COD 002057] - ... -000315|PLC|FAULT|[COD 002058] - 444 PRESSIONE LIQUIDO DI RAFFREDDAMENTO MOTORI TORQUE INSUFFICIENTE(TORQUE) -000316|PLC|FAULT|[COD 002059] - 672 CIRCUITO LIQUIDO DI RAFFREDDAMENTO MOTORI TORQUE NON OK -000317|PLC|FAULT|[COD 002060] - 265 ASSE X NON IN POSIZIONE PER AZZERAMENTO -000318|PLC|FAULT|[COD 002061] - 265 ASSE Y NON IN POSIZIONE PER AZZERAMENTO -000319|PLC|FAULT|[COD 002062] - 265 ASSE Z NON IN POSIZIONE PER AZZERAMENTO -000320|PLC|FAULT|[COD 002063] - ... -000321|PLC|FAULT|[COD 002064] - 551 CONDIZIONI NON OK PER GRUPPO A FORARE -000322|PLC|FAULT|[COD 002065] - 265 ASSE B NON IN POSIZIONE PER AZZERAMENTO -000323|PLC|FAULT|[COD 002066] - 265 ASSE C NON IN POSIZIONE PER AZZERAMENTO -000324|PLC|FAULT|[COD 002067] - 270 RELE TERMICO GRUPPO DI FORATURA -000325|PLC|FAULT|[COD 002068] - ... -000326|PLC|FAULT|[COD 002069] - ... -000327|PLC|FAULT|[COD 002070] - 105 STOP DA DISPOSITIVO DI MONITORAGGIO -000328|PLC|FAULT|[COD 002071] - ... -000329|PLC|FAULT|[COD 002072] - 551 CONDIZIONI NON OK PER GRUPPO A FORARE -000330|PLC|FAULT|[COD 002073] - 265 ASSE B NON IN POSIZIONE PER AZZERAMENTO -000331|PLC|FAULT|[COD 002074] - 265 ASSE C NON IN POSIZIONE PER AZZERAMENTO -000332|PLC|FAULT|[COD 002075] - 270 RELE TERMICO GRUPPO DI FORATURA -000333|PLC|FAULT|[COD 002076] - ... -000334|PLC|FAULT|[COD 002077] - ... -000335|PLC|FAULT|[COD 002078] - 105 STOP DA DISPOSITIVO DI MONITORAGGIO -000336|PLC|FAULT|[COD 002079] - ... -000337|PLC|FAULT|[COD 002080] - -000338|PLC|FAULT|[COD 002081] - -000339|PLC|FAULT|[COD 002082] - -000340|PLC|FAULT|[COD 002083] - -000341|PLC|FAULT|[COD 002084] - -000342|PLC|FAULT|[COD 002085] - -000343|PLC|FAULT|[COD 002086] - -000344|PLC|FAULT|[COD 002087] - -000345|PLC|FAULT|[COD 002088] - -000346|PLC|FAULT|[COD 002089] - -000347|PLC|FAULT|[COD 002090] - -000348|PLC|FAULT|[COD 002091] - -000349|PLC|FAULT|[COD 002092] - -000350|PLC|FAULT|[COD 002093] - -000351|PLC|FAULT|[COD 002094] - -000352|PLC|FAULT|[COD 002095] - -000353|PLC|FAULT|[COD 002096] - -000354|PLC|FAULT|[COD 000000] - -000355|PLC|FAULT|[COD 000000] - -000356|PLC|FAULT|[COD 000000] - -000357|PLC|FAULT|[COD 000000] - -000358|PLC|FAULT|[COD 000000] - -000359|PLC|FAULT|[COD 000000] - +000257|PLC|FAULT|[COD 002000] - +000258|PLC|FAULT|[COD 002001] - +000259|PLC|FAULT|[COD 002002] - +000260|PLC|FAULT|[COD 002003] - +000261|PLC|FAULT|[COD 002004] - +000262|PLC|FAULT|[COD 002005] - +000263|PLC|FAULT|[COD 002006] - +000264|PLC|FAULT|[COD 002007] - +000265|PLC|FAULT|[COD 002008] - +000266|PLC|FAULT|[COD 002009] - +000267|PLC|FAULT|[COD 002010] - +000268|PLC|FAULT|[COD 002011] - +000269|PLC|FAULT|[COD 002012] - +000270|PLC|FAULT|[COD 002013] - +000271|PLC|FAULT|[COD 002014] - +000272|PLC|FAULT|[COD 002015] - +000273|PLC|FAULT|[COD 002016] - +000274|PLC|FAULT|[COD 002017] - +000275|PLC|FAULT|[COD 002018] - +000276|PLC|FAULT|[COD 002019] - +000277|PLC|FAULT|[COD 002020] - +000278|PLC|FAULT|[COD 002021] - +000279|PLC|FAULT|[COD 002022] - +000280|PLC|FAULT|[COD 002023] - +000281|PLC|FAULT|[COD 002024] - +000282|PLC|FAULT|[COD 002025] - +000283|PLC|FAULT|[COD 002026] - +000284|PLC|FAULT|[COD 002027] - +000285|PLC|FAULT|[COD 002028] - +000286|PLC|FAULT|[COD 002029] - +000287|PLC|FAULT|[COD 002030] - +000288|PLC|FAULT|[COD 002031] - +000289|PLC|FAULT|[COD 002032] - +000290|PLC|FAULT|[COD 002033] - +000291|PLC|FAULT|[COD 002034] - +000292|PLC|FAULT|[COD 002035] - +000293|PLC|FAULT|[COD 002036] - +000294|PLC|FAULT|[COD 002037] - +000295|PLC|FAULT|[COD 002038] - +000296|PLC|FAULT|[COD 002039] - +000297|PLC|FAULT|[COD 002040] - +000298|PLC|FAULT|[COD 002041] - +000299|PLC|FAULT|[COD 002042] - +000300|PLC|FAULT|[COD 002043] - +000301|PLC|FAULT|[COD 002044] - +000302|PLC|FAULT|[COD 002045] - +000303|PLC|FAULT|[COD 002046] - +000304|PLC|FAULT|[COD 002047] - +000305|PLC|FAULT|[COD 002048] - +000306|PLC|FAULT|[COD 002049] - +000307|PLC|FAULT|[COD 002050] - +000308|PLC|FAULT|[COD 002051] - +000309|PLC|FAULT|[COD 002052] - +000310|PLC|FAULT|[COD 002053] - +000311|PLC|FAULT|[COD 002054] - +000312|PLC|FAULT|[COD 002055] - +000313|PLC|FAULT|[COD 002056] - +000314|PLC|FAULT|[COD 002057] - +000315|PLC|FAULT|[COD 002058] - +000316|PLC|FAULT|[COD 002059] - +000317|PLC|FAULT|[COD 002060] - +000318|PLC|FAULT|[COD 002061] - +000319|PLC|FAULT|[COD 002062] - +000320|PLC|FAULT|[COD 002063] - +000321|PLC|FAULT|[COD 002064] - +000322|PLC|FAULT|[COD 002065] - +000323|PLC|FAULT|[COD 002066] - +000324|PLC|FAULT|[COD 002067] - +000325|PLC|FAULT|[COD 002068] - +000326|PLC|FAULT|[COD 002069] - +000327|PLC|FAULT|[COD 002070] - +000328|PLC|FAULT|[COD 002071] - +000329|PLC|FAULT|[COD 002072] - +000330|PLC|FAULT|[COD 002073] - +000331|PLC|FAULT|[COD 002074] - +000332|PLC|FAULT|[COD 002075] - +000333|PLC|FAULT|[COD 002076] - +000334|PLC|FAULT|[COD 002077] - +000335|PLC|FAULT|[COD 002078] - +000336|PLC|FAULT|[COD 002079] - +000337|PLC|FAULT|[COD 002080] - +000338|PLC|FAULT|[COD 002081] - +000339|PLC|FAULT|[COD 002082] - +000340|PLC|FAULT|[COD 002083] - +000341|PLC|FAULT|[COD 002084] - +000342|PLC|FAULT|[COD 002085] - +000343|PLC|FAULT|[COD 002086] - +000344|PLC|FAULT|[COD 002087] - +000345|PLC|FAULT|[COD 002088] - +000346|PLC|FAULT|[COD 002089] - +000347|PLC|FAULT|[COD 002090] - +000348|PLC|FAULT|[COD 002091] - +000349|PLC|FAULT|[COD 002092] - +000350|PLC|FAULT|[COD 002093] - +000351|PLC|FAULT|[COD 002094] - +000352|PLC|FAULT|[COD 002095] - +000353|PLC|FAULT|[COD 002096] - +000354|PLC|FAULT|[COD 000000] - +000355|PLC|FAULT|[COD 000000] - +000356|PLC|FAULT|[COD 000000] - +000357|PLC|FAULT|[COD 000000] - +000358|PLC|FAULT|[COD 000000] - +000359|PLC|FAULT|[COD 000000] - 000360|PLC|FAULT|[COD 000000] - 000361|PLC|FAULT|[COD 000000] - 000362|PLC|FAULT|[COD 000000] - @@ -367,119 +367,119 @@ 000366|PLC|FAULT|[COD 000000] - 000367|PLC|FAULT|[COD 000000] - 000368|PLC|FAULT|[COD 000000] - -000369|PLC|FAULT|[COD 002100] - 503 CAMBIO UTENSILE IN CORSO -000370|PLC|FAULT|[COD 002101] - 781 UNO O PIU ASSI SENZA RIFERIMENTO -000371|PLC|FAULT|[COD 002102] - 674 MACCHINA NON IN ZONA DI LAVORO -000372|PLC|FAULT|[COD 002103] - 785 CONSENSO APERTURA PORTE NEGATO -000373|PLC|FAULT|[COD 002104] - 520 FUNZIONE STALL MODE ATTIVA -000374|PLC|FAULT|[COD 002105] - 450 UTENSILE MANDRINO NON BLOCCATO -000375|PLC|FAULT|[COD 002106] - 780 STAZIONE OCCUPATA MAGAZZINO -000376|PLC|FAULT|[COD 002107] - 530 PULSANTIERA ESTERNA ABILITATA -000377|PLC|FAULT|[COD 002108] - 504 CAMBIO UTENSILE INTERROTTO -000378|PLC|FAULT|[COD 002109] - 363 MONTANTE CENTRALE ALTO -000379|PLC|FAULT|[COD 002110] - --- PREALLARME TERMICO TORQUE A -000380|PLC|FAULT|[COD 002111] - 498 CARICO MASSIMO SUL MANDRINO SUPERATO SOGLIA S1 -000381|PLC|FAULT|[COD 002112] - --- PREALLARME TERMICO TORQUE C -000382|PLC|FAULT|[COD 002113] - 432 UTENSILE NON SGANCIATO -000383|PLC|FAULT|[COD 002114] - 475 CUFFIA ASPIRAZIONE NON IN POSIZIONE -000384|PLC|FAULT|[COD 002115] - 498 CARICO MASSIMO SUL MANDRINO SUPERATO SOGLIA S6 -000385|PLC|FAULT|[COD 002116] - 505 MOVIMENTO CONSENTITO Z+ -000386|PLC|FAULT|[COD 002117] - 545 ASSE Z NON IN POSIZIONE -000387|PLC|FAULT|[COD 002118] - 528 MODALITA PROVA PROGRAMMA ATTIVA -000388|PLC|FAULT|[COD 002119] - 351 MESSAGGI PLC INVIATO SMS -000389|PLC|FAULT|[COD 002120] - 603 INDICARE IL NOME DELL OPERATORE E CAUSA ARRESTO MACCHINA -000390|PLC|FAULT|[COD 002121] - 538 TAVOLA NON POSIZIONATA -000391|PLC|FAULT|[COD 002122] - 595 BARRIERE DI SICUREZZA -000392|PLC|FAULT|[COD 002123] - 689 AVVISO TOOLTABLE - T INTERPRETATA COME MANINA -000393|PLC|FAULT|[COD 002124] - 689 AVVISO TOOLTABLE - T INTERPRETATA COME ID UTENSILE -000394|PLC|FAULT|[COD 002125] - 260 REGOLAZIONE AUTOMATICA FEED OVERRIDE IN CORSO -000395|PLC|FAULT|[COD 002126] - 464 VITA UTENSILE ESAURITA -000396|PLC|FAULT|[COD 002127] - 003 SEI SICURO DI VOLER CAMBIARE ORIGINE ? PREMERE SOFTKEY SI O RESET -000397|PLC|FAULT|[COD 002128] - 305 BLOCCAGGIO A DEPRESSIONE 1 INEFFICIENTE -000398|PLC|FAULT|[COD 002129] - 305 BLOCCAGGIO A DEPRESSIONE 2 INEFFICIENTE -000399|PLC|FAULT|[COD 002130] - 300 BLOCCAGGIO A PRESSIONE 1 INEFFICIENTE -000400|PLC|FAULT|[COD 002131] - 300 BLOCCAGGIO A PRESSIONE 2 INEFFICIENTE -000401|PLC|FAULT|[COD 002132] - 305 BLOCCAGGIO A DEPRESSIONE SUPPLEMENTARE 1 INEFFICIENTE -000402|PLC|FAULT|[COD 002133] - 305 BLOCCAGGIO A DEPRESSIONE SUPPLEMENTARE 2 INEFFICIENTE -000403|PLC|FAULT|[COD 002134] - 584 PORTE DI SICUREZZA 1 NON CHIUSE -000404|PLC|FAULT|[COD 002135] - 584 PORTE DI SICUREZZA 2 NON CHIUSE -000405|PLC|FAULT|[COD 002136] - 406 PULSANTE POWER-OFF PREMUTO -000406|PLC|FAULT|[COD 002137] - 412 AZZERAMENTO AUTOMATICO ASSI IN CORSO -000407|PLC|FAULT|[COD 002138] - 689 AVVISO TOOLTABLE - RICHIESTA CONFERMA ATTREZZAGGIO -000408|PLC|FAULT|[COD 002139] - 700 TABELLE IN MODIFICA -000409|PLC|FAULT|[COD 002140] - 442 MAGAZZINO DISCO MOBILE NON IN POSIZIONE -000410|PLC|FAULT|[COD 002141] - 442 MAGAZZINO PICK-UP 1 NON IN POSIZIONE -000411|PLC|FAULT|[COD 002142] - 442 MAGAZZINO PICK-UP 2 NON IN POSIZIONE -000412|PLC|FAULT|[COD 002143] - 442 MAGAZINO LATERALE 1 NON IN POSIZIONE -000413|PLC|FAULT|[COD 002144] - 442 MAGAZINO LATERALE 2 NON IN POSIZIONE -000414|PLC|FAULT|[COD 002145] - 514 PROTEZIONE MAGAZZINO PICK-UP 1 NON IN POSIZIONE -000415|PLC|FAULT|[COD 002146] - 514 PROTEZIONE MAGAZZINO PICK-UP 2 NON IN POSIZIONE -000416|PLC|FAULT|[COD 002147] - 514 PROTEZIONE MAGAZZINO LATERALE 1 NON IN POSIZIONE -000417|PLC|FAULT|[COD 002148] - 514 PROTEZIONE MAGAZZINO LATERALE 2 NON IN POSIZIONE -000418|PLC|FAULT|[COD 002149] - 334 ERRORE COMUNICAZIONE CANBUS -000419|PLC|FAULT|[COD 002150] - 147 CAMBIO UTENSILE 1 IN ALLARME -000420|PLC|FAULT|[COD 002151] - 160 AZIONAMENTO CAMBIO UTENSILE 1 NON PRONTO -000421|PLC|FAULT|[COD 002152] - 151 AZIONAMENTO CAMBIO UTENSILE 1 NON ALIMENTATO -000422|PLC|FAULT|[COD 002153] - 442 MAGAZZINO UTENSILI DISCO 1 NON IN POSIZIONE -000423|PLC|FAULT|[COD 002154] - 289 ATTREZZAGGIO CAMBIO UTENSILE 1 IN CORSO -000424|PLC|FAULT|[COD 002155] - 584 PORTA DI SICUREZZA MAGAZZINO DISCO 1 NON CHIUSA -000425|PLC|FAULT|[COD 002156] - 514 PROTEZIONE MAGAZZINO DISCO 1 NON IN POSIZIONE -000426|PLC|FAULT|[COD 002157] - 147 CAMBIO UTENSILE 2 IN ALLARME -000427|PLC|FAULT|[COD 002158] - 160 AZIONAMENTO CAMBIO UTENSILE 2 NON PRONTO -000428|PLC|FAULT|[COD 002159] - 151 AZIONAMENTO CAMBIO UTENSILE 2 NON ALIMENTATO -000429|PLC|FAULT|[COD 002160] - 442 MAGAZZINO UTENSILI DISCO 2 NON IN POSIZIONE -000430|PLC|FAULT|[COD 002161] - 289 ATTREZZAGGIO CAMBIO UTENSILE 2 IN CORSO -000431|PLC|FAULT|[COD 002162] - 584 PORTA DI SICUREZZA MAGAZZINO DISCO 2 NON CHIUSA -000432|PLC|FAULT|[COD 002163] - 514 PROTEZIONE MAGAZZINO DISCO 2 NON IN POSIZIONE -000433|PLC|FAULT|[COD 002164] - ... -000434|PLC|FAULT|[COD 002165] - 550 GRUPPO DI FORATURA NON IN POSIZIONE -000435|PLC|FAULT|[COD 002166] - ... -000436|PLC|FAULT|[COD 002167] - ... -000437|PLC|FAULT|[COD 002168] - ... -000438|PLC|FAULT|[COD 002169] - ... -000439|PLC|FAULT|[COD 002170] - 250 CICLO DI ATTREZZAGGIO AUTOMATICO IN CORSO -000440|PLC|FAULT|[COD 002171] - 251 CICLO DI ATTREZZAGGIO AUTOMATICO INTERROTTO -000441|PLC|FAULT|[COD 002172] - 605 DISPOSITIVO DI REGISTRAZIONE DATI UTENSILI NON IN POSIZIONE -000442|PLC|FAULT|[COD 002173] - ... -000443|PLC|FAULT|[COD 002174] - ... -000444|PLC|FAULT|[COD 002175] - ... -000445|PLC|FAULT|[COD 002176] - 130 DISPOSITIVO MONITORAGGIO NON PRONTO -000446|PLC|FAULT|[COD 002177] - 773 LIMITE 1 MONITORAGGIO NON OK -000447|PLC|FAULT|[COD 002178] - 773 LIMITE 2 MONITORAGGIO NON OK -000448|PLC|FAULT|[COD 002179] - 773 LIMITE 3 MONITORAGGIO NON OK -000449|PLC|FAULT|[COD 002180] - ... -000450|PLC|FAULT|[COD 002181] - -000451|PLC|FAULT|[COD 002182] - -000452|PLC|FAULT|[COD 002183] - -000453|PLC|FAULT|[COD 002184] - -000454|PLC|FAULT|[COD 002185] - -000455|PLC|FAULT|[COD 002186] - -000456|PLC|FAULT|[COD 002187] - -000457|PLC|FAULT|[COD 002188] - -000458|PLC|FAULT|[COD 002189] - -000459|PLC|FAULT|[COD 002190] - -000460|PLC|FAULT|[COD 002191] - -000461|PLC|FAULT|[COD 002192] - -000462|PLC|FAULT|[COD 002193] - -000463|PLC|FAULT|[COD 002194] - -000464|PLC|FAULT|[COD 002195] - -000465|PLC|FAULT|[COD 000000] - -000466|PLC|FAULT|[COD 000000] - -000467|PLC|FAULT|[COD 000000] - -000468|PLC|FAULT|[COD 000000] - -000469|PLC|FAULT|[COD 000000] - -000470|PLC|FAULT|[COD 000000] - -000471|PLC|FAULT|[COD 000000] - -000472|PLC|FAULT|[COD 000000] - -000473|PLC|FAULT|[COD 000000] - -000474|PLC|FAULT|[COD 000000] - -000475|PLC|FAULT|[COD 000000] - -000476|PLC|FAULT|[COD 000000] - -000477|PLC|FAULT|[COD 000000] - -000478|PLC|FAULT|[COD 000000] - -000479|PLC|FAULT|[COD 000000] - -000480|PLC|FAULT|[COD 000000] - -000481|PLC|FAULT|[COD 000000] - +000369|PLC|FAULT|[COD 002100] - +000370|PLC|FAULT|[COD 002101] - +000371|PLC|FAULT|[COD 002102] - +000372|PLC|FAULT|[COD 002103] - +000373|PLC|FAULT|[COD 002104] - +000374|PLC|FAULT|[COD 002105] - +000375|PLC|FAULT|[COD 002106] - +000376|PLC|FAULT|[COD 002107] - +000377|PLC|FAULT|[COD 002108] - +000378|PLC|FAULT|[COD 002109] - +000379|PLC|FAULT|[COD 002110] - +000380|PLC|FAULT|[COD 002111] - +000381|PLC|FAULT|[COD 002112] - +000382|PLC|FAULT|[COD 002113] - +000383|PLC|FAULT|[COD 002114] - +000384|PLC|FAULT|[COD 002115] - +000385|PLC|FAULT|[COD 002116] - +000386|PLC|FAULT|[COD 002117] - +000387|PLC|FAULT|[COD 002118] - +000388|PLC|FAULT|[COD 002119] - +000389|PLC|FAULT|[COD 002120] - +000390|PLC|FAULT|[COD 002121] - +000391|PLC|FAULT|[COD 002122] - +000392|PLC|FAULT|[COD 002123] - +000393|PLC|FAULT|[COD 002124] - +000394|PLC|FAULT|[COD 002125] - +000395|PLC|FAULT|[COD 002126] - +000396|PLC|FAULT|[COD 002127] - +000397|PLC|FAULT|[COD 002128] - +000398|PLC|FAULT|[COD 002129] - +000399|PLC|FAULT|[COD 002130] - +000400|PLC|FAULT|[COD 002131] - +000401|PLC|FAULT|[COD 002132] - +000402|PLC|FAULT|[COD 002133] - +000403|PLC|FAULT|[COD 002134] - +000404|PLC|FAULT|[COD 002135] - +000405|PLC|FAULT|[COD 002136] - +000406|PLC|FAULT|[COD 002137] - +000407|PLC|FAULT|[COD 002138] - +000408|PLC|FAULT|[COD 002139] - +000409|PLC|FAULT|[COD 002140] - +000410|PLC|FAULT|[COD 002141] - +000411|PLC|FAULT|[COD 002142] - +000412|PLC|FAULT|[COD 002143] - +000413|PLC|FAULT|[COD 002144] - +000414|PLC|FAULT|[COD 002145] - +000415|PLC|FAULT|[COD 002146] - +000416|PLC|FAULT|[COD 002147] - +000417|PLC|FAULT|[COD 002148] - +000418|PLC|FAULT|[COD 002149] - +000419|PLC|FAULT|[COD 002150] - +000420|PLC|FAULT|[COD 002151] - +000421|PLC|FAULT|[COD 002152] - +000422|PLC|FAULT|[COD 002153] - +000423|PLC|FAULT|[COD 002154] - +000424|PLC|FAULT|[COD 002155] - +000425|PLC|FAULT|[COD 002156] - +000426|PLC|FAULT|[COD 002157] - +000427|PLC|FAULT|[COD 002158] - +000428|PLC|FAULT|[COD 002159] - +000429|PLC|FAULT|[COD 002160] - +000430|PLC|FAULT|[COD 002161] - +000431|PLC|FAULT|[COD 002162] - +000432|PLC|FAULT|[COD 002163] - +000433|PLC|FAULT|[COD 002164] - +000434|PLC|FAULT|[COD 002165] - +000435|PLC|FAULT|[COD 002166] - +000436|PLC|FAULT|[COD 002167] - +000437|PLC|FAULT|[COD 002168] - +000438|PLC|FAULT|[COD 002169] - +000439|PLC|FAULT|[COD 002170] - +000440|PLC|FAULT|[COD 002171] - +000441|PLC|FAULT|[COD 002172] - +000442|PLC|FAULT|[COD 002173] - +000443|PLC|FAULT|[COD 002174] - +000444|PLC|FAULT|[COD 002175] - +000445|PLC|FAULT|[COD 002176] - +000446|PLC|FAULT|[COD 002177] - +000447|PLC|FAULT|[COD 002178] - +000448|PLC|FAULT|[COD 002179] - +000449|PLC|FAULT|[COD 002180] - +000450|PLC|FAULT|[COD 002181] - +000451|PLC|FAULT|[COD 002182] - +000452|PLC|FAULT|[COD 002183] - +000453|PLC|FAULT|[COD 002184] - +000454|PLC|FAULT|[COD 002185] - +000455|PLC|FAULT|[COD 002186] - +000456|PLC|FAULT|[COD 002187] - +000457|PLC|FAULT|[COD 002188] - +000458|PLC|FAULT|[COD 002189] - +000459|PLC|FAULT|[COD 002190] - +000460|PLC|FAULT|[COD 002191] - +000461|PLC|FAULT|[COD 002192] - +000462|PLC|FAULT|[COD 002193] - +000463|PLC|FAULT|[COD 002194] - +000464|PLC|FAULT|[COD 002195] - +000465|PLC|FAULT|[COD 000000] - +000466|PLC|FAULT|[COD 000000] - +000467|PLC|FAULT|[COD 000000] - +000468|PLC|FAULT|[COD 000000] - +000469|PLC|FAULT|[COD 000000] - +000470|PLC|FAULT|[COD 000000] - +000471|PLC|FAULT|[COD 000000] - +000472|PLC|FAULT|[COD 000000] - +000473|PLC|FAULT|[COD 000000] - +000474|PLC|FAULT|[COD 000000] - +000475|PLC|FAULT|[COD 000000] - +000476|PLC|FAULT|[COD 000000] - +000477|PLC|FAULT|[COD 000000] - +000478|PLC|FAULT|[COD 000000] - +000479|PLC|FAULT|[COD 000000] - +000480|PLC|FAULT|[COD 000000] - +000481|PLC|FAULT|[COD 000000] - 000482|PLC|FAULT|[COD 000000] - 000483|PLC|FAULT|[COD 000000] - 000484|PLC|FAULT|[COD 000000] - diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt index 389ec88..d92d314 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt @@ -12,7 +12,7 @@ TODO - inizializzazione dell'oggetto NC da thdNcEsaGvKvara con NUOVE aree di memoria - attenzione a decodeBitData / decodeOtherData - - lettura aree allarmi!!! + - errore x continuo tentativo lettura file prod: "ERROR ATTENZIONE! file dati produzione..." - completare le aree IOT-STRING - verifica lettura GLOBALE di getGlobalData() From 090a992c9f3d2e4e81ac8751d57530f8d9ea9e91 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Wed, 8 Mar 2017 22:33:48 +0100 Subject: [PATCH 25/46] commenti ed appunti parti da completare... --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 12 ++++++++---- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 1 + 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index a5a1d04..e93d019 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -886,9 +886,12 @@ namespace MTC_Adapter } } } - + /// + /// Processing di TUTTA l'area di memoria configurata e delle variabili derivate... + /// public override void processAllMemory() { + //!!!FARE!!! completare e validare parti commentate... // inizializzo data monitor su FORM parentForm.dataMonitor = ""; @@ -903,9 +906,10 @@ namespace MTC_Adapter //getPath(); getAxis(); - getConfigParam(); - ///acquisisco dati su programma in esecuzione e dati generali (stato, orologio, power...) - getSlowChangingData(); + // !!!FARE verifica... + //getConfigParam(); + ////acquisisco dati su programma in esecuzione e dati generali (stato, orologio, power...) + //getSlowChangingData(); } /// diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index dda3294..6bd6a7d 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -1566,6 +1566,7 @@ namespace MTC_Adapter if (procIotMem) { processAllMemory(); + // ciclo lento x log... if (ciclo == gatherCycle.LF) { // eventuale log! From 762274e4e168f53819035b1fe14d7e413554b359 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 9 Mar 2017 11:27:29 +0100 Subject: [PATCH 26/46] fix lettura nuovo formato variabili BYTE (BOOL al posto di BIT...) --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 389 ++++++++---------- .../MTC_Adapter/DATA/CONF/IOT_ByteList.map | 43 +- 2 files changed, 206 insertions(+), 226 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index e93d019..bb1dae1 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -31,10 +31,6 @@ namespace MTC_Adapter /// Configurazione valori da leggere IOT_String /// public otherData[] mapIOT_String; - /// - /// variabile globale x usare IOT MEMORY (!!! da eliminare alla fine dei test) - /// - protected bool useIotMem = true; /// /// Carico file conf dati IOT @@ -111,7 +107,11 @@ namespace MTC_Adapter if (linea.Substring(0, 1) != "#") { // se finisce per BIT allora processo bit-a-bit... - if (linea.EndsWith("BIT")) + if (linea.EndsWith("BYTE")) + { + vettoreConf[numRiga] = decodeOtherData(linea, utils.CRC("testCharSep"), "", 1, memSize); + } + else { try { @@ -134,11 +134,6 @@ namespace MTC_Adapter } vettoreConf[numRiga] = decodeBitData(linea, utils.CRC("testCharSep"), "", byteNum, 1, bitNum); } - else - { - //int.TryParse(linea.Split(utils.CRC("testCharSep"))[0], out byteNum); - vettoreConf[numRiga] = decodeOtherData(linea, utils.CRC("testCharSep"), "", 1, memSize); - } numRiga++; } } @@ -626,120 +621,112 @@ namespace MTC_Adapter { base.getGlobalData(); - // 2017.03.07 IN BLOCCO processo TUTTI i valori della memoria WORD/DWORD... - if (useIotMem) + // accodo dati path in DataMonitor...... + StringBuilder sb = new StringBuilder(); + if (connectionOk) { - processAllMemory(); + // leggo TUTTO il blocco di memoria + inizio = DateTime.Now; + ncDevice.ReadBuffer(); + if (utils.CRB("recTime")) TimingData.addResult(string.Format("R-PLC_FullMemoryRead", ncDevice.PLC_MemoryRead.Length), DateTime.Now.Subtract(inizio).Ticks); } else { - // accodo dati path in DataMonitor...... - StringBuilder sb = new StringBuilder(); - if (connectionOk) - { - // leggo TUTTO il blocco di memoria - inizio = DateTime.Now; - ncDevice.ReadBuffer(); - if (utils.CRB("recTime")) TimingData.addResult(string.Format("R-PLC_FullMemoryRead", ncDevice.PLC_MemoryRead.Length), DateTime.Now.Subtract(inizio).Ticks); - } - else - { - lg.Error("Errore connessione mancante in getGlobalData"); - } - - // dati override feed/speed... - Byte v82 = ncDevice.PLC_MemoryAreaV[14]; - Byte v83 = ncDevice.PLC_MemoryAreaV[15]; - // 2 byte x speed da copiare... - byte[] tmpByte = new byte[2]; - Buffer.BlockCopy(ncDevice.PLC_MemoryAreaV, 16, tmpByte, 0, 2); - short v84 = BitConverter.ToInt16(tmpByte, 0); - // lista allarmi PLC/CNC - Byte v87 = ncDevice.PLC_MemoryAreaV[19]; // Allarme CN (almeno 1?!?) - - // ------------------------------------------- - // recupero dati Feed/Speed/override - // FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213) - FeedRateOver = Convert.ToInt16((decimal)(v82 * 100) / 213); - sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); - // SpeedOver: 50% = 128 - SpeedRateOver = Convert.ToInt16((decimal)(v83 * 100) / 255); - sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); - // Speed S5000 OK!!! - SpeedRate = v84; - sb.AppendLine(string.Format("SpeedRate: {0} rpm", SpeedRate)); - // ------------------------------------------- - - // da recuperare da qualche parte?!? - UnOpLoad = 0; - sb.AppendLine(string.Format("Load: {0}", UnOpLoad)); - - // ------------------------------------------- - // recupero dati dai contatori EOK - bool needSave = false; - - // ore totali accensione - int MinMaccOn = (int)ncDevice.PLC_MemoryAreaEOK[0]; - int OreMaccOn = (int)ncDevice.PLC_MemoryAreaEOK[1]; - istOreMaccOn = OreMaccOn + (double)MinMaccOn / 60; - needSave = procOreMaccOn(needSave); - - // ore totali lavoro - int MinMaccLav = (int)ncDevice.PLC_MemoryAreaEOK[2]; - int OreMaccLav = (int)ncDevice.PLC_MemoryAreaEOK[3]; - istOreMaccLav = OreMaccLav + (double)MinMaccLav / 60; - needSave = procOreMaccLav(needSave); - - // giri totali degli elettromandrini! - for (int i = 0; i < currAdpConf.nUnOp; i++) - { - istGiriElettrom[i] = (uint)ncDevice.PLC_MemoryAreaEOK[4 + i]; - } - needSave = procGiriTotUnOp(needSave); - needSave = procNumCU(needSave); - - // per ESA calcolo a mano se ci sia stato impiego assi... salvo le istantanee mov precedenti... - double precVal = 0; - DateTime adesso = DateTime.Now; - TimeSpan accumTime = adesso.Subtract(lastChekAccumTimeAxis); - - // spostamento totale assi! - for (int i = 0; i < 3; i++) - { - precVal = istDistMovAssi[i]; - // primo è metri, secondo km (moltiplico x 1000) - istDistMovAssi[i] = ncDevice.PLC_MemoryAreaEOK[8 + 2 * i] + ncDevice.PLC_MemoryAreaEOK[9 + 2 * i] * 1000; - // verifico SE devo aggiungere tempo lavoro sui singoli assi (se si sono spostati...) -- è a maglie LARGHE poiché leggiamo lo "scatto ogni metro" x cui se campiono velocemente ma assi muovono lenti prendo MENO tempo di movimento del reale... - if (precVal != istDistMovAssi[i]) - { - istAccTimeAssi[i] += accumTime.TotalHours; - } - } - // salvo valore lastChekAccumTimeAxis - lastChekAccumTimeAxis = adesso; - - needSave = procMovTotAssi(needSave); - needSave = procAccTimeAssi(needSave); - needSave = procProgrName(needSave); - needSave = procPartId(needSave); - needSave = procPzProd(needSave); - needSave = procNumInvAssi(needSave); - needSave = procVacPump(needSave); - needSave = procVacAct(needSave); - needSave = procLubro(needSave); - - - - // salvo se necessario! - if (needSave) parentForm.persistData(); - // ------------------------------------------- - - - // copio allarmi in vettore generale AlarFlags (dove lo gestisce)... - Buffer.BlockCopy(ncDevice.PLC_MemoryAreaAllarmi, 0, AlarmFlags, 0, ncDevice.PLC_MemoryAreaAllarmi.Length); - parentForm.dataMonitor = sb.ToString(); + lg.Error("Errore connessione mancante in getGlobalData"); } + // dati override feed/speed... + Byte v82 = ncDevice.PLC_MemoryAreaV[14]; + Byte v83 = ncDevice.PLC_MemoryAreaV[15]; + // 2 byte x speed da copiare... + byte[] tmpByte = new byte[2]; + Buffer.BlockCopy(ncDevice.PLC_MemoryAreaV, 16, tmpByte, 0, 2); + short v84 = BitConverter.ToInt16(tmpByte, 0); + // lista allarmi PLC/CNC + Byte v87 = ncDevice.PLC_MemoryAreaV[19]; // Allarme CN (almeno 1?!?) + + // ------------------------------------------- + // recupero dati Feed/Speed/override + // FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213) + FeedRateOver = Convert.ToInt16((decimal)(v82 * 100) / 213); + sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); + // SpeedOver: 50% = 128 + SpeedRateOver = Convert.ToInt16((decimal)(v83 * 100) / 255); + sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); + // Speed S5000 OK!!! + SpeedRate = v84; + sb.AppendLine(string.Format("SpeedRate: {0} rpm", SpeedRate)); + // ------------------------------------------- + + // da recuperare da qualche parte?!? + UnOpLoad = 0; + sb.AppendLine(string.Format("Load: {0}", UnOpLoad)); + + // ------------------------------------------- + // recupero dati dai contatori EOK + bool needSave = false; + + // ore totali accensione + int MinMaccOn = (int)ncDevice.PLC_MemoryAreaEOK[0]; + int OreMaccOn = (int)ncDevice.PLC_MemoryAreaEOK[1]; + istOreMaccOn = OreMaccOn + (double)MinMaccOn / 60; + needSave = procOreMaccOn(needSave); + + // ore totali lavoro + int MinMaccLav = (int)ncDevice.PLC_MemoryAreaEOK[2]; + int OreMaccLav = (int)ncDevice.PLC_MemoryAreaEOK[3]; + istOreMaccLav = OreMaccLav + (double)MinMaccLav / 60; + needSave = procOreMaccLav(needSave); + + // giri totali degli elettromandrini! + for (int i = 0; i < currAdpConf.nUnOp; i++) + { + istGiriElettrom[i] = (uint)ncDevice.PLC_MemoryAreaEOK[4 + i]; + } + needSave = procGiriTotUnOp(needSave); + needSave = procNumCU(needSave); + + // per ESA calcolo a mano se ci sia stato impiego assi... salvo le istantanee mov precedenti... + double precVal = 0; + DateTime adesso = DateTime.Now; + TimeSpan accumTime = adesso.Subtract(lastChekAccumTimeAxis); + + // spostamento totale assi! + for (int i = 0; i < 3; i++) + { + precVal = istDistMovAssi[i]; + // primo è metri, secondo km (moltiplico x 1000) + istDistMovAssi[i] = ncDevice.PLC_MemoryAreaEOK[8 + 2 * i] + ncDevice.PLC_MemoryAreaEOK[9 + 2 * i] * 1000; + // verifico SE devo aggiungere tempo lavoro sui singoli assi (se si sono spostati...) -- è a maglie LARGHE poiché leggiamo lo "scatto ogni metro" x cui se campiono velocemente ma assi muovono lenti prendo MENO tempo di movimento del reale... + if (precVal != istDistMovAssi[i]) + { + istAccTimeAssi[i] += accumTime.TotalHours; + } + } + // salvo valore lastChekAccumTimeAxis + lastChekAccumTimeAxis = adesso; + + needSave = procMovTotAssi(needSave); + needSave = procAccTimeAssi(needSave); + needSave = procProgrName(needSave); + needSave = procPartId(needSave); + needSave = procPzProd(needSave); + needSave = procNumInvAssi(needSave); + needSave = procVacPump(needSave); + needSave = procVacAct(needSave); + needSave = procLubro(needSave); + + + + // salvo se necessario! + if (needSave) parentForm.persistData(); + // ------------------------------------------- + + + // copio allarmi in vettore generale AlarFlags (dove lo gestisce)... + Buffer.BlockCopy(ncDevice.PLC_MemoryAreaAllarmi, 0, AlarmFlags, 0, ncDevice.PLC_MemoryAreaAllarmi.Length); + parentForm.dataMonitor = sb.ToString(); + } /// /// Path percorso file prod @@ -891,7 +878,6 @@ namespace MTC_Adapter /// public override void processAllMemory() { - //!!!FARE!!! completare e validare parti commentate... // inizializzo data monitor su FORM parentForm.dataMonitor = ""; @@ -923,98 +909,89 @@ namespace MTC_Adapter // accodo dati path in DataMonitor...... StringBuilder sb = new StringBuilder(); - // 2017.03.07 IN BLOCCO processo TUTTI i valori della memoria BYTE... - if (useIotMem) + // verifica macchina accesa... + Byte V73 = ncDevice.PLC_MemoryAreaV[5]; + + if (((StFlag8)V73).HasFlag(StFlag8.B2)) { - processAllMemory(); + mPower.Value = "ON"; } else { - // verifica macchina accesa... - Byte V73 = ncDevice.PLC_MemoryAreaV[5]; - - if (((StFlag8)V73).HasFlag(StFlag8.B2)) - { - mPower.Value = "ON"; - } - else - { - mPower.Value = "OFF"; - } - - // switch su EXE mode... - /* - * MODO_X V[70/71] --> byte (2-3) - * V70.2 = Modo RUN  - * V70.3 = Modo FeedHold - * V71.5 = Ready - * */ - Byte V70 = ncDevice.PLC_MemoryAreaV[2]; - Byte V71 = ncDevice.PLC_MemoryAreaV[3]; - - if (((StFlag8)V70).HasFlag(StFlag8.B3)) - { - vettPath[idxPath].mPathExeMode.Value = "FEED_HOLD"; //"FEEDHOLD"; - } - else if (((StFlag8)V70).HasFlag(StFlag8.B2)) - { - vettPath[idxPath].mPathExeMode.Value = "ACTIVE"; - } - else if (((StFlag8)V71).HasFlag(StFlag8.B5)) - { - vettPath[idxPath].mPathExeMode.Value = "READY"; - } - //// appunto: modi da creare - //STOPPED/HOLD(da creare) - //INTERRUPTED(da creare) - //OPTIONAL_STOP(da creare) - //PROGRAM_STOPPED(da creare) - //PROGRAM_COMPLETED(da creare) - - - // switch su run mode... - /* - * MODO_X V[74].W --> byte (6) - * 0 = Modo NESSUNO  - * 1 = Modo MANUALE  - * 2 = Modo AUTOMATICO  - * 3 = Modo POM  - * 4 = Modo MDI  - * 5 = Modo SEMIAUTOMATICO  - * 6 = Modo RAP  - * 7 = Modo TES - * */ - uint V74 = ncDevice.PLC_MemoryAreaV[6]; - switch (V74) - { - case 1: - vettPath[idxPath].mPathRunMode.Value = "EDIT"; - break; - case 2: - vettPath[idxPath].mPathRunMode.Value = "AUTOMATIC"; - break; - case 3: - vettPath[idxPath].mPathRunMode.Value = "MANUAL"; - break; - case 4: - vettPath[idxPath].mPathRunMode.Value = "MANUAL_DATA_INPUT"; - break; - case 5: - vettPath[idxPath].mPathRunMode.Value = "SEMI_AUTOMATIC"; //"SEMIAUTO"; - break; - case 6: - vettPath[idxPath].mPathRunMode.Value = "MANUAL"; //"RAP"; - break; - case 7: - vettPath[idxPath].mPathRunMode.Value = "MANUAL"; //"TES"; - break; - case 0: - default: - vettPath[idxPath].mPathRunMode.Value = "NA"; - break; - } + mPower.Value = "OFF"; + } + + // switch su EXE mode... + /* + * MODO_X V[70/71] --> byte (2-3) + * V70.2 = Modo RUN  + * V70.3 = Modo FeedHold + * V71.5 = Ready + * */ + Byte V70 = ncDevice.PLC_MemoryAreaV[2]; + Byte V71 = ncDevice.PLC_MemoryAreaV[3]; + + if (((StFlag8)V70).HasFlag(StFlag8.B3)) + { + vettPath[idxPath].mPathExeMode.Value = "FEED_HOLD"; //"FEEDHOLD"; + } + else if (((StFlag8)V70).HasFlag(StFlag8.B2)) + { + vettPath[idxPath].mPathExeMode.Value = "ACTIVE"; + } + else if (((StFlag8)V71).HasFlag(StFlag8.B5)) + { + vettPath[idxPath].mPathExeMode.Value = "READY"; + } + //// appunto: modi da creare + //STOPPED/HOLD(da creare) + //INTERRUPTED(da creare) + //OPTIONAL_STOP(da creare) + //PROGRAM_STOPPED(da creare) + //PROGRAM_COMPLETED(da creare) + + + // switch su run mode... + /* + * MODO_X V[74].W --> byte (6) + * 0 = Modo NESSUNO  + * 1 = Modo MANUALE  + * 2 = Modo AUTOMATICO  + * 3 = Modo POM  + * 4 = Modo MDI  + * 5 = Modo SEMIAUTOMATICO  + * 6 = Modo RAP  + * 7 = Modo TES + * */ + uint V74 = ncDevice.PLC_MemoryAreaV[6]; + switch (V74) + { + case 1: + vettPath[idxPath].mPathRunMode.Value = "EDIT"; + break; + case 2: + vettPath[idxPath].mPathRunMode.Value = "AUTOMATIC"; + break; + case 3: + vettPath[idxPath].mPathRunMode.Value = "MANUAL"; + break; + case 4: + vettPath[idxPath].mPathRunMode.Value = "MANUAL_DATA_INPUT"; + break; + case 5: + vettPath[idxPath].mPathRunMode.Value = "SEMI_AUTOMATIC"; //"SEMIAUTO"; + break; + case 6: + vettPath[idxPath].mPathRunMode.Value = "MANUAL"; //"RAP"; + break; + case 7: + vettPath[idxPath].mPathRunMode.Value = "MANUAL"; //"TES"; + break; + case 0: + default: + vettPath[idxPath].mPathRunMode.Value = "NA"; + break; } - //parentForm.dataMonitor = sb.ToString(); } /// /// Recupera la speed override x i mandrini (UnOp) diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_ByteList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_ByteList.map index d67ce04..6cb9510 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_ByteList.map +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_ByteList.map @@ -1,21 +1,24 @@ # Commenti con cancelletto, struttura un variabile per riga, tipo chiave|valore (occhio che il separatore è configurato da .cofig come "testCharSep"); spazi e tabulazioni dovrei trimmarli in acquisizione (qui inseriti per comodità di lettura) -000.0|IOT_EXEC |BIT -001.0|IOT_HOLD |BIT -002.0|IOT_EMG |BIT -003.0|IOT_ALRM |BIT -004|IOT_OVRF |BYTE -005|IOT_OVRS |BYTE -006|IOT_LUB_01_STA |BYTE -007|IOT_LUB_01_CNT |BYTE -008|IOT_I_MD_01 |BYTE -009|IOT_I_MD_02 |BYTE -010|IOT_I_MD_03 |BYTE -011|IOT_I_MD_04 |BYTE -012|IOT_I_MD_05 |BYTE -013|IOT_I_MD_06 |BYTE -014|IOT_I_MD_07 |BYTE -015|IOT_I_MD_08 |BYTE -016|IOT_PGMR_A1 |BYTE -017|IOT_PGMR_A2 |BYTE -018|IOT_PGMR_A3 |BYTE -019|IOT_PGMR_A4 |BYTE \ No newline at end of file +0.0|IOT_EXEC |BOOL +0.1|IOT_HOLD |BOOL +0.2|IOT_EMG |BOOL +0.3|IOT_ALRM |BOOL +0.4|IOT_MACHON |BOOL +0.5|IOT_READY |BOOL +0.6|libero |BOOL +0.7|libero |BOOL +001|libero |BYTE +002|libero |BYTE +003|IOT_MODECN |BYTE +004|IOT_OVRF |BYTE +005|IOT_OVRS |BYTE +006|IOT_LUB_01_STA |BYTE +007|IOT_LUB_01_CNT |BYTE +008|IOT_I_MD_01 |BYTE +009|IOT_I_MD_02 |BYTE +010|IOT_I_MD_03 |BYTE +011|IOT_I_MD_04 |BYTE +012|IOT_I_MD_05 |BYTE +013|IOT_I_MD_06 |BYTE +014|IOT_I_MD_07 |BYTE +015|IOT_I_MD_08 |BYTE \ No newline at end of file From c14ba9f1d78b37f24be4de6952c3913e100236d9 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 9 Mar 2017 12:30:52 +0100 Subject: [PATCH 27/46] =?UTF-8?q?ok=20completato=20review=20SOLO=20della?= =?UTF-8?q?=20PRIMA=20parte=20byte...=20le=20cose=20che=20gi=C3=A0=20c'era?= =?UTF-8?q?no...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 173 +++++++++++++--------- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 8 - 2 files changed, 105 insertions(+), 76 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index bb1dae1..1615c78 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -250,68 +250,17 @@ namespace MTC_Adapter // Processing area BYTE int numero = 0; string status = ""; + string pathExeMode = ""; + bool isFeedHold = false; + bool isActive = false; + bool isReady = false; int bitNum = 0; int byteNum = 0; byte currByte; for (int i = 0; i < mapIOT_Byte.Length; i++) { - // gestisco in primis le variabili BIT - if (mapIOT_Byte[i].dataType == "BIT") - { - string[] memIdx = mapIOT_Byte[i].memAddr.Split('.'); - // calcolo bit e byte number... - int.TryParse(memIdx[0], out byteNum); - if (memIdx.Length > 1) - { - int.TryParse(memIdx[1], out bitNum); - } - // leggo byte... - currByte = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; - if (mapIOT_Byte[i].varName == "IOT_EXEC") - { - if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) - { - vettPath[idxPath].mPathExeMode.Value = "RUN"; - // !!!FARE per ora prendo ANCHE poweron... - mPower.Value = "ON"; - } - else - { - vettPath[idxPath].mPathExeMode.Value = "READY"; - // !!!FARE per ora prendo ANCHE poweron... - mPower.Value = "OFF"; - } - } - else if (mapIOT_Byte[i].varName == "IOT_HOLD") - { - if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) - { - vettPath[idxPath].mPathExeMode.Value = "FEED_HOLD"; //"FEEDHOLD"; - } - } - else if (mapIOT_Byte[i].varName == "IOT_EMG") - { - // 2017.03.07 controllo bit emergenza... - if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) - { - mEStop.Value = "TRIGGERED"; - } - else - { - mEStop.Value = "ARMED"; - } - } - else if (mapIOT_Byte[i].varName == "IOT_ALRM") - { - if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) //(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) - { - // carico IN BLOCCO memoria allarmi... - // FARE!!! - } - } - } - // vado poi a gestire le variabili BYTE - else if (mapIOT_Byte[i].dataType == "BYTE") + // vado a gestire le variabili BYTE + if (mapIOT_Byte[i].dataType == "BYTE") { int.TryParse(mapIOT_Byte[i].memAddr, out byteNum); if (mapIOT_Byte[i].varName == "IOT_OVRF") @@ -400,7 +349,95 @@ namespace MTC_Adapter //{ } } } + // gestisco le variabili BIT/BOOL + else if (mapIOT_Byte[i].dataType == "BOOL") + { + string[] memIdx = mapIOT_Byte[i].memAddr.Split('.'); + // calcolo bit e byte number... + int.TryParse(memIdx[0], out byteNum); + if (memIdx.Length > 1) + { + int.TryParse(memIdx[1], out bitNum); + } + // leggo byte... + currByte = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; + if (mapIOT_Byte[i].varName == "IOT_MACHON") + { + if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) + { + mPower.Value = "ON"; + } + else + { + mPower.Value = "OFF"; + } + } + else if (mapIOT_Byte[i].varName == "IOT_READY") + { + // salvo bit READY... + isReady = ((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum)); + //if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) + //{ + // pathExeMode = "READY"; + //} + } + else if (mapIOT_Byte[i].varName == "IOT_EXEC") + { + // salvo bit ACTIVE/RUN... + isActive = ((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum)); + //if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) + //{ + // pathExeMode = "RUN"; + //} + } + else if (mapIOT_Byte[i].varName == "IOT_HOLD") + { + // salvo bit FEEDHOLD... + isFeedHold = ((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum)); + //if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) + //{ + // pathExeMode = "FEED_HOLD"; //"FEEDHOLD"; + //} + } + else if (mapIOT_Byte[i].varName == "IOT_EMG") + { + // 2017.03.07 controllo bit emergenza... + if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) + { + mEStop.Value = "TRIGGERED"; + } + else + { + mEStop.Value = "ARMED"; + } + } + else if (mapIOT_Byte[i].varName == "IOT_ALRM") + { + if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) + { + // carico IN BLOCCO memoria allarmi... + // FARE!!! + } + } + } } + // imposto exe mode alla fine secondo gerarchia stati... + if (isFeedHold) + { + pathExeMode = "FEED_HOLD"; //"FEEDHOLD"; + } + else if (isActive) + { + pathExeMode = "ACTIVE"; + } + else if (isReady) + { + pathExeMode = "READY"; + } + vettPath[idxPath].mPathExeMode.Value = pathExeMode; + sb.AppendLine(string.Format("ExeMode: {0}", pathExeMode)); + + // update form! parentForm.dataMonitor += sb.ToString(); } /// @@ -883,19 +920,19 @@ namespace MTC_Adapter // recupero le varie memorie getIotMem_Byte(); - getIotMem_Word(); - getIotMem_DWord(); - //getIotMem_String(); + //getIotMem_Word(); + //getIotMem_DWord(); + ////getIotMem_String(); - // processo componenti specifici x info... - //getUnOp(); - //getPath(); - getAxis(); + //// processo componenti specifici x info... + ////getUnOp(); + ////getPath(); + //getAxis(); - // !!!FARE verifica... - //getConfigParam(); - ////acquisisco dati su programma in esecuzione e dati generali (stato, orologio, power...) - //getSlowChangingData(); + //// !!!FARE verifica... + ////getConfigParam(); + //////acquisisco dati su programma in esecuzione e dati generali (stato, orologio, power...) + ////getSlowChangingData(); } /// diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index 6bd6a7d..719f81b 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -1572,13 +1572,6 @@ namespace MTC_Adapter // eventuale log! if (utils.CRB("recTime")) logTimeResults(); } - // ciclo lentissimo - else if (ciclo == gatherCycle.VLF) - { - lg.Info("Richiesta lettura completa allarmi attivi"); - // faccio comunque rilettura completa allarmi... - forceAlarmCheck(); - } } // oppure in "modalità classica" con multistep... else @@ -1623,7 +1616,6 @@ namespace MTC_Adapter forceAlarmCheck(); } } - // processo e svuoto eventuali code di invio per Codici M/S/T trySendCodMST(); From d7b2fd2106bc2954f88a428b2ae83d23d9673f34 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 9 Mar 2017 12:57:14 +0100 Subject: [PATCH 28/46] OK RUN ed EXE mode... --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 49 ++++++++++++++++++++++----- 1 file changed, 40 insertions(+), 9 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index 1615c78..eddd5d9 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -268,7 +268,7 @@ namespace MTC_Adapter // ------------------------------------------- // recupero dati FeedOverride // FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213) - FeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 213); + FeedRateOver = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; // Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 213); sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); } else if (mapIOT_Byte[i].varName == "IOT_OVRS") @@ -276,9 +276,46 @@ namespace MTC_Adapter // ------------------------------------------- // recupero dati SpeedOverride // SpeedOver: 50% = 128 - SpeedRateOver = Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 255); + SpeedRateOver = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; // Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 255); sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); } + else if (mapIOT_Byte[i].varName == "IOT_MODECN") + { + // Modo CN:0=Nessuno,1=Manuale,2=Automatico, 3=Pom,4=Mdi,5=SemiAutomatico,6=Rap,7=Test + int modoCn = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; + string pathRunMode = ""; + switch (modoCn) + { + case 1: + pathRunMode = "MANUAL"; + break; + case 2: + pathRunMode = "AUTOMATIC"; + break; + case 3: + pathRunMode = "POM"; + break; + case 4: + pathRunMode = "MANUAL_DATA_INPUT"; + break; + case 5: + pathRunMode = "SEMI_AUTOMATIC"; //"SEMIAUTO"; + break; + case 6: + pathRunMode = "RAP"; //"MANUAL"; + break; + case 7: + pathRunMode = "TES"; //"MANUAL"; + break; + case 0: + default: + pathRunMode = "NA"; + break; + } + // salvo run mode + vettPath[idxPath].mPathRunMode.Value = pathRunMode; + sb.AppendLine(string.Format("RunMode: {0}", pathRunMode)); + } else if (mapIOT_Byte[i].varName.StartsWith("IOT_LUB_")) { // recupero NUMERO @@ -340,13 +377,7 @@ namespace MTC_Adapter // se non trovo --> 1! numero = 1; } - //// salvo in vettore carico mandrini - //try - //{ - // vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i]; - //} - //catch - //{ } + // !!!FARE!!! area programmi... } } // gestisco le variabili BIT/BOOL From e47abb4417abce52cb3f8301c441002f0664303e Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 9 Mar 2017 14:03:45 +0100 Subject: [PATCH 29/46] inizio fix WORD... --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 82 +++++++++---------- .../MTC_Adapter/DATA/CONF/IOT_WordList.map | 82 ++++++++++--------- 2 files changed, 83 insertions(+), 81 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index eddd5d9..5eaf9f5 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -365,20 +365,6 @@ namespace MTC_Adapter catch { } } - else if (mapIOT_Byte[i].varName.StartsWith("IOT_PGMR_A_")) - { - // recupero NUMERO - try - { - numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_I_MD_", "")); - } - catch - { - // se non trovo --> 1! - numero = 1; - } - // !!!FARE!!! area programmi... - } } // gestisco le variabili BIT/BOOL else if (mapIOT_Byte[i].dataType == "BOOL") @@ -564,6 +550,34 @@ namespace MTC_Adapter numero = 1; } } + else if (mapIOT_Word[i].varName.StartsWith("IOT_PGMR_A_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_I_MD_", "")); + } + catch + { + // se non trovo --> 1! + numero = 1; + } + // !!!FARE!!! area programmi... + } + else if (mapIOT_Word[i].varName.StartsWith("IOT_C_EXEC_A_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_EXEC_A_", "")); + } + catch + { + // se non trovo --> 1! + numero = 1; + } + // !!!FARE!!! area programmi... + } } } /// @@ -664,24 +678,6 @@ namespace MTC_Adapter numero = 1; } } - else if (mapIOT_DWord[i].varName.StartsWith("IOT_C_EXEC_A_")) - { - // recupero NUMERO - try - { - numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_C_EXEC_A_", "")); - //vettAxis[numero - 1].mAxInvDDone.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]; - // FARE!!!! nuovo oggetto ed area x programmi caricati in area... - //mMessage.Code = mapIOT_DWord[i].varName; - //mMessage.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]; - } - catch - { - // se non trovo --> 1! - numero = 1; - } - } - } } @@ -951,19 +947,19 @@ namespace MTC_Adapter // recupero le varie memorie getIotMem_Byte(); - //getIotMem_Word(); - //getIotMem_DWord(); - ////getIotMem_String(); + getIotMem_Word(); + getIotMem_DWord(); + //getIotMem_String(); - //// processo componenti specifici x info... - ////getUnOp(); - ////getPath(); - //getAxis(); + // processo componenti specifici x info... + //getUnOp(); + //getPath(); + getAxis(); - //// !!!FARE verifica... - ////getConfigParam(); - //////acquisisco dati su programma in esecuzione e dati generali (stato, orologio, power...) - ////getSlowChangingData(); + // !!!FARE verifica... + //getConfigParam(); + ////acquisisco dati su programma in esecuzione e dati generali (stato, orologio, power...) + //getSlowChangingData(); } /// diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_WordList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_WordList.map index 39fd695..0e77769 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_WordList.map +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_WordList.map @@ -1,39 +1,45 @@ # Commenti con cancelletto, struttura un variabile per riga, tipo chiave|valore (occhio che il separatore è configurato da .cofig come "testCharSep"); spazi e tabulazioni dovrei trimmarli in acquisizione (qui inseriti per comodità di lettura) -000|IOT_S_MD_01 |WORD -001|IOT_S_MD_02 |WORD -002|IOT_S_MD_03 |WORD -003|IOT_S_MD_04 |WORD -004|IOT_S_MD_05 |WORD -005|IOT_S_MD_06 |WORD -006|IOT_S_MD_07 |WORD -007|IOT_S_MD_08 |WORD -008|IOT_T_MD_01 |WORD -009|IOT_T_MD_02 |WORD -010|IOT_T_MD_03 |WORD -011|IOT_T_MD_04 |WORD -012|IOT_T_MD_05 |WORD -013|IOT_T_MD_06 |WORD -014|IOT_T_MD_07 |WORD -015|IOT_T_MD_08 |WORD -016|IOT_C_H_VAC_01 |WORD -017|IOT_C_H_VAC_02 |WORD -018|IOT_C_H_VAC_03 |WORD -019|IOT_C_H_VAC_04 |WORD -020|IOT_C_TC_01 |WORD -021|IOT_C_TC_02 |WORD -022|IOT_C_TC_03 |WORD -023|IOT_C_TC_04 |WORD -024|IOT_C_TC_05 |WORD -025|IOT_C_TC_06 |WORD -026|IOT_C_TC_07 |WORD -027|IOT_C_TC_08 |WORD -028|IOT_C_H_MD_01 |WORD -029|IOT_C_H_MD_02 |WORD -030|IOT_C_H_MD_03 |WORD -031|IOT_C_H_MD_04 |WORD -032|IOT_C_H_MD_05 |WORD -033|IOT_C_H_MD_06 |WORD -034|IOT_C_H_MD_07 |WORD -035|IOT_C_H_MD_08 |WORD -036|IOT_F_AX_01 |WORD -037|IOT_F_AX_02 |WORD \ No newline at end of file +000|IOT_S_MD_01 |WORD +001|IOT_S_MD_02 |WORD +002|IOT_S_MD_03 |WORD +003|IOT_S_MD_04 |WORD +004|IOT_S_MD_05 |WORD +005|IOT_S_MD_06 |WORD +006|IOT_S_MD_07 |WORD +007|IOT_S_MD_08 |WORD +008|IOT_T_MD_01 |WORD +009|IOT_T_MD_02 |WORD +010|IOT_T_MD_03 |WORD +011|IOT_T_MD_04 |WORD +012|IOT_T_MD_05 |WORD +013|IOT_T_MD_06 |WORD +014|IOT_T_MD_07 |WORD +015|IOT_T_MD_08 |WORD +016|IOT_C_H_VAC_01 |WORD +017|IOT_C_H_VAC_02 |WORD +018|IOT_C_H_VAC_03 |WORD +019|IOT_C_H_VAC_04 |WORD +020|IOT_C_TC_01 |WORD +021|IOT_C_TC_02 |WORD +022|IOT_C_TC_03 |WORD +023|IOT_C_TC_04 |WORD +024|IOT_C_TC_05 |WORD +025|IOT_C_TC_06 |WORD +026|IOT_C_TC_07 |WORD +027|IOT_C_TC_08 |WORD +028|IOT_C_H_MD_01 |WORD +029|IOT_C_H_MD_02 |WORD +030|IOT_C_H_MD_03 |WORD +031|IOT_C_H_MD_04 |WORD +032|IOT_C_H_MD_05 |WORD +033|IOT_C_H_MD_06 |WORD +034|IOT_C_H_MD_07 |WORD +035|IOT_C_H_MD_08 |WORD +036|IOT_PGMR_A_01 |WORD +037|IOT_PGMR_A_02 |WORD +038|IOT_PGMR_A_03 |WORD +039|IOT_PGMR_A_04 |WORD +040|IOT_C_EXEC_A_01 |WORD +041|IOT_C_EXEC_A_02 |WORD +042|IOT_C_EXEC_A_03 |WORD +043|IOT_C_EXEC_A_04 |WORD \ No newline at end of file From bcdec1a93ad1447c5857ef6996d96426fb818335 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 9 Mar 2017 16:19:35 +0100 Subject: [PATCH 30/46] Ok sino a DWORD con gestione nuovi oggetti aree memoria... --- MTC_Adapter/MTC_Adapter/AdapterConf.cs | 25 ++- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 46 ++--- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 69 +++++++- .../DATA/CONF/Adapter_ItemList.xml | 26 +++ .../MTC_Adapter/DATA/CONF/IOT_DWordList.map | 6 +- .../MTC_Adapter/Resources/SCM/Appunti SCM.txt | 4 +- .../MTC_Adapter/Resources/SCM/SCM_ESA.xml | 26 +++ .../MTC_Adapter/SetupAdapter.Designer.cs | 162 ++++++++++++------ MTC_Adapter/MTC_Adapter/SetupAdapter.cs | 35 ++++ 9 files changed, 297 insertions(+), 102 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterConf.cs b/MTC_Adapter/MTC_Adapter/AdapterConf.cs index 74a640b..5e3df34 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterConf.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterConf.cs @@ -36,6 +36,7 @@ namespace MTC_Adapter element[] _Path; element[] _UnOp; element[] _Axis; + element[] _MemArea; /// /// init conf adapter @@ -198,6 +199,23 @@ namespace MTC_Adapter return answ; } } + public int nMemArea + { + get + { + int answ = 0; + if (MemArea != null) + { + try + { + answ = Convert.ToInt32(MemArea.Length); + } + catch + { } + } + return answ; + } + } /// /// Serializzazione XML dell'oggetto conf dell'adapter @@ -230,7 +248,7 @@ namespace MTC_Adapter /// public static AdapterConf Deserialize(string file) { - System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(AdapterConf)); + XmlSerializer xs = new XmlSerializer(typeof(AdapterConf)); StreamReader reader = File.OpenText(file); AdapterConf c = (AdapterConf)xs.Deserialize(reader); reader.Close(); @@ -331,6 +349,11 @@ namespace MTC_Adapter get { return _Axis; } set { _Axis = value; } } + public element[] MemArea + { + get { return _MemArea; } + set { _MemArea = value; } + } } diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index 5eaf9f5..3a46704 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -107,11 +107,7 @@ namespace MTC_Adapter if (linea.Substring(0, 1) != "#") { // se finisce per BIT allora processo bit-a-bit... - if (linea.EndsWith("BYTE")) - { - vettoreConf[numRiga] = decodeOtherData(linea, utils.CRC("testCharSep"), "", 1, memSize); - } - else + if (linea.EndsWith("BOOL")) { try { @@ -134,6 +130,10 @@ namespace MTC_Adapter } vettoreConf[numRiga] = decodeBitData(linea, utils.CRC("testCharSep"), "", byteNum, 1, bitNum); } + else + { + vettoreConf[numRiga] = decodeOtherData(linea, utils.CRC("testCharSep"), "", 1, memSize); + } numRiga++; } } @@ -321,7 +321,7 @@ namespace MTC_Adapter // recupero NUMERO try { - numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_LUB_", "").Replace("_Status", "")); + numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_LUB_", "").Replace("_STA", "").Replace("_CNT", "")); } catch { @@ -538,45 +538,33 @@ namespace MTC_Adapter } else if (mapIOT_Word[i].varName.StartsWith("IOT_C_H_MD_")) { - // recupero NUMERO try { numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_H_MD_", "")); vettUnOp[numero - 1].mUnOpAccTime.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; } catch - { - // se non trovo --> 1! - numero = 1; - } + { } } else if (mapIOT_Word[i].varName.StartsWith("IOT_PGMR_A_")) { - // recupero NUMERO try { - numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_I_MD_", "")); + numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_PGMR_A_", "")); + vettMemArea[numero - 1].mMemAreaProgNumRep.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; } catch - { - // se non trovo --> 1! - numero = 1; - } - // !!!FARE!!! area programmi... + { } } else if (mapIOT_Word[i].varName.StartsWith("IOT_C_EXEC_A_")) { - // recupero NUMERO try { numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_EXEC_A_", "")); + vettMemArea[numero - 1].mMemAreaProgNumExe.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; } catch - { - // se non trovo --> 1! - numero = 1; - } - // !!!FARE!!! area programmi... + { } } } } @@ -952,14 +940,10 @@ namespace MTC_Adapter //getIotMem_String(); // processo componenti specifici x info... - //getUnOp(); - //getPath(); + getUnOp(); + getPath(); getAxis(); - - // !!!FARE verifica... - //getConfigParam(); - ////acquisisco dati su programma in esecuzione e dati generali (stato, orologio, power...) - //getSlowChangingData(); + } /// diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index 719f81b..d9fe65b 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -21,7 +21,7 @@ namespace MTC_Adapter /// /// Singola pompa da vuoto, 0..n /// - public class VacuumPomp : element + public class VacuumPump : element { /// /// Alias @@ -39,7 +39,7 @@ namespace MTC_Adapter /// Classe Vacuum Pump (pompa) /// /// element base contenente parametri (da XML) - public VacuumPomp(element baseElem) + public VacuumPump(element baseElem) { ident = baseElem.ident; alias = baseElem.alias; @@ -206,6 +206,49 @@ namespace MTC_Adapter mTempValIst = new Sample(dataRefList[0].Key); } } + + /// + /// Singola Area Memoria (Kvara 1..4) + /// + public class MemArea : element + { + /// + /// Alias + /// + public MTConnect.Message mMemAreaAlias; + + /// + /// Programma caricato + /// + public Event mMemAreaProgName; + /// + /// Num esecuzioni programma + /// + public Event mMemAreaProgNumExe; + /// + /// Num esecuzioni programma + /// + public Event mMemAreaProgNumRep; + + /// + /// INIT Classe Memory Area + /// + /// element base contenente parametri (da XML) + public MemArea(element baseElem) + { + ident = baseElem.ident; + alias = baseElem.alias; + fonte = baseElem.fonte; + dataRefList = baseElem.dataRefList; + + mMemAreaAlias = new MTConnect.Message(string.Format("{0}_Alias", ident)); + mMemAreaAlias.Value = alias; + + mMemAreaProgName = new Event(string.Format("{0}_PROG_NAME", ident)); + mMemAreaProgNumExe = new Event(string.Format("{0}_NUM_EXE", ident)); + mMemAreaProgNumRep = new Event(string.Format("{0}_NUM_REP", ident)); + } + } /// /// Singolo path, da 1..20 /// @@ -948,7 +991,7 @@ namespace MTC_Adapter #region oggetti complessi/completi - public VacuumPomp[] vettVacPump; + public VacuumPump[] vettVacPump; public VacuumAct[] vettVacAct; public Lubro[] vettLubro; public Cooler[] vettCooler; @@ -957,6 +1000,7 @@ namespace MTC_Adapter public Path[] vettPath; public UnOp[] vettUnOp; public Axis[] vettAxis; + public MemArea[] vettMemArea; #endregion @@ -1016,11 +1060,20 @@ namespace MTC_Adapter mAdapter.AddDataItem(mUnkStatus); mAdapter.AddDataItem(mUnkStrobe); + // Aree memoria + vettMemArea = new MemArea[adpConf.nMemArea]; + for (int i = 0; i < adpConf.nMemArea; i++) + { + vettMemArea[i] = new MemArea(adpConf.MemArea[i]); + mAdapter.AddDataItem(vettMemArea[i].mMemAreaProgName); + mAdapter.AddDataItem(vettMemArea[i].mMemAreaProgNumExe); + mAdapter.AddDataItem(vettMemArea[i].mMemAreaProgNumRep); + } // Pompe vuoto - vettVacPump = new VacuumPomp[adpConf.nVacuumPump]; + vettVacPump = new VacuumPump[adpConf.nVacuumPump]; for (int i = 0; i < adpConf.nVacuumPump; i++) { - vettVacPump[i] = new VacuumPomp(adpConf.VacuumPump[i]); + vettVacPump[i] = new VacuumPump(adpConf.VacuumPump[i]); mAdapter.AddDataItem(vettVacPump[i].mVacPumpStatus); mAdapter.AddDataItem(vettVacPump[i].mVacPumpWrkTime); } @@ -1309,7 +1362,7 @@ namespace MTC_Adapter string memAddr = string.Format("{0}{1}.{2}", memPre, baseAddr + shift * memSize, resto); return new otherData(valori[0], memAddr, valori[1].Trim(), valori[2].Trim()); } - + #region metodi adapter public void loadPersData() @@ -1615,9 +1668,9 @@ namespace MTC_Adapter // faccio comunque rilettura completa allarmi... forceAlarmCheck(); } + // processo e svuoto eventuali code di invio per Codici M/S/T + trySendCodMST(); } - // processo e svuoto eventuali code di invio per Codici M/S/T - trySendCodMST(); // INVIO dati variati! mAdapter.SendChanged(); diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml index cf09a6f..8bc3c05 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml @@ -703,4 +703,30 @@ + + + MemArea_01 + Area di memoria 1 + MemLoad + + + + MemArea_02 + Area di memoria 2 + MemLoad + + + + MemArea_03 + Area di memoria 3 + MemLoad + + + + MemArea_04 + Area di memoria 4 + MemLoad + + + \ No newline at end of file diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_DWordList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_DWordList.map index 455bf13..d6d6067 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_DWordList.map +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/IOT_DWordList.map @@ -64,8 +64,4 @@ 062|IOT_PLC_MSG_09 |DWORD 063|IOT_PLC_MSG_10 |DWORD 064|IOT_PLC_MSG_11 |DWORD -065|IOT_PLC_MSG_12 |DWORD -066|IOT_C_EXEC_A_01 |DWORD -067|IOT_C_EXEC_A_02 |DWORD -068|IOT_C_EXEC_A_03 |DWORD -069|IOT_C_EXEC_A_04 |DWORD \ No newline at end of file +065|IOT_PLC_MSG_12 |DWORD \ No newline at end of file diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt index d92d314..532c13c 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt @@ -12,10 +12,10 @@ TODO - inizializzazione dell'oggetto NC da thdNcEsaGvKvara con NUOVE aree di memoria - attenzione a decodeBitData / decodeOtherData - - errore x continuo tentativo lettura file prod: "ERROR ATTENZIONE! file dati produzione..." + - nel try/catch assegnazione vettori VERIFICARE SE il vettore abbia le dim richieste (es 8 mandrini ma setup con 1 solo...) + - semplificare file conf adapter x tutto (tranne assi che serve TYPE LINEAR/ROTARY) - completare le aree IOT-STRING - - verifica lettura GLOBALE di getGlobalData() - eliminare da thdNcEsaGvKvara "vecchie" aree di memoria diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml index cf09a6f..8bc3c05 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml @@ -703,4 +703,30 @@ + + + MemArea_01 + Area di memoria 1 + MemLoad + + + + MemArea_02 + Area di memoria 2 + MemLoad + + + + MemArea_03 + Area di memoria 3 + MemLoad + + + + MemArea_04 + Area di memoria 4 + MemLoad + + + \ No newline at end of file diff --git a/MTC_Adapter/MTC_Adapter/SetupAdapter.Designer.cs b/MTC_Adapter/MTC_Adapter/SetupAdapter.Designer.cs index 5b558bc..f6958e2 100644 --- a/MTC_Adapter/MTC_Adapter/SetupAdapter.Designer.cs +++ b/MTC_Adapter/MTC_Adapter/SetupAdapter.Designer.cs @@ -55,47 +55,54 @@ this.nUnOp = new System.Windows.Forms.TextBox(); this.label12 = new System.Windows.Forms.Label(); this.nAssi = new System.Windows.Forms.TextBox(); + this.label13 = new System.Windows.Forms.Label(); + this.nMemArea = new System.Windows.Forms.TextBox(); this.SuspendLayout(); // // txtAdapter // - this.txtAdapter.Location = new System.Drawing.Point(91, 10); + this.txtAdapter.Location = new System.Drawing.Point(121, 12); + this.txtAdapter.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.txtAdapter.Name = "txtAdapter"; - this.txtAdapter.Size = new System.Drawing.Size(214, 20); + this.txtAdapter.Size = new System.Drawing.Size(284, 22); this.txtAdapter.TabIndex = 0; this.txtAdapter.Text = "CMS_ADAPTER_00"; // // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(22, 13); + this.label1.Location = new System.Drawing.Point(29, 16); + this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(58, 13); + this.label1.Size = new System.Drawing.Size(73, 17); this.label1.TabIndex = 1; this.label1.Text = "ADAPTER"; // // label2 // this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(311, 13); + this.label2.Location = new System.Drawing.Point(415, 16); + this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(63, 13); + this.label2.Size = new System.Drawing.Size(79, 17); this.label2.TabIndex = 3; this.label2.Text = "FILE NAME"; // // txtFileName // - this.txtFileName.Location = new System.Drawing.Point(380, 10); + this.txtFileName.Location = new System.Drawing.Point(507, 12); + this.txtFileName.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.txtFileName.Name = "txtFileName"; - this.txtFileName.Size = new System.Drawing.Size(122, 20); + this.txtFileName.Size = new System.Drawing.Size(161, 22); this.txtFileName.TabIndex = 2; - this.txtFileName.Text = "FANUC.xml"; + this.txtFileName.Text = "Adapter_ItemList.xml"; // // btnSave // - this.btnSave.Location = new System.Drawing.Point(479, 467); + this.btnSave.Location = new System.Drawing.Point(639, 575); + this.btnSave.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.btnSave.Name = "btnSave"; - this.btnSave.Size = new System.Drawing.Size(201, 38); + this.btnSave.Size = new System.Drawing.Size(268, 47); this.btnSave.TabIndex = 4; this.btnSave.Text = "SAVE CONFIGURATION"; this.btnSave.UseVisualStyleBackColor = true; @@ -103,9 +110,10 @@ // // btnLoad // - this.btnLoad.Location = new System.Drawing.Point(16, 467); + this.btnLoad.Location = new System.Drawing.Point(21, 575); + this.btnLoad.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.btnLoad.Name = "btnLoad"; - this.btnLoad.Size = new System.Drawing.Size(201, 38); + this.btnLoad.Size = new System.Drawing.Size(268, 47); this.btnLoad.TabIndex = 5; this.btnLoad.Text = "LOAD CONFIGURATION"; this.btnLoad.UseVisualStyleBackColor = true; @@ -114,43 +122,48 @@ // label3 // this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(10, 39); + this.label3.Location = new System.Drawing.Point(13, 48); + this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(75, 13); + this.label3.Size = new System.Drawing.Size(96, 17); this.label3.TabIndex = 7; this.label3.Text = "n° VAC PUMP"; // // nVacPump // - this.nVacPump.Location = new System.Drawing.Point(91, 36); + this.nVacPump.Location = new System.Drawing.Point(121, 44); + this.nVacPump.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.nVacPump.Name = "nVacPump"; - this.nVacPump.Size = new System.Drawing.Size(33, 20); + this.nVacPump.Size = new System.Drawing.Size(43, 22); this.nVacPump.TabIndex = 6; this.nVacPump.Text = "1"; // // label4 // this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(176, 39); + this.label4.Location = new System.Drawing.Point(235, 48); + this.label4.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(60, 13); + this.label4.Size = new System.Drawing.Size(77, 17); this.label4.TabIndex = 9; this.label4.Text = "n° VAC Act"; // // nVacAct // - this.nVacAct.Location = new System.Drawing.Point(242, 36); + this.nVacAct.Location = new System.Drawing.Point(323, 44); + this.nVacAct.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.nVacAct.Name = "nVacAct"; - this.nVacAct.Size = new System.Drawing.Size(33, 20); + this.nVacAct.Size = new System.Drawing.Size(43, 22); this.nVacAct.TabIndex = 8; this.nVacAct.Text = "2"; // // label5 // this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(517, 13); + this.label5.Location = new System.Drawing.Point(689, 16); + this.label5.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(32, 13); + this.label5.Size = new System.Drawing.Size(40, 17); this.label5.TabIndex = 10; this.label5.Text = "TIPO"; // @@ -162,135 +175,171 @@ "ESAGV", "FANUC", "SIEMENS"}); - this.cbTipoAdapt.Location = new System.Drawing.Point(555, 10); + this.cbTipoAdapt.Location = new System.Drawing.Point(740, 12); + this.cbTipoAdapt.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.cbTipoAdapt.Name = "cbTipoAdapt"; - this.cbTipoAdapt.Size = new System.Drawing.Size(121, 21); + this.cbTipoAdapt.Size = new System.Drawing.Size(160, 24); this.cbTipoAdapt.TabIndex = 11; // // label6 // this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(314, 39); + this.label6.Location = new System.Drawing.Point(419, 48); + this.label6.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(57, 13); + this.label6.Size = new System.Drawing.Size(74, 17); this.label6.TabIndex = 13; this.label6.Text = "n° LUBRO"; // // nLubro // - this.nLubro.Location = new System.Drawing.Point(380, 36); + this.nLubro.Location = new System.Drawing.Point(507, 44); + this.nLubro.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.nLubro.Name = "nLubro"; - this.nLubro.Size = new System.Drawing.Size(33, 20); + this.nLubro.Size = new System.Drawing.Size(43, 22); this.nLubro.TabIndex = 12; this.nLubro.Text = "1"; // // label7 // this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(473, 39); + this.label7.Location = new System.Drawing.Point(631, 48); + this.label7.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(64, 13); + this.label7.Size = new System.Drawing.Size(84, 17); this.label7.TabIndex = 15; this.label7.Text = "n° COOLER"; // // nCooler // - this.nCooler.Location = new System.Drawing.Point(539, 36); + this.nCooler.Location = new System.Drawing.Point(719, 44); + this.nCooler.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.nCooler.Name = "nCooler"; - this.nCooler.Size = new System.Drawing.Size(33, 20); + this.nCooler.Size = new System.Drawing.Size(43, 22); this.nCooler.TabIndex = 14; this.nCooler.Text = "2"; // // label8 // this.label8.AutoSize = true; - this.label8.Location = new System.Drawing.Point(25, 65); + this.label8.Location = new System.Drawing.Point(33, 80); + this.label8.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(56, 13); + this.label8.Size = new System.Drawing.Size(72, 17); this.label8.TabIndex = 17; this.label8.Text = "n° PRESS"; // // nPress // - this.nPress.Location = new System.Drawing.Point(91, 62); + this.nPress.Location = new System.Drawing.Point(121, 76); + this.nPress.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.nPress.Name = "nPress"; - this.nPress.Size = new System.Drawing.Size(33, 20); + this.nPress.Size = new System.Drawing.Size(43, 22); this.nPress.TabIndex = 16; this.nPress.Text = "1"; // // label9 // this.label9.AutoSize = true; - this.label9.Location = new System.Drawing.Point(176, 65); + this.label9.Location = new System.Drawing.Point(235, 80); + this.label9.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(50, 13); + this.label9.Size = new System.Drawing.Size(64, 17); this.label9.TabIndex = 19; this.label9.Text = "n° TEMP"; // // nTempe // - this.nTempe.Location = new System.Drawing.Point(242, 62); + this.nTempe.Location = new System.Drawing.Point(323, 76); + this.nTempe.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.nTempe.Name = "nTempe"; - this.nTempe.Size = new System.Drawing.Size(33, 20); + this.nTempe.Size = new System.Drawing.Size(43, 22); this.nTempe.TabIndex = 18; this.nTempe.Text = "1"; // // label10 // this.label10.AutoSize = true; - this.label10.Location = new System.Drawing.Point(314, 65); + this.label10.Location = new System.Drawing.Point(419, 80); + this.label10.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(49, 13); + this.label10.Size = new System.Drawing.Size(63, 17); this.label10.TabIndex = 21; this.label10.Text = "n° PATH"; // // nPath // - this.nPath.Location = new System.Drawing.Point(380, 62); + this.nPath.Location = new System.Drawing.Point(507, 76); + this.nPath.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.nPath.Name = "nPath"; - this.nPath.Size = new System.Drawing.Size(33, 20); + this.nPath.Size = new System.Drawing.Size(43, 22); this.nPath.TabIndex = 20; this.nPath.Text = "1"; // // label11 // this.label11.AutoSize = true; - this.label11.Location = new System.Drawing.Point(473, 65); + this.label11.Location = new System.Drawing.Point(631, 80); + this.label11.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(52, 13); + this.label11.Size = new System.Drawing.Size(68, 17); this.label11.TabIndex = 23; this.label11.Text = "n° Un OP"; // // nUnOp // - this.nUnOp.Location = new System.Drawing.Point(539, 62); + this.nUnOp.Location = new System.Drawing.Point(719, 76); + this.nUnOp.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.nUnOp.Name = "nUnOp"; - this.nUnOp.Size = new System.Drawing.Size(33, 20); + this.nUnOp.Size = new System.Drawing.Size(43, 22); this.nUnOp.TabIndex = 22; this.nUnOp.Text = "1"; // // label12 // this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(25, 91); + this.label12.Location = new System.Drawing.Point(33, 112); + this.label12.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(39, 13); + this.label12.Size = new System.Drawing.Size(52, 17); this.label12.TabIndex = 25; this.label12.Text = "n° Assi"; // // nAssi // - this.nAssi.Location = new System.Drawing.Point(91, 88); + this.nAssi.Location = new System.Drawing.Point(121, 108); + this.nAssi.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.nAssi.Name = "nAssi"; - this.nAssi.Size = new System.Drawing.Size(33, 20); + this.nAssi.Size = new System.Drawing.Size(43, 22); this.nAssi.TabIndex = 24; this.nAssi.Text = "1"; // + // label13 + // + this.label13.AutoSize = true; + this.label13.Location = new System.Drawing.Point(235, 116); + this.label13.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); + this.label13.Name = "label13"; + this.label13.Size = new System.Drawing.Size(86, 17); + this.label13.TabIndex = 27; + this.label13.Text = "n° MemArea"; + // + // nMemArea + // + this.nMemArea.Location = new System.Drawing.Point(323, 112); + this.nMemArea.Margin = new System.Windows.Forms.Padding(4); + this.nMemArea.Name = "nMemArea"; + this.nMemArea.Size = new System.Drawing.Size(43, 22); + this.nMemArea.TabIndex = 26; + this.nMemArea.Text = "1"; + // // SetupAdapter // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); + this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(692, 517); + this.ClientSize = new System.Drawing.Size(923, 636); + this.Controls.Add(this.label13); + this.Controls.Add(this.nMemArea); this.Controls.Add(this.label12); this.Controls.Add(this.nAssi); this.Controls.Add(this.label11); @@ -318,6 +367,7 @@ this.Controls.Add(this.label1); this.Controls.Add(this.txtAdapter); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.Name = "SetupAdapter"; this.Text = "Adapter Setup Manager"; this.ResumeLayout(false); @@ -353,5 +403,7 @@ private System.Windows.Forms.TextBox nUnOp; private System.Windows.Forms.Label label12; private System.Windows.Forms.TextBox nAssi; + private System.Windows.Forms.Label label13; + private System.Windows.Forms.TextBox nMemArea; } } \ No newline at end of file diff --git a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs index 6fa7ff8..b5fae24 100644 --- a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs +++ b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs @@ -199,6 +199,24 @@ namespace MTC_Adapter nAssi.Text = value.ToString(); } } + protected int numMemArea + { + get + { + int answ = 0; + try + { + answ = Convert.ToInt32(nMemArea.Text); + } + catch + { } + return answ; + } + set + { + nMemArea.Text = value.ToString(); + } + } private void btnCreateFile_Click(object sender, EventArgs e) { @@ -239,6 +257,22 @@ namespace MTC_Adapter // init lista parametri List> listaDR; + // MemArea + if (numMemArea > 0) + { + // creo elementi richiesti + element[] MemArea = new element[numMemArea]; + // ciclo x istanziare! + for (int i = 0; i < numMemArea; i++) + { + // inizializzo list x parametri + listaDR = new List>(); + MemArea[i] = new element(string.Format("MemArea_{0:00}", i + 1), string.Format("Area di memoria {0}", i + 1), fonteDati.MemLoad, listaDR); + } + // salvo oggetto + c.MemArea = MemArea; + } + // VAC PUMP if (numVacPump > 0) { @@ -460,6 +494,7 @@ namespace MTC_Adapter numPath = c2.nPath; numUnOp = c2.nUnOp; numAxis = c2.nAxis; + numMemArea = c2.nMemArea; } } } From adb4f53c17af1f4ed6b6017970c0fb3f81d7c63b Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 9 Mar 2017 16:41:22 +0100 Subject: [PATCH 31/46] ok gestione numUnOp (evita di cercare di caricare quelli oltre dimensione vettore) --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 88 +++++------------------ MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 2 +- 2 files changed, 19 insertions(+), 71 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index 3a46704..f36491c 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -107,7 +107,7 @@ namespace MTC_Adapter if (linea.Substring(0, 1) != "#") { // se finisce per BIT allora processo bit-a-bit... - if (linea.EndsWith("BOOL")) + if (linea.EndsWith("BOOL")) { try { @@ -265,19 +265,11 @@ namespace MTC_Adapter int.TryParse(mapIOT_Byte[i].memAddr, out byteNum); if (mapIOT_Byte[i].varName == "IOT_OVRF") { - // ------------------------------------------- - // recupero dati FeedOverride - // FeedOver: 100% = 213 (il pannello è 0-120 --> 0-255, quindi 100% è 100/120*255=213) - FeedRateOver = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; // Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 213); - sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); + FeedRateOver = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; } else if (mapIOT_Byte[i].varName == "IOT_OVRS") { - // ------------------------------------------- - // recupero dati SpeedOverride - // SpeedOver: 50% = 128 - SpeedRateOver = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; // Convert.ToInt16((decimal)(ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] * 100) / 255); - sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); + SpeedRateOver = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; } else if (mapIOT_Byte[i].varName == "IOT_MODECN") { @@ -342,7 +334,7 @@ namespace MTC_Adapter } else if (mapIOT_Byte[i].varName.EndsWith("_CNT")) { - vettLubro[numero - 1].mLubroNum.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i]; + vettLubro[numero - 1].mLubroNum.Value = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; } } else if (mapIOT_Byte[i].varName.StartsWith("IOT_I_MD_")) @@ -351,19 +343,18 @@ namespace MTC_Adapter try { numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_I_MD_", "")); + // salvo in vettore carico mandrini SE ho nel vettore... + if (numero <= vettUnOp.Length) + { + vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; + } + else + { } } - catch + catch(Exception exc) { - // se non trovo --> 1! - numero = 1; + lg.Error(exc, "Errore in decodifica " + mapIOT_Byte[i].varName); } - // salvo in vettore carico mandrini - try - { - vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[i]; - } - catch - { } } } // gestisco le variabili BIT/BOOL @@ -391,34 +382,18 @@ namespace MTC_Adapter } else if (mapIOT_Byte[i].varName == "IOT_READY") { - // salvo bit READY... isReady = ((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum)); - //if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) - //{ - // pathExeMode = "READY"; - //} } else if (mapIOT_Byte[i].varName == "IOT_EXEC") { - // salvo bit ACTIVE/RUN... isActive = ((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum)); - //if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) - //{ - // pathExeMode = "RUN"; - //} } else if (mapIOT_Byte[i].varName == "IOT_HOLD") { - // salvo bit FEEDHOLD... isFeedHold = ((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum)); - //if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) - //{ - // pathExeMode = "FEED_HOLD"; //"FEEDHOLD"; - //} } else if (mapIOT_Byte[i].varName == "IOT_EMG") { - // 2017.03.07 controllo bit emergenza... if (((StFlag8)currByte).HasFlag((StFlag8)Math.Pow(2, bitNum))) { mEStop.Value = "TRIGGERED"; @@ -452,7 +427,11 @@ namespace MTC_Adapter pathExeMode = "READY"; } vettPath[idxPath].mPathExeMode.Value = pathExeMode; + + // sistemo le stringhe x display sb.AppendLine(string.Format("ExeMode: {0}", pathExeMode)); + sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); + sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); // update form! parentForm.dataMonitor += sb.ToString(); @@ -943,7 +922,7 @@ namespace MTC_Adapter getUnOp(); getPath(); getAxis(); - + } /// @@ -1121,36 +1100,5 @@ namespace MTC_Adapter parentForm.dataMonitor += sb.ToString(); } - -#if false - public override void processAlarm() - { - base.processAlarm(); - if (!useIotMem) - { - // ora controllo "allarmi speciali" se si sono... - if (AlarmFlags != null) - { - // variabili helper - StFlag32 AlarmBlock = 0; - int eStopCode = utils.CRI("eStopCode") - 1; // è base zero memoria, ma allarmi base 1... - - int memStart = (int)Math.Floor((double)eStopCode / 8); - // leggo 32bit alla volta... - AlarmBlock = (StFlag32)BitConverter.ToUInt32(AlarmFlags, memStart); - int eStopIndex = eStopCode - memStart * 8; - // converto! e aggiungo allarmi sollevati al corretto controller allarmi... - if (AlarmBlock.HasFlag((StFlag32)Math.Pow(2, eStopIndex))) - { - mEStop.Value = "TRIGGERED"; - } - else - { - mEStop.Value = "ARMED"; - } - } - } - } -#endif } } diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index d9fe65b..fc6d32d 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -1987,7 +1987,7 @@ namespace MTC_Adapter /// public int FeedRateOver { get; set; } /// - /// Override dei rapidi + /// OVERRIDE dei rapidi /// public int RapidOver { get; set; } /// From b257a01e302fac8ffaa4dd355433b6383ba9d5f9 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 9 Mar 2017 16:47:18 +0100 Subject: [PATCH 32/46] fix gestione errori in area BYTE x dimensione vettori e fix string out... --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 45 ++++++++++++++++----------- 1 file changed, 27 insertions(+), 18 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index f36491c..65e10d6 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -251,6 +251,7 @@ namespace MTC_Adapter int numero = 0; string status = ""; string pathExeMode = ""; + string pathRunMode = ""; bool isFeedHold = false; bool isActive = false; bool isReady = false; @@ -275,7 +276,6 @@ namespace MTC_Adapter { // Modo CN:0=Nessuno,1=Manuale,2=Automatico, 3=Pom,4=Mdi,5=SemiAutomatico,6=Rap,7=Test int modoCn = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; - string pathRunMode = ""; switch (modoCn) { case 1: @@ -306,7 +306,6 @@ namespace MTC_Adapter } // salvo run mode vettPath[idxPath].mPathRunMode.Value = pathRunMode; - sb.AppendLine(string.Format("RunMode: {0}", pathRunMode)); } else if (mapIOT_Byte[i].varName.StartsWith("IOT_LUB_")) { @@ -314,27 +313,34 @@ namespace MTC_Adapter try { numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_LUB_", "").Replace("_STA", "").Replace("_CNT", "")); - } - catch - { - // se non trovo --> 1! - numero = 1; - } - if (mapIOT_Byte[i].varName.EndsWith("_STA")) - { - if (ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) + // salvo in vettore carico mandrini SE ho nel vettore... + if (numero <= vettLubro.Length) { - status = "EMPTY"; + if (mapIOT_Byte[i].varName.EndsWith("_STA")) + { + if (ncDevice.PLC_MemoryAreaIOT_Byte[byteNum] != 0) + { + status = "EMPTY"; + } + else + { + status = "OK"; + } + vettLubro[numero - 1].mLubroStatus.Value = status; + } + else if (mapIOT_Byte[i].varName.EndsWith("_CNT")) + { + vettLubro[numero - 1].mLubroNum.Value = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; + } } else { - status = "OK"; + lg.Error("Errore in inserimento vettore " + mapIOT_Byte[i].varName); } - vettLubro[numero - 1].mLubroStatus.Value = status; } - else if (mapIOT_Byte[i].varName.EndsWith("_CNT")) + catch (Exception exc) { - vettLubro[numero - 1].mLubroNum.Value = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; + lg.Error(exc, "Errore in decodifica " + mapIOT_Byte[i].varName); } } else if (mapIOT_Byte[i].varName.StartsWith("IOT_I_MD_")) @@ -349,9 +355,11 @@ namespace MTC_Adapter vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; } else - { } + { + lg.Error("Errore in inserimento vettore " + mapIOT_Byte[i].varName); + } } - catch(Exception exc) + catch (Exception exc) { lg.Error(exc, "Errore in decodifica " + mapIOT_Byte[i].varName); } @@ -429,6 +437,7 @@ namespace MTC_Adapter vettPath[idxPath].mPathExeMode.Value = pathExeMode; // sistemo le stringhe x display + sb.AppendLine(string.Format("RunMode: {0}", pathRunMode)); sb.AppendLine(string.Format("ExeMode: {0}", pathExeMode)); sb.AppendLine(string.Format("FeedRateOver: {0} %", FeedRateOver)); sb.AppendLine(string.Format("SpeedRateOver: {0} %", SpeedRateOver)); From 9a1c25f9a60466e07a6037dd946371e78489d1a1 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 9 Mar 2017 17:01:52 +0100 Subject: [PATCH 33/46] completata semplificazione conf UnOp e portato a 8 mandrini setup ESAGV --- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 21 +++-- .../DATA/CONF/Adapter_ItemList.xml | 83 ++++++++++--------- .../MTC_Adapter/Resources/SCM/SCM_ESA.xml | 83 ++++++++++--------- MTC_Adapter/MTC_Adapter/SetupAdapter.cs | 11 +-- 4 files changed, 99 insertions(+), 99 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index fc6d32d..b2e6cd1 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -461,16 +461,16 @@ namespace MTC_Adapter mUnOpAlias = new MTConnect.Message(string.Format("{0}_Alias", ident)); mUnOpAlias.Value = alias; - mUnOpToolId = new Event(dataRefList[0].Key); - mUnOpNumCU = new Event(dataRefList[1].Key); - mUnOpStatus = new Event(dataRefList[2].Key); - mUnOpVitaRes = new Event(dataRefList[3].Key); - mUnOpSpeed = new Sample(dataRefList[4].Key); - mUnOpSpeedOverr = new Sample(dataRefList[5].Key); - mUnOpLoad = new Sample(dataRefList[6].Key); - mUnOpAccTime = new Sample(dataRefList[7].Key); - mUnOpVitaResType = new MTConnect.Message(dataRefList[8].Key); - mUnOpKRev = new Sample(string.Format("{0}_KREV", ident)); + mUnOpToolId = new Event(string.Format("{0}_ToolId", ident)); + mUnOpNumCU = new Event(string.Format("{0}_NumCU", ident)); + mUnOpStatus = new Event(string.Format("{0}_Status", ident)); + mUnOpVitaRes = new Event(string.Format("{0}_VitaRes", ident)); + mUnOpSpeed = new Sample(string.Format("{0}_Speed", ident)); + mUnOpSpeedOverr = new Sample(string.Format("{0}_SpeedOverr", ident)); + mUnOpLoad = new Sample(string.Format("{0}_Load", ident)); + mUnOpAccTime = new Sample(string.Format("{0}_AccTime", ident)); + mUnOpVitaResType = new MTConnect.Message(string.Format("{0}_VitaResType", ident)); + mUnOpKRev = new Sample(string.Format("{0}_KRev", ident)); } } /// @@ -1157,7 +1157,6 @@ namespace MTC_Adapter for (int i = 0; i < adpConf.nUnOp; i++) { vettUnOp[i] = new UnOp(adpConf.UnOp[i]); - //mAdapter.AddDataItem(vettUnOp[i].mUnOpAlias); mAdapter.AddDataItem(vettUnOp[i].mUnOpToolId); mAdapter.AddDataItem(vettUnOp[i].mUnOpNumCU); mAdapter.AddDataItem(vettUnOp[i].mUnOpStatus); diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml index 8bc3c05..b4eb7f2 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml @@ -258,45 +258,50 @@ UnOp_01 Unita Op num 1 - Random - - - UnOp_01_ToolId - 0 - - - UnOp_01_NumCU - 0 - - - UnOp_01_Status - 0 - - - UnOp_01_VitaRes - 0 - - - UnOp_01_Speed - 0 - - - UnOp_01_SpeedOverr - 0 - - - UnOp_01_Load - 0 - - - UnOp_01_AccTime - 0 - - - UnOp_01_VitaResType - 0 - - + MemLoad + + + + UnOp_02 + Unita Op num 2 + MemLoad + + + + UnOp_03 + Unita Op num 3 + MemLoad + + + + UnOp_04 + Unita Op num 4 + MemLoad + + + + UnOp_05 + Unita Op num 5 + MemLoad + + + + UnOp_06 + Unita Op num 6 + MemLoad + + + + UnOp_07 + Unita Op num 7 + MemLoad + + + + UnOp_08 + Unita Op num 8 + MemLoad + diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml index 8bc3c05..b4eb7f2 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml @@ -258,45 +258,50 @@ UnOp_01 Unita Op num 1 - Random - - - UnOp_01_ToolId - 0 - - - UnOp_01_NumCU - 0 - - - UnOp_01_Status - 0 - - - UnOp_01_VitaRes - 0 - - - UnOp_01_Speed - 0 - - - UnOp_01_SpeedOverr - 0 - - - UnOp_01_Load - 0 - - - UnOp_01_AccTime - 0 - - - UnOp_01_VitaResType - 0 - - + MemLoad + + + + UnOp_02 + Unita Op num 2 + MemLoad + + + + UnOp_03 + Unita Op num 3 + MemLoad + + + + UnOp_04 + Unita Op num 4 + MemLoad + + + + UnOp_05 + Unita Op num 5 + MemLoad + + + + UnOp_06 + Unita Op num 6 + MemLoad + + + + UnOp_07 + Unita Op num 7 + MemLoad + + + + UnOp_08 + Unita Op num 8 + MemLoad + diff --git a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs index b5fae24..1f385b8 100644 --- a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs +++ b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs @@ -427,16 +427,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - listaDR.Add(new DataRefItem(string.Format("UnOp_{0:00}_ToolId", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("UnOp_{0:00}_NumCU", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("UnOp_{0:00}_Status", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("UnOp_{0:00}_VitaRes", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("UnOp_{0:00}_Speed", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("UnOp_{0:00}_SpeedOverr", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("UnOp_{0:00}_Load", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("UnOp_{0:00}_AccTime", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("UnOp_{0:00}_VitaResType", i + 1), "0")); - UnOp[i] = new element(string.Format("UnOp_{0:00}", i + 1), string.Format("Unita Op num {0}", i + 1), fonteDati.Random, listaDR); + UnOp[i] = new element(string.Format("UnOp_{0:00}", i + 1), string.Format("Unita Op num {0}", i + 1), fonteDati.MemLoad, listaDR); } // salvo oggetto c.UnOp = UnOp; From ac1d593ca2fb8200919960a5528bcc38f9cccd11 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 9 Mar 2017 17:10:36 +0100 Subject: [PATCH 34/46] caricati nuovi alarm list (file orig + traduzioni...) e sistemato appunti powershell di traduzione --- .../MTC_Adapter/DATA/CONF/AlarmList.map | 1364 ++++------------- .../Resources/SCM/AlarmListEsaGv.map | 616 ++++---- MTC_Adapter/MTC_Adapter/Resources/SCM/app.msg | 78 +- .../Resources/SCM/convertScmAlarm.ps1 | 6 +- 4 files changed, 755 insertions(+), 1309 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map index b86b64a..27dfc39 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map @@ -1,1025 +1,341 @@ # Commenti con "#", elenco tipo COD_NUM|GRUPPO|LEVEL|DESCRIZIONE completa -000001|PLC|FAULT|[COD 001000] - -000002|PLC|FAULT|[COD 001001] - -000003|PLC|FAULT|[COD 001002] - -000004|PLC|FAULT|[COD 001003] - -000005|PLC|FAULT|[COD 001004] - -000006|PLC|FAULT|[COD 001005] - -000007|PLC|FAULT|[COD 001006] - -000008|PLC|FAULT|[COD 001007] - -000009|PLC|FAULT|[COD 001008] - -000010|PLC|FAULT|[COD 001009] - -000011|PLC|FAULT|[COD 001010] - -000012|PLC|FAULT|[COD 001011] - -000013|PLC|FAULT|[COD 001012] - -000014|PLC|FAULT|[COD 001013] - -000015|PLC|FAULT|[COD 001014] - -000016|PLC|FAULT|[COD 001015] - -000017|PLC|FAULT|[COD 001016] - -000018|PLC|FAULT|[COD 001017] - -000019|PLC|FAULT|[COD 001018] - -000020|PLC|FAULT|[COD 001019] - -000021|PLC|FAULT|[COD 001020] - -000022|PLC|FAULT|[COD 001021] - -000023|PLC|FAULT|[COD 001022] - -000024|PLC|FAULT|[COD 001023] - -000025|PLC|FAULT|[COD 001024] - -000026|PLC|FAULT|[COD 001025] - -000027|PLC|FAULT|[COD 001026] - -000028|PLC|FAULT|[COD 001027] - -000029|PLC|FAULT|[COD 001028] - -000030|PLC|FAULT|[COD 001029] - -000031|PLC|FAULT|[COD 001030] - -000032|PLC|FAULT|[COD 001031] - -000033|PLC|FAULT|[COD 001032] - -000034|PLC|FAULT|[COD 001033] - -000035|PLC|FAULT|[COD 001034] - -000036|PLC|FAULT|[COD 001035] - -000037|PLC|FAULT|[COD 001036] - -000038|PLC|FAULT|[COD 001037] - -000039|PLC|FAULT|[COD 001038] - -000040|PLC|FAULT|[COD 001039] - -000041|PLC|FAULT|[COD 001040] - -000042|PLC|FAULT|[COD 001041] - -000043|PLC|FAULT|[COD 001042] - -000044|PLC|FAULT|[COD 001043] - -000045|PLC|FAULT|[COD 001044] - -000046|PLC|FAULT|[COD 001045] - -000047|PLC|FAULT|[COD 001046] - -000048|PLC|FAULT|[COD 001047] - -000049|PLC|FAULT|[COD 001048] - -000050|PLC|FAULT|[COD 001049] - -000051|PLC|FAULT|[COD 001050] - -000052|PLC|FAULT|[COD 001051] - -000053|PLC|FAULT|[COD 001052] - -000054|PLC|FAULT|[COD 001053] - -000055|PLC|FAULT|[COD 001054] - -000056|PLC|FAULT|[COD 001055] - -000057|PLC|FAULT|[COD 001056] - -000058|PLC|FAULT|[COD 001057] - -000059|PLC|FAULT|[COD 001058] - -000060|PLC|FAULT|[COD 001059] - -000061|PLC|FAULT|[COD 001060] - -000062|PLC|FAULT|[COD 001061] - -000063|PLC|FAULT|[COD 001062] - -000064|PLC|FAULT|[COD 001063] - -000065|PLC|FAULT|[COD 001064] - -000066|PLC|FAULT|[COD 001065] - -000067|PLC|FAULT|[COD 001066] - -000068|PLC|FAULT|[COD 001067] - -000069|PLC|FAULT|[COD 001068] - -000070|PLC|FAULT|[COD 001069] - -000071|PLC|FAULT|[COD 001070] - -000072|PLC|FAULT|[COD 001071] - -000073|PLC|FAULT|[COD 001072] - -000074|PLC|FAULT|[COD 001073] - -000075|PLC|FAULT|[COD 001074] - -000076|PLC|FAULT|[COD 001075] - -000077|PLC|FAULT|[COD 001076] - -000078|PLC|FAULT|[COD 001077] - -000079|PLC|FAULT|[COD 001078] - -000080|PLC|FAULT|[COD 001079] - -000081|PLC|FAULT|[COD 001080] - -000082|PLC|FAULT|[COD 001081] - -000083|PLC|FAULT|[COD 001082] - -000084|PLC|FAULT|[COD 001083] - -000085|PLC|FAULT|[COD 001084] - -000086|PLC|FAULT|[COD 001085] - -000087|PLC|FAULT|[COD 001086] - -000088|PLC|FAULT|[COD 001087] - -000089|PLC|FAULT|[COD 001088] - -000090|PLC|FAULT|[COD 001089] - -000091|PLC|FAULT|[COD 001090] - -000092|PLC|FAULT|[COD 001091] - -000093|PLC|FAULT|[COD 001092] - -000094|PLC|FAULT|[COD 001093] - -000095|PLC|FAULT|[COD 001094] - -000096|PLC|FAULT|[COD 001095] - -000097|PLC|FAULT|[COD 001096] - -000098|PLC|FAULT|[COD 001097] - -000099|PLC|FAULT|[COD 001098] - -000100|PLC|FAULT|[COD 001099] - -000101|PLC|FAULT|[COD 001100] - -000102|PLC|FAULT|[COD 001101] - -000103|PLC|FAULT|[COD 001102] - -000104|PLC|FAULT|[COD 001103] - -000105|PLC|FAULT|[COD 001104] - -000106|PLC|FAULT|[COD 001105] - -000107|PLC|FAULT|[COD 001106] - -000108|PLC|FAULT|[COD 001107] - -000109|PLC|FAULT|[COD 001108] - -000110|PLC|FAULT|[COD 001109] - -000111|PLC|FAULT|[COD 001110] - -000112|PLC|FAULT|[COD 001111] - -000113|PLC|FAULT|[COD 001112] - -000114|PLC|FAULT|[COD 001113] - -000115|PLC|FAULT|[COD 001114] - -000116|PLC|FAULT|[COD 001115] - -000117|PLC|FAULT|[COD 001116] - -000118|PLC|FAULT|[COD 001117] - -000119|PLC|FAULT|[COD 001118] - -000120|PLC|FAULT|[COD 001119] - -000121|PLC|FAULT|[COD 001120] - -000122|PLC|FAULT|[COD 001121] - -000123|PLC|FAULT|[COD 001122] - -000124|PLC|FAULT|[COD 001123] - -000125|PLC|FAULT|[COD 001124] - -000126|PLC|FAULT|[COD 001125] - -000127|PLC|FAULT|[COD 001126] - -000128|PLC|FAULT|[COD 001127] - -000129|PLC|FAULT|[COD 001128] - -000130|PLC|FAULT|[COD 001129] - -000131|PLC|FAULT|[COD 001130] - -000132|PLC|FAULT|[COD 001131] - -000133|PLC|FAULT|[COD 001132] - -000134|PLC|FAULT|[COD 001133] - -000135|PLC|FAULT|[COD 001134] - -000136|PLC|FAULT|[COD 001135] - -000137|PLC|FAULT|[COD 001136] - -000138|PLC|FAULT|[COD 001137] - -000139|PLC|FAULT|[COD 001138] - -000140|PLC|FAULT|[COD 001139] - -000141|PLC|FAULT|[COD 001140] - -000142|PLC|FAULT|[COD 001141] - -000143|PLC|FAULT|[COD 001142] - -000144|PLC|FAULT|[COD 001143] - -000145|PLC|FAULT|[COD 001144] - -000146|PLC|FAULT|[COD 001145] - -000147|PLC|FAULT|[COD 001146] - -000148|PLC|FAULT|[COD 001147] - -000149|PLC|FAULT|[COD 001148] - -000150|PLC|FAULT|[COD 001149] - -000151|PLC|FAULT|[COD 001150] - -000152|PLC|FAULT|[COD 001151] - -000153|PLC|FAULT|[COD 001152] - -000154|PLC|FAULT|[COD 001153] - -000155|PLC|FAULT|[COD 001154] - -000156|PLC|FAULT|[COD 001155] - -000157|PLC|FAULT|[COD 001156] - -000158|PLC|FAULT|[COD 001157] - -000159|PLC|FAULT|[COD 001158] - -000160|PLC|FAULT|[COD 001159] - -000161|PLC|FAULT|[COD 001160] - -000162|PLC|FAULT|[COD 001161] - -000163|PLC|FAULT|[COD 001162] - -000164|PLC|FAULT|[COD 001163] - -000165|PLC|FAULT|[COD 001164] - -000166|PLC|FAULT|[COD 001165] - -000167|PLC|FAULT|[COD 001166] - -000168|PLC|FAULT|[COD 001167] - -000169|PLC|FAULT|[COD 001168] - -000170|PLC|FAULT|[COD 001169] - -000171|PLC|FAULT|[COD 001170] - -000172|PLC|FAULT|[COD 001171] - -000173|PLC|FAULT|[COD 001172] - -000174|PLC|FAULT|[COD 001173] - -000175|PLC|FAULT|[COD 001174] - -000176|PLC|FAULT|[COD 001175] - -000177|PLC|FAULT|[COD 001176] - -000178|PLC|FAULT|[COD 001177] - -000179|PLC|FAULT|[COD 001178] - -000180|PLC|FAULT|[COD 001179] - -000181|PLC|FAULT|[COD 001180] - -000182|PLC|FAULT|[COD 001181] - -000183|PLC|FAULT|[COD 001182] - -000184|PLC|FAULT|[COD 001183] - -000185|PLC|FAULT|[COD 001184] - -000186|PLC|FAULT|[COD 001185] - -000187|PLC|FAULT|[COD 001186] - -000188|PLC|FAULT|[COD 001187] - -000189|PLC|FAULT|[COD 001188] - -000190|PLC|FAULT|[COD 001189] - -000191|PLC|FAULT|[COD 001190] - -000192|PLC|FAULT|[COD 001191] - -000193|PLC|FAULT|[COD 001192] - -000194|PLC|FAULT|[COD 001193] - -000195|PLC|FAULT|[COD 001194] - -000196|PLC|FAULT|[COD 001195] - -000197|PLC|FAULT|[COD 001196] - -000198|PLC|FAULT|[COD 001197] - -000199|PLC|FAULT|[COD 001198] - -000200|PLC|FAULT|[COD 001199] - -000201|PLC|FAULT|[COD 001200] - -000202|PLC|FAULT|[COD 001201] - -000203|PLC|FAULT|[COD 001202] - -000204|PLC|FAULT|[COD 001203] - -000205|PLC|FAULT|[COD 001204] - -000206|PLC|FAULT|[COD 001205] - -000207|PLC|FAULT|[COD 001206] - -000208|PLC|FAULT|[COD 001207] - -000209|PLC|FAULT|[COD 001208] - -000210|PLC|FAULT|[COD 001209] - -000211|PLC|FAULT|[COD 001210] - -000212|PLC|FAULT|[COD 001211] - -000213|PLC|FAULT|[COD 001212] - -000214|PLC|FAULT|[COD 001213] - -000215|PLC|FAULT|[COD 001214] - -000216|PLC|FAULT|[COD 001215] - -000217|PLC|FAULT|[COD 001216] - -000218|PLC|FAULT|[COD 001217] - -000219|PLC|FAULT|[COD 001218] - -000220|PLC|FAULT|[COD 001219] - -000221|PLC|FAULT|[COD 001220] - -000222|PLC|FAULT|[COD 001221] - -000223|PLC|FAULT|[COD 001222] - -000224|PLC|FAULT|[COD 001223] - -000225|PLC|FAULT|[COD 001224] - -000226|PLC|FAULT|[COD 001225] - -000227|PLC|FAULT|[COD 001226] - -000228|PLC|FAULT|[COD 001227] - -000229|PLC|FAULT|[COD 001228] - -000230|PLC|FAULT|[COD 001229] - -000231|PLC|FAULT|[COD 001230] - -000232|PLC|FAULT|[COD 001231] - -000233|PLC|FAULT|[COD 001232] - -000234|PLC|FAULT|[COD 001233] - -000235|PLC|FAULT|[COD 001234] - -000236|PLC|FAULT|[COD 001235] - -000237|PLC|FAULT|[COD 001236] - -000238|PLC|FAULT|[COD 001237] - -000239|PLC|FAULT|[COD 001238] - -000240|PLC|FAULT|[COD 001239] - -000241|PLC|FAULT|[COD 001240] - -000242|PLC|FAULT|[COD 001241] - -000243|PLC|FAULT|[COD 001242] - -000244|PLC|FAULT|[COD 001243] - -000245|PLC|FAULT|[COD 001244] - -000246|PLC|FAULT|[COD 001245] - -000247|PLC|FAULT|[COD 001246] - -000248|PLC|FAULT|[COD 001247] - -000249|PLC|FAULT|[COD 001248] - -000250|PLC|FAULT|[COD 001249] - -000251|PLC|FAULT|[COD 001250] - -000252|PLC|FAULT|[COD 001251] - -000253|PLC|FAULT|[COD 001252] - -000254|PLC|FAULT|[COD 001253] - -000255|PLC|FAULT|[COD 001254] - -000256|PLC|FAULT|[COD 001255] - -000257|PLC|FAULT|[COD 002000] - -000258|PLC|FAULT|[COD 002001] - -000259|PLC|FAULT|[COD 002002] - -000260|PLC|FAULT|[COD 002003] - -000261|PLC|FAULT|[COD 002004] - -000262|PLC|FAULT|[COD 002005] - -000263|PLC|FAULT|[COD 002006] - -000264|PLC|FAULT|[COD 002007] - -000265|PLC|FAULT|[COD 002008] - -000266|PLC|FAULT|[COD 002009] - -000267|PLC|FAULT|[COD 002010] - -000268|PLC|FAULT|[COD 002011] - -000269|PLC|FAULT|[COD 002012] - -000270|PLC|FAULT|[COD 002013] - -000271|PLC|FAULT|[COD 002014] - -000272|PLC|FAULT|[COD 002015] - -000273|PLC|FAULT|[COD 002016] - -000274|PLC|FAULT|[COD 002017] - -000275|PLC|FAULT|[COD 002018] - -000276|PLC|FAULT|[COD 002019] - -000277|PLC|FAULT|[COD 002020] - -000278|PLC|FAULT|[COD 002021] - -000279|PLC|FAULT|[COD 002022] - -000280|PLC|FAULT|[COD 002023] - -000281|PLC|FAULT|[COD 002024] - -000282|PLC|FAULT|[COD 002025] - -000283|PLC|FAULT|[COD 002026] - -000284|PLC|FAULT|[COD 002027] - -000285|PLC|FAULT|[COD 002028] - -000286|PLC|FAULT|[COD 002029] - -000287|PLC|FAULT|[COD 002030] - -000288|PLC|FAULT|[COD 002031] - -000289|PLC|FAULT|[COD 002032] - -000290|PLC|FAULT|[COD 002033] - -000291|PLC|FAULT|[COD 002034] - -000292|PLC|FAULT|[COD 002035] - -000293|PLC|FAULT|[COD 002036] - -000294|PLC|FAULT|[COD 002037] - -000295|PLC|FAULT|[COD 002038] - -000296|PLC|FAULT|[COD 002039] - -000297|PLC|FAULT|[COD 002040] - -000298|PLC|FAULT|[COD 002041] - -000299|PLC|FAULT|[COD 002042] - -000300|PLC|FAULT|[COD 002043] - -000301|PLC|FAULT|[COD 002044] - -000302|PLC|FAULT|[COD 002045] - -000303|PLC|FAULT|[COD 002046] - -000304|PLC|FAULT|[COD 002047] - -000305|PLC|FAULT|[COD 002048] - -000306|PLC|FAULT|[COD 002049] - -000307|PLC|FAULT|[COD 002050] - -000308|PLC|FAULT|[COD 002051] - -000309|PLC|FAULT|[COD 002052] - -000310|PLC|FAULT|[COD 002053] - -000311|PLC|FAULT|[COD 002054] - -000312|PLC|FAULT|[COD 002055] - -000313|PLC|FAULT|[COD 002056] - -000314|PLC|FAULT|[COD 002057] - -000315|PLC|FAULT|[COD 002058] - -000316|PLC|FAULT|[COD 002059] - -000317|PLC|FAULT|[COD 002060] - -000318|PLC|FAULT|[COD 002061] - -000319|PLC|FAULT|[COD 002062] - -000320|PLC|FAULT|[COD 002063] - -000321|PLC|FAULT|[COD 002064] - -000322|PLC|FAULT|[COD 002065] - -000323|PLC|FAULT|[COD 002066] - -000324|PLC|FAULT|[COD 002067] - -000325|PLC|FAULT|[COD 002068] - -000326|PLC|FAULT|[COD 002069] - -000327|PLC|FAULT|[COD 002070] - -000328|PLC|FAULT|[COD 002071] - -000329|PLC|FAULT|[COD 002072] - -000330|PLC|FAULT|[COD 002073] - -000331|PLC|FAULT|[COD 002074] - -000332|PLC|FAULT|[COD 002075] - -000333|PLC|FAULT|[COD 002076] - -000334|PLC|FAULT|[COD 002077] - -000335|PLC|FAULT|[COD 002078] - -000336|PLC|FAULT|[COD 002079] - -000337|PLC|FAULT|[COD 002080] - -000338|PLC|FAULT|[COD 002081] - -000339|PLC|FAULT|[COD 002082] - -000340|PLC|FAULT|[COD 002083] - -000341|PLC|FAULT|[COD 002084] - -000342|PLC|FAULT|[COD 002085] - -000343|PLC|FAULT|[COD 002086] - -000344|PLC|FAULT|[COD 002087] - -000345|PLC|FAULT|[COD 002088] - -000346|PLC|FAULT|[COD 002089] - -000347|PLC|FAULT|[COD 002090] - -000348|PLC|FAULT|[COD 002091] - -000349|PLC|FAULT|[COD 002092] - -000350|PLC|FAULT|[COD 002093] - -000351|PLC|FAULT|[COD 002094] - -000352|PLC|FAULT|[COD 002095] - -000353|PLC|FAULT|[COD 002096] - -000354|PLC|FAULT|[COD 000000] - -000355|PLC|FAULT|[COD 000000] - -000356|PLC|FAULT|[COD 000000] - -000357|PLC|FAULT|[COD 000000] - -000358|PLC|FAULT|[COD 000000] - -000359|PLC|FAULT|[COD 000000] - -000360|PLC|FAULT|[COD 000000] - -000361|PLC|FAULT|[COD 000000] - -000362|PLC|FAULT|[COD 000000] - -000363|PLC|FAULT|[COD 000000] - -000364|PLC|FAULT|[COD 000000] - -000365|PLC|FAULT|[COD 000000] - -000366|PLC|FAULT|[COD 000000] - -000367|PLC|FAULT|[COD 000000] - -000368|PLC|FAULT|[COD 000000] - -000369|PLC|FAULT|[COD 002100] - -000370|PLC|FAULT|[COD 002101] - -000371|PLC|FAULT|[COD 002102] - -000372|PLC|FAULT|[COD 002103] - -000373|PLC|FAULT|[COD 002104] - -000374|PLC|FAULT|[COD 002105] - -000375|PLC|FAULT|[COD 002106] - -000376|PLC|FAULT|[COD 002107] - -000377|PLC|FAULT|[COD 002108] - -000378|PLC|FAULT|[COD 002109] - -000379|PLC|FAULT|[COD 002110] - -000380|PLC|FAULT|[COD 002111] - -000381|PLC|FAULT|[COD 002112] - -000382|PLC|FAULT|[COD 002113] - -000383|PLC|FAULT|[COD 002114] - -000384|PLC|FAULT|[COD 002115] - -000385|PLC|FAULT|[COD 002116] - -000386|PLC|FAULT|[COD 002117] - -000387|PLC|FAULT|[COD 002118] - -000388|PLC|FAULT|[COD 002119] - -000389|PLC|FAULT|[COD 002120] - -000390|PLC|FAULT|[COD 002121] - -000391|PLC|FAULT|[COD 002122] - -000392|PLC|FAULT|[COD 002123] - -000393|PLC|FAULT|[COD 002124] - -000394|PLC|FAULT|[COD 002125] - -000395|PLC|FAULT|[COD 002126] - -000396|PLC|FAULT|[COD 002127] - -000397|PLC|FAULT|[COD 002128] - -000398|PLC|FAULT|[COD 002129] - -000399|PLC|FAULT|[COD 002130] - -000400|PLC|FAULT|[COD 002131] - -000401|PLC|FAULT|[COD 002132] - -000402|PLC|FAULT|[COD 002133] - -000403|PLC|FAULT|[COD 002134] - -000404|PLC|FAULT|[COD 002135] - -000405|PLC|FAULT|[COD 002136] - -000406|PLC|FAULT|[COD 002137] - -000407|PLC|FAULT|[COD 002138] - -000408|PLC|FAULT|[COD 002139] - -000409|PLC|FAULT|[COD 002140] - -000410|PLC|FAULT|[COD 002141] - -000411|PLC|FAULT|[COD 002142] - -000412|PLC|FAULT|[COD 002143] - -000413|PLC|FAULT|[COD 002144] - -000414|PLC|FAULT|[COD 002145] - -000415|PLC|FAULT|[COD 002146] - -000416|PLC|FAULT|[COD 002147] - -000417|PLC|FAULT|[COD 002148] - -000418|PLC|FAULT|[COD 002149] - -000419|PLC|FAULT|[COD 002150] - -000420|PLC|FAULT|[COD 002151] - -000421|PLC|FAULT|[COD 002152] - -000422|PLC|FAULT|[COD 002153] - -000423|PLC|FAULT|[COD 002154] - -000424|PLC|FAULT|[COD 002155] - -000425|PLC|FAULT|[COD 002156] - -000426|PLC|FAULT|[COD 002157] - -000427|PLC|FAULT|[COD 002158] - -000428|PLC|FAULT|[COD 002159] - -000429|PLC|FAULT|[COD 002160] - -000430|PLC|FAULT|[COD 002161] - -000431|PLC|FAULT|[COD 002162] - -000432|PLC|FAULT|[COD 002163] - -000433|PLC|FAULT|[COD 002164] - -000434|PLC|FAULT|[COD 002165] - -000435|PLC|FAULT|[COD 002166] - -000436|PLC|FAULT|[COD 002167] - -000437|PLC|FAULT|[COD 002168] - -000438|PLC|FAULT|[COD 002169] - -000439|PLC|FAULT|[COD 002170] - -000440|PLC|FAULT|[COD 002171] - -000441|PLC|FAULT|[COD 002172] - -000442|PLC|FAULT|[COD 002173] - -000443|PLC|FAULT|[COD 002174] - -000444|PLC|FAULT|[COD 002175] - -000445|PLC|FAULT|[COD 002176] - -000446|PLC|FAULT|[COD 002177] - -000447|PLC|FAULT|[COD 002178] - -000448|PLC|FAULT|[COD 002179] - -000449|PLC|FAULT|[COD 002180] - -000450|PLC|FAULT|[COD 002181] - -000451|PLC|FAULT|[COD 002182] - -000452|PLC|FAULT|[COD 002183] - -000453|PLC|FAULT|[COD 002184] - -000454|PLC|FAULT|[COD 002185] - -000455|PLC|FAULT|[COD 002186] - -000456|PLC|FAULT|[COD 002187] - -000457|PLC|FAULT|[COD 002188] - -000458|PLC|FAULT|[COD 002189] - -000459|PLC|FAULT|[COD 002190] - -000460|PLC|FAULT|[COD 002191] - -000461|PLC|FAULT|[COD 002192] - -000462|PLC|FAULT|[COD 002193] - -000463|PLC|FAULT|[COD 002194] - -000464|PLC|FAULT|[COD 002195] - -000465|PLC|FAULT|[COD 000000] - -000466|PLC|FAULT|[COD 000000] - -000467|PLC|FAULT|[COD 000000] - -000468|PLC|FAULT|[COD 000000] - -000469|PLC|FAULT|[COD 000000] - -000470|PLC|FAULT|[COD 000000] - -000471|PLC|FAULT|[COD 000000] - -000472|PLC|FAULT|[COD 000000] - -000473|PLC|FAULT|[COD 000000] - -000474|PLC|FAULT|[COD 000000] - -000475|PLC|FAULT|[COD 000000] - -000476|PLC|FAULT|[COD 000000] - -000477|PLC|FAULT|[COD 000000] - -000478|PLC|FAULT|[COD 000000] - -000479|PLC|FAULT|[COD 000000] - -000480|PLC|FAULT|[COD 000000] - -000481|PLC|FAULT|[COD 000000] - -000482|PLC|FAULT|[COD 000000] - -000483|PLC|FAULT|[COD 000000] - -000484|PLC|FAULT|[COD 000000] - -000485|PLC|FAULT|[COD 000000] - -000486|PLC|FAULT|[COD 000000] - -000487|PLC|FAULT|[COD 000000] - -000488|PLC|FAULT|[COD 000000] - -000489|PLC|FAULT|[COD 000000] - -000490|PLC|FAULT|[COD 000000] - -000491|PLC|FAULT|[COD 000000] - -000492|PLC|FAULT|[COD 000000] - -000493|PLC|FAULT|[COD 000000] - -000494|PLC|FAULT|[COD 000000] - -000495|PLC|FAULT|[COD 000000] - -000496|PLC|FAULT|[COD 000000] - -000497|PLC|FAULT|[COD 000000] - -000498|PLC|FAULT|[COD 000000] - -000499|PLC|FAULT|[COD 000000] - -000500|PLC|FAULT|[COD 000000] - -000501|PLC|FAULT|[COD 000000] - -000502|PLC|FAULT|[COD 000000] - -000503|PLC|FAULT|[COD 000000] - -000504|PLC|FAULT|[COD 000000] - -000505|PLC|FAULT|[COD 000000] - -000506|PLC|FAULT|[COD 000000] - -000507|PLC|FAULT|[COD 000000] - -000508|PLC|FAULT|[COD 000000] - -000509|PLC|FAULT|[COD 000000] - -000510|PLC|FAULT|[COD 000000] - -000511|PLC|FAULT|[COD 000000] - -000512|PLC|FAULT|[COD 000000] - -000513|PLC|FAULT|[COD 000000] - -000514|PLC|FAULT|[COD 000000] - -000515|PLC|FAULT|[COD 000000] - -000516|PLC|FAULT|[COD 000000] - -000517|PLC|FAULT|[COD 000000] - -000518|PLC|FAULT|[COD 000000] - -000519|PLC|FAULT|[COD 000000] - -000520|PLC|FAULT|[COD 000000] - -000521|PLC|FAULT|[COD 000000] - -000522|PLC|FAULT|[COD 000000] - -000523|PLC|FAULT|[COD 000000] - -000524|PLC|FAULT|[COD 000000] - -000525|PLC|FAULT|[COD 000000] - -000526|PLC|FAULT|[COD 000000] - -000527|PLC|FAULT|[COD 000000] - -000528|PLC|FAULT|[COD 000000] - -000529|PLC|FAULT|[COD 000000] - -000530|PLC|FAULT|[COD 000000] - -000531|PLC|FAULT|[COD 000000] - -000532|PLC|FAULT|[COD 000000] - -000533|PLC|FAULT|[COD 000000] - -000534|PLC|FAULT|[COD 000000] - -000535|PLC|FAULT|[COD 000000] - -000536|PLC|FAULT|[COD 000000] - -000537|PLC|FAULT|[COD 000000] - -000538|PLC|FAULT|[COD 000000] - -000539|PLC|FAULT|[COD 000000] - -000540|PLC|FAULT|[COD 000000] - -000541|PLC|FAULT|[COD 000000] - -000542|PLC|FAULT|[COD 000000] - -000543|PLC|FAULT|[COD 000000] - -000544|PLC|FAULT|[COD 000000] - -000545|PLC|FAULT|[COD 000000] - -000546|PLC|FAULT|[COD 000000] - -000547|PLC|FAULT|[COD 000000] - -000548|PLC|FAULT|[COD 000000] - -000549|PLC|FAULT|[COD 000000] - -000550|PLC|FAULT|[COD 000000] - -000551|PLC|FAULT|[COD 000000] - -000552|PLC|FAULT|[COD 000000] - -000553|PLC|FAULT|[COD 000000] - -000554|PLC|FAULT|[COD 000000] - -000555|PLC|FAULT|[COD 000000] - -000556|PLC|FAULT|[COD 000000] - -000557|PLC|FAULT|[COD 000000] - -000558|PLC|FAULT|[COD 000000] - -000559|PLC|FAULT|[COD 000000] - -000560|PLC|FAULT|[COD 000000] - -000561|PLC|FAULT|[COD 000000] - -000562|PLC|FAULT|[COD 000000] - -000563|PLC|FAULT|[COD 000000] - -000564|PLC|FAULT|[COD 000000] - -000565|PLC|FAULT|[COD 000000] - -000566|PLC|FAULT|[COD 000000] - -000567|PLC|FAULT|[COD 000000] - -000568|PLC|FAULT|[COD 000000] - -000569|PLC|FAULT|[COD 000000] - -000570|PLC|FAULT|[COD 000000] - -000571|PLC|FAULT|[COD 000000] - -000572|PLC|FAULT|[COD 000000] - -000573|PLC|FAULT|[COD 000000] - -000574|PLC|FAULT|[COD 000000] - -000575|PLC|FAULT|[COD 000000] - -000576|PLC|FAULT|[COD 000000] - -000577|PLC|FAULT|[COD 000000] - -000578|PLC|FAULT|[COD 000000] - -000579|PLC|FAULT|[COD 000000] - -000580|PLC|FAULT|[COD 000000] - -000581|PLC|FAULT|[COD 000000] - -000582|PLC|FAULT|[COD 000000] - -000583|PLC|FAULT|[COD 000000] - -000584|PLC|FAULT|[COD 000000] - -000585|PLC|FAULT|[COD 000000] - -000586|PLC|FAULT|[COD 000000] - -000587|PLC|FAULT|[COD 000000] - -000588|PLC|FAULT|[COD 000000] - -000589|PLC|FAULT|[COD 000000] - -000590|PLC|FAULT|[COD 000000] - -000591|PLC|FAULT|[COD 000000] - -000592|PLC|FAULT|[COD 000000] - -000593|PLC|FAULT|[COD 000000] - -000594|PLC|FAULT|[COD 000000] - -000595|PLC|FAULT|[COD 000000] - -000596|PLC|FAULT|[COD 000000] - -000597|PLC|FAULT|[COD 000000] - -000598|PLC|FAULT|[COD 000000] - -000599|PLC|FAULT|[COD 000000] - -000600|PLC|FAULT|[COD 000000] - -000601|PLC|FAULT|[COD 000000] - -000602|PLC|FAULT|[COD 000000] - -000603|PLC|FAULT|[COD 000000] - -000604|PLC|FAULT|[COD 000000] - -000605|PLC|FAULT|[COD 000000] - -000606|PLC|FAULT|[COD 000000] - -000607|PLC|FAULT|[COD 000000] - -000608|PLC|FAULT|[COD 000000] - -000609|PLC|FAULT|[COD 000000] - -000610|PLC|FAULT|[COD 000000] - -000611|PLC|FAULT|[COD 000000] - -000612|PLC|FAULT|[COD 000000] - -000613|PLC|FAULT|[COD 000000] - -000614|PLC|FAULT|[COD 000000] - -000615|PLC|FAULT|[COD 000000] - -000616|PLC|FAULT|[COD 000000] - -000617|PLC|FAULT|[COD 000000] - -000618|PLC|FAULT|[COD 000000] - -000619|PLC|FAULT|[COD 000000] - -000620|PLC|FAULT|[COD 000000] - -000621|PLC|FAULT|[COD 000000] - -000622|PLC|FAULT|[COD 000000] - -000623|PLC|FAULT|[COD 000000] - -000624|PLC|FAULT|[COD 000000] - -000625|PLC|FAULT|[COD 000000] - -000626|PLC|FAULT|[COD 000000] - -000627|PLC|FAULT|[COD 000000] - -000628|PLC|FAULT|[COD 000000] - -000629|PLC|FAULT|[COD 000000] - -000630|PLC|FAULT|[COD 000000] - -000631|PLC|FAULT|[COD 000000] - -000632|PLC|FAULT|[COD 000000] - -000633|PLC|FAULT|[COD 000000] - -000634|PLC|FAULT|[COD 000000] - -000635|PLC|FAULT|[COD 000000] - -000636|PLC|FAULT|[COD 000000] - -000637|PLC|FAULT|[COD 000000] - -000638|PLC|FAULT|[COD 000000] - -000639|PLC|FAULT|[COD 000000] - -000640|PLC|FAULT|[COD 000000] - -000641|PLC|FAULT|[COD 000000] - -000642|PLC|FAULT|[COD 000000] - -000643|PLC|FAULT|[COD 000000] - -000644|PLC|FAULT|[COD 000000] - -000645|PLC|FAULT|[COD 000000] - -000646|PLC|FAULT|[COD 000000] - -000647|PLC|FAULT|[COD 000000] - -000648|PLC|FAULT|[COD 000000] - -000649|PLC|FAULT|[COD 000000] - -000650|PLC|FAULT|[COD 000000] - -000651|PLC|FAULT|[COD 000000] - -000652|PLC|FAULT|[COD 000000] - -000653|PLC|FAULT|[COD 000000] - -000654|PLC|FAULT|[COD 000000] - -000655|PLC|FAULT|[COD 000000] - -000656|PLC|FAULT|[COD 000000] - -000657|PLC|FAULT|[COD 000000] - -000658|PLC|FAULT|[COD 000000] - -000659|PLC|FAULT|[COD 000000] - -000660|PLC|FAULT|[COD 000000] - -000661|PLC|FAULT|[COD 000000] - -000662|PLC|FAULT|[COD 000000] - -000663|PLC|FAULT|[COD 000000] - -000664|PLC|FAULT|[COD 000000] - -000665|PLC|FAULT|[COD 000000] - -000666|PLC|FAULT|[COD 000000] - -000667|PLC|FAULT|[COD 000000] - -000668|PLC|FAULT|[COD 000000] - -000669|PLC|FAULT|[COD 000000] - -000670|PLC|FAULT|[COD 000000] - -000671|PLC|FAULT|[COD 000000] - -000672|PLC|FAULT|[COD 000000] - -000673|PLC|FAULT|[COD 000000] - -000674|PLC|FAULT|[COD 000000] - -000675|PLC|FAULT|[COD 000000] - -000676|PLC|FAULT|[COD 000000] - -000677|PLC|FAULT|[COD 000000] - -000678|PLC|FAULT|[COD 000000] - -000679|PLC|FAULT|[COD 000000] - -000680|PLC|FAULT|[COD 000000] - -000681|PLC|FAULT|[COD 000000] - -000682|PLC|FAULT|[COD 000000] - -000683|PLC|FAULT|[COD 000000] - -000684|PLC|FAULT|[COD 000000] - -000685|PLC|FAULT|[COD 000000] - -000686|PLC|FAULT|[COD 000000] - -000687|PLC|FAULT|[COD 000000] - -000688|PLC|FAULT|[COD 000000] - -000689|PLC|FAULT|[COD 000000] - -000690|PLC|FAULT|[COD 000000] - -000691|PLC|FAULT|[COD 000000] - -000692|PLC|FAULT|[COD 000000] - -000693|PLC|FAULT|[COD 000000] - -000694|PLC|FAULT|[COD 000000] - -000695|PLC|FAULT|[COD 000000] - -000696|PLC|FAULT|[COD 000000] - -000697|PLC|FAULT|[COD 000000] - -000698|PLC|FAULT|[COD 000000] - -000699|PLC|FAULT|[COD 000000] - -000700|PLC|FAULT|[COD 000000] - -000701|PLC|FAULT|[COD 000000] - -000702|PLC|FAULT|[COD 000000] - -000703|PLC|FAULT|[COD 000000] - -000704|PLC|FAULT|[COD 000000] - -000705|PLC|FAULT|[COD 000000] - -000706|PLC|FAULT|[COD 000000] - -000707|PLC|FAULT|[COD 000000] - -000708|PLC|FAULT|[COD 000000] - -000709|PLC|FAULT|[COD 000000] - -000710|PLC|FAULT|[COD 000000] - -000711|PLC|FAULT|[COD 000000] - -000712|PLC|FAULT|[COD 000000] - -000713|PLC|FAULT|[COD 000000] - -000714|PLC|FAULT|[COD 000000] - -000715|PLC|FAULT|[COD 000000] - -000716|PLC|FAULT|[COD 000000] - -000717|PLC|FAULT|[COD 000000] - -000718|PLC|FAULT|[COD 000000] - -000719|PLC|FAULT|[COD 000000] - -000720|PLC|FAULT|[COD 000000] - -000721|PLC|FAULT|[COD 000000] - -000722|PLC|FAULT|[COD 000000] - -000723|PLC|FAULT|[COD 000000] - -000724|PLC|FAULT|[COD 000000] - -000725|PLC|FAULT|[COD 000000] - -000726|PLC|FAULT|[COD 000000] - -000727|PLC|FAULT|[COD 000000] - -000728|PLC|FAULT|[COD 000000] - -000729|PLC|FAULT|[COD 000000] - -000730|PLC|FAULT|[COD 000000] - -000731|PLC|FAULT|[COD 000000] - -000732|PLC|FAULT|[COD 000000] - -000733|PLC|FAULT|[COD 000000] - -000734|PLC|FAULT|[COD 000000] - -000735|PLC|FAULT|[COD 000000] - -000736|PLC|FAULT|[COD 000000] - -000737|PLC|FAULT|[COD 000000] - -000738|PLC|FAULT|[COD 000000] - -000739|PLC|FAULT|[COD 000000] - -000740|PLC|FAULT|[COD 000000] - -000741|PLC|FAULT|[COD 000000] - -000742|PLC|FAULT|[COD 000000] - -000743|PLC|FAULT|[COD 000000] - -000744|PLC|FAULT|[COD 000000] - -000745|PLC|FAULT|[COD 000000] - -000746|PLC|FAULT|[COD 000000] - -000747|PLC|FAULT|[COD 000000] - -000748|PLC|FAULT|[COD 000000] - -000749|PLC|FAULT|[COD 000000] - -000750|PLC|FAULT|[COD 000000] - -000751|PLC|FAULT|[COD 000000] - -000752|PLC|FAULT|[COD 000000] - -000753|PLC|FAULT|[COD 000000] - -000754|PLC|FAULT|[COD 000000] - -000755|PLC|FAULT|[COD 000000] - -000756|PLC|FAULT|[COD 000000] - -000757|PLC|FAULT|[COD 000000] - -000758|PLC|FAULT|[COD 000000] - -000759|PLC|FAULT|[COD 000000] - -000760|PLC|FAULT|[COD 000000] - -000761|PLC|FAULT|[COD 000000] - -000762|PLC|FAULT|[COD 000000] - -000763|PLC|FAULT|[COD 000000] - -000764|PLC|FAULT|[COD 000000] - -000765|PLC|FAULT|[COD 000000] - -000766|PLC|FAULT|[COD 000000] - -000767|PLC|FAULT|[COD 000000] - -000768|PLC|FAULT|[COD 000000] - -000769|PLC|FAULT|[COD 000000] - -000770|PLC|FAULT|[COD 000000] - -000771|PLC|FAULT|[COD 000000] - -000772|PLC|FAULT|[COD 000000] - -000773|PLC|FAULT|[COD 000000] - -000774|PLC|FAULT|[COD 000000] - -000775|PLC|FAULT|[COD 000000] - -000776|PLC|FAULT|[COD 000000] - -000777|PLC|FAULT|[COD 000000] - -000778|PLC|FAULT|[COD 000000] - -000779|PLC|FAULT|[COD 000000] - -000780|PLC|FAULT|[COD 000000] - -000781|PLC|FAULT|[COD 000000] - -000782|PLC|FAULT|[COD 000000] - -000783|PLC|FAULT|[COD 000000] - -000784|PLC|FAULT|[COD 000000] - -000785|PLC|FAULT|[COD 000000] - -000786|PLC|FAULT|[COD 000000] - -000787|PLC|FAULT|[COD 000000] - -000788|PLC|FAULT|[COD 000000] - -000789|PLC|FAULT|[COD 000000] - -000790|PLC|FAULT|[COD 000000] - -000791|PLC|FAULT|[COD 000000] - -000792|PLC|FAULT|[COD 000000] - -000793|PLC|FAULT|[COD 000000] - -000794|PLC|FAULT|[COD 000000] - -000795|PLC|FAULT|[COD 000000] - -000796|PLC|FAULT|[COD 000000] - -000797|PLC|FAULT|[COD 000000] - -000798|PLC|FAULT|[COD 000000] - -000799|PLC|FAULT|[COD 000000] - -000800|PLC|FAULT|[COD 000000] - -000801|PLC|FAULT|[COD 000000] - -000802|PLC|FAULT|[COD 000000] - -000803|PLC|FAULT|[COD 000000] - -000804|PLC|FAULT|[COD 000000] - -000805|PLC|FAULT|[COD 000000] - -000806|PLC|FAULT|[COD 000000] - -000807|PLC|FAULT|[COD 000000] - -000808|PLC|FAULT|[COD 000000] - -000809|PLC|FAULT|[COD 000000] - -000810|PLC|FAULT|[COD 000000] - -000811|PLC|FAULT|[COD 000000] - -000812|PLC|FAULT|[COD 000000] - -000813|PLC|FAULT|[COD 000000] - -000814|PLC|FAULT|[COD 000000] - -000815|PLC|FAULT|[COD 000000] - -000816|PLC|FAULT|[COD 000000] - -000817|PLC|FAULT|[COD 000000] - -000818|PLC|FAULT|[COD 000000] - -000819|PLC|FAULT|[COD 000000] - -000820|PLC|FAULT|[COD 000000] - -000821|PLC|FAULT|[COD 000000] - -000822|PLC|FAULT|[COD 000000] - -000823|PLC|FAULT|[COD 000000] - -000824|PLC|FAULT|[COD 000000] - -000825|PLC|FAULT|[COD 000000] - -000826|PLC|FAULT|[COD 000000] - -000827|PLC|FAULT|[COD 000000] - -000828|PLC|FAULT|[COD 000000] - -000829|PLC|FAULT|[COD 000000] - -000830|PLC|FAULT|[COD 000000] - -000831|PLC|FAULT|[COD 000000] - -000832|PLC|FAULT|[COD 000000] - -000833|PLC|FAULT|[COD 000000] - -000834|PLC|FAULT|[COD 000000] - -000835|PLC|FAULT|[COD 000000] - -000836|PLC|FAULT|[COD 000000] - -000837|PLC|FAULT|[COD 000000] - -000838|PLC|FAULT|[COD 000000] - -000839|PLC|FAULT|[COD 000000] - -000840|PLC|FAULT|[COD 000000] - -000841|PLC|FAULT|[COD 000000] - -000842|PLC|FAULT|[COD 000000] - -000843|PLC|FAULT|[COD 000000] - -000844|PLC|FAULT|[COD 000000] - -000845|PLC|FAULT|[COD 000000] - -000846|PLC|FAULT|[COD 000000] - -000847|PLC|FAULT|[COD 000000] - -000848|PLC|FAULT|[COD 000000] - -000849|PLC|FAULT|[COD 000000] - -000850|PLC|FAULT|[COD 000000] - -000851|PLC|FAULT|[COD 000000] - -000852|PLC|FAULT|[COD 000000] - -000853|PLC|FAULT|[COD 000000] - -000854|PLC|FAULT|[COD 000000] - -000855|PLC|FAULT|[COD 000000] - -000856|PLC|FAULT|[COD 000000] - -000857|PLC|FAULT|[COD 000000] - -000858|PLC|FAULT|[COD 000000] - -000859|PLC|FAULT|[COD 000000] - -000860|PLC|FAULT|[COD 000000] - -000861|PLC|FAULT|[COD 000000] - -000862|PLC|FAULT|[COD 000000] - -000863|PLC|FAULT|[COD 000000] - -000864|PLC|FAULT|[COD 000000] - -000865|PLC|FAULT|[COD 000000] - -000866|PLC|FAULT|[COD 000000] - -000867|PLC|FAULT|[COD 000000] - -000868|PLC|FAULT|[COD 000000] - -000869|PLC|FAULT|[COD 000000] - -000870|PLC|FAULT|[COD 000000] - -000871|PLC|FAULT|[COD 000000] - -000872|PLC|FAULT|[COD 000000] - -000873|PLC|FAULT|[COD 000000] - -000874|PLC|FAULT|[COD 000000] - -000875|PLC|FAULT|[COD 000000] - -000876|PLC|FAULT|[COD 000000] - -000877|PLC|FAULT|[COD 000000] - -000878|PLC|FAULT|[COD 000000] - -000879|PLC|FAULT|[COD 000000] - -000880|PLC|FAULT|[COD 000000] - -000881|PLC|FAULT|[COD 000000] - -000882|PLC|FAULT|[COD 000000] - -000883|PLC|FAULT|[COD 000000] - -000884|PLC|FAULT|[COD 000000] - -000885|PLC|FAULT|[COD 000000] - -000886|PLC|FAULT|[COD 000000] - -000887|PLC|FAULT|[COD 000000] - -000888|PLC|FAULT|[COD 000000] - -000889|PLC|FAULT|[COD 000000] - -000890|PLC|FAULT|[COD 000000] - -000891|PLC|FAULT|[COD 000000] - -000892|PLC|FAULT|[COD 000000] - -000893|PLC|FAULT|[COD 000000] - -000894|PLC|FAULT|[COD 000000] - -000895|PLC|FAULT|[COD 000000] - -000896|PLC|FAULT|[COD 000000] - -000897|PLC|FAULT|[COD 000000] - -000898|PLC|FAULT|[COD 000000] - -000899|PLC|FAULT|[COD 000000] - -000900|PLC|FAULT|[COD 000000] - -000901|PLC|FAULT|[COD 000000] - -000902|PLC|FAULT|[COD 000000] - -000903|PLC|FAULT|[COD 000000] - -000904|PLC|FAULT|[COD 000000] - -000905|PLC|FAULT|[COD 000000] - -000906|PLC|FAULT|[COD 000000] - -000907|PLC|FAULT|[COD 000000] - -000908|PLC|FAULT|[COD 000000] - -000909|PLC|FAULT|[COD 000000] - -000910|PLC|FAULT|[COD 000000] - -000911|PLC|FAULT|[COD 000000] - -000912|PLC|FAULT|[COD 000000] - -000913|PLC|FAULT|[COD 000000] - -000914|PLC|FAULT|[COD 000000] - -000915|PLC|FAULT|[COD 000000] - -000916|PLC|FAULT|[COD 000000] - -000917|PLC|FAULT|[COD 000000] - -000918|PLC|FAULT|[COD 000000] - -000919|PLC|FAULT|[COD 000000] - -000920|PLC|FAULT|[COD 000000] - -000921|PLC|FAULT|[COD 000000] - -000922|PLC|FAULT|[COD 000000] - -000923|PLC|FAULT|[COD 000000] - -000924|PLC|FAULT|[COD 000000] - -000925|PLC|FAULT|[COD 000000] - -000926|PLC|FAULT|[COD 000000] - -000927|PLC|FAULT|[COD 000000] - -000928|PLC|FAULT|[COD 000000] - -000929|PLC|FAULT|[COD 000000] - -000930|PLC|FAULT|[COD 000000] - -000931|PLC|FAULT|[COD 000000] - -000932|PLC|FAULT|[COD 000000] - -000933|PLC|FAULT|[COD 000000] - -000934|PLC|FAULT|[COD 000000] - -000935|PLC|FAULT|[COD 000000] - -000936|PLC|FAULT|[COD 000000] - -000937|PLC|FAULT|[COD 000000] - -000938|PLC|FAULT|[COD 000000] - -000939|PLC|FAULT|[COD 000000] - -000940|PLC|FAULT|[COD 000000] - -000941|PLC|FAULT|[COD 000000] - -000942|PLC|FAULT|[COD 000000] - -000943|PLC|FAULT|[COD 000000] - -000944|PLC|FAULT|[COD 000000] - -000945|PLC|FAULT|[COD 000000] - -000946|PLC|FAULT|[COD 000000] - -000947|PLC|FAULT|[COD 000000] - -000948|PLC|FAULT|[COD 000000] - -000949|PLC|FAULT|[COD 000000] - -000950|PLC|FAULT|[COD 000000] - -000951|PLC|FAULT|[COD 000000] - -000952|PLC|FAULT|[COD 000000] - -000953|PLC|FAULT|[COD 000000] - -000954|PLC|FAULT|[COD 000000] - -000955|PLC|FAULT|[COD 000000] - -000956|PLC|FAULT|[COD 000000] - -000957|PLC|FAULT|[COD 000000] - -000958|PLC|FAULT|[COD 000000] - -000959|PLC|FAULT|[COD 000000] - -000960|PLC|FAULT|[COD 000000] - -000961|PLC|FAULT|[COD 000000] - -000962|PLC|FAULT|[COD 000000] - -000963|PLC|FAULT|[COD 000000] - -000964|PLC|FAULT|[COD 000000] - -000965|PLC|FAULT|[COD 000000] - -000966|PLC|FAULT|[COD 000000] - -000967|PLC|FAULT|[COD 000000] - -000968|PLC|FAULT|[COD 000000] - -000969|PLC|FAULT|[COD 000000] - -000970|PLC|FAULT|[COD 000000] - -000971|PLC|FAULT|[COD 000000] - -000972|PLC|FAULT|[COD 000000] - -000973|PLC|FAULT|[COD 000000] - -000974|PLC|FAULT|[COD 000000] - -000975|PLC|FAULT|[COD 000000] - -000976|PLC|FAULT|[COD 000000] - -000977|PLC|FAULT|[COD 000000] - -000978|PLC|FAULT|[COD 000000] - -000979|PLC|FAULT|[COD 000000] - -000980|PLC|FAULT|[COD 000000] - -000981|PLC|FAULT|[COD 000000] - -000982|PLC|FAULT|[COD 000000] - -000983|PLC|FAULT|[COD 000000] - -000984|PLC|FAULT|[COD 000000] - -000985|PLC|FAULT|[COD 000000] - -000986|PLC|FAULT|[COD 000000] - -000987|PLC|FAULT|[COD 000000] - -000988|PLC|FAULT|[COD 000000] - -000989|PLC|FAULT|[COD 000000] - -000990|PLC|FAULT|[COD 000000] - -000991|PLC|FAULT|[COD 000000] - -000992|PLC|FAULT|[COD 000000] - -000993|PLC|FAULT|[COD 000000] - -000994|PLC|FAULT|[COD 000000] - -000995|PLC|FAULT|[COD 000000] - -000996|PLC|FAULT|[COD 000000] - -000997|PLC|FAULT|[COD 000000] - -000998|PLC|FAULT|[COD 000000] - -000999|PLC|FAULT|[COD 000000] - -001000|PLC|FAULT|[COD 000000] - -001001|PLC|FAULT|[COD 000000] - -001002|PLC|FAULT|[COD 000000] - -001003|PLC|FAULT|[COD 000000] - -001004|PLC|FAULT|[COD 000000] - -001005|PLC|FAULT|[COD 000000] - -001006|PLC|FAULT|[COD 000000] - -001007|PLC|FAULT|[COD 000000] - -001008|PLC|FAULT|[COD 000000] - -001009|PLC|FAULT|[COD 000000] - -001010|PLC|FAULT|[COD 000000] - -001011|PLC|FAULT|[COD 000000] - -001012|PLC|FAULT|[COD 000000] - -001013|PLC|FAULT|[COD 000000] - -001014|PLC|FAULT|[COD 000000] - -001015|PLC|FAULT|[COD 000000] - -001016|PLC|FAULT|[COD 000000] - -001017|PLC|FAULT|[COD 000000] - -001018|PLC|FAULT|[COD 000000] - -001019|PLC|FAULT|[COD 000000] - -001020|PLC|FAULT|[COD 000000] - -001021|PLC|FAULT|[COD 000000] - -001022|PLC|FAULT|[COD 000000] - -001023|PLC|FAULT|[COD 000000] - -001024|PLC|FAULT|[COD 000000] - \ No newline at end of file +000001|PLC|FAULT|[1] MANDRINO 1 NON BLOCCATO +000002|PLC|FAULT|[2] MANDRINO 2 NON BLOCCATO +000003|PLC|FAULT|[3] MANDRINO SUPPLEMENTARE NON BLOCCATO +000004|PLC|FAULT|[4] ZONA DI COLLISIONE CON CAMBIO UTENSILE ESTERNO +000005|PLC|FAULT|[5] ZONA DI COLLISIONE CON CAMBIO UTENSILE LINEARE +000006|PLC|FAULT|[6] GRUPPO ASSI NON VALIDO +000007|PLC|FAULT|[7] INVERTER 1 NON OK +000008|PLC|FAULT|[8] INVERTER 2 NON OK +000009|PLC|FAULT|[9] INVERTER MANDRINO SUPPLEMENTARE NON OK +0000010|PLC|FAULT|[10] SAVE ENERGY ATTIVO +0000011|PLC|FAULT|[11] B,[WD] SUPERATO NUMERO PEZZI MASSIMO CARICABILE SU TRANSFER +0000012|PLC|FAULT|[12] VERIFICA CONTATTORI NON OK +0000013|PLC|FAULT|[13] TIMEOUT COMUNICAZIONE XILOG +0000014|PLC|WARNING|[14] INTERVENTO MAGNETOTERMICI +0000015|PLC|FAULT|[15] PORTE PROTEZIONE APERTE +0000016|PLC|FAULT|[16] TAPPETO CONVOGLIA TRUCIOLI NON IN POSIZIONE +0000017|PLC|FAULT|[17] COLLISIONE RILEVATA DAL SIMULATORE +0000018|PLC|FAULT|[18] BUMPER MOBILE NON IN POSIZIONE +0000019|PLC|FAULT|[19] FORATRICE NON IN POSIZIONE +0000020|PLC|WARNING|[20] STOP MACCHINA DA CODICI M SUPPLEMENTARI +0000021|PLC|WARNING|[21] M00 ATTIVO: START CICLO +0000022|PLC|WARNING|[22] BATTERIA SCARICA ENCODER ASSI YASKAWA +0000023|PLC|FAULT|[23] AZIONAMENTI ASSI XYZ... NON OK +0000024|PLC|FAULT|[24] AZIONAMENTI ASSI ROTATIVI NON OK +0000025|PLC|FAULT|[25] CNC NON OK +0000026|PLC|FAULT|[26] PRESSOSTATO ARIA INTERVENUTO +0000027|PLC|FAULT|[27] BATTERIA CNC NON CARICA +0000028|PLC|FAULT|[28] ERRORE CANOPEN RING 0 +0000029|PLC|FAULT|[29] ERRORE CANOPEN RING 1 +0000030|PLC|WARNING|[30] ABILITAZIONE BL/SBL UTENSILE MANDRINO 1 +0000031|PLC|WARNING|[31] ABILITAZIONE BL/SBL UTENSILE MANDRINO 2 +0000032|PLC|WARNING|[32] ABILITAZIONE BL/SBL UTENSILE MANDRINO SUPPLEMENTARE +0000033|PLC|WARNING|[33] CICLO ETICHETTATURA IN CORSO +0000034|PLC|FAULT|[34] ETICHETTATRICE NON PRONTA +0000035|PLC|FAULT|[35] ETICHETTATRICE NON IN POSIZIONE +0000036|PLC|FAULT|[36] ERRORE ETICHETTATRICE +0000037|PLC|FAULT|[37] SONDA TERMICA/VENTOLA MANDRINO 1 +0000038|PLC|FAULT|[38] SONDA TERMICA/VENTOLA MANDRINO 2 +0000039|PLC|FAULT|[39] SONDA TERMICA/VENTOLA MANDRINO SUPPLEMENTARE +0000040|PLC|FAULT|[40] INTERVENTO MAGNETOTERMICO GRUPPO LAMA +0000041|PLC|FAULT|[41] RICARICARE POMPA LUBRIFICAZIONE +0000042|PLC|FAULT|[42] LUBRIFICAZIONE ASSI NON OK +0000043|PLC|WARNING|[43] LUBRIFICAZIONE ASSI IN CORSO +0000044|PLC|WARNING|[44] RICHIESTA VUOTO/ATTREZZATURA +0000045|PLC|FAULT|[45] EMERGENZA CAUSA VUOTO ZONA 1 +0000046|PLC|FAULT|[46] EMERGENZA CAUSA VUOTO ZONA 2 +0000047|PLC|FAULT|[47] ASSI IN FINE CORSA +0000048|PLC|FAULT|[48] CUFFIA ESTERNA NON IN POSIZIONE +0000049|PLC|FAULT|[49] CUFFIA INTERNA NON IN POSIZIONE +0000050|PLC|FAULT|[50] CUFFIA PULIZIA PIANO NON IN POSIZIONE +0000051|PLC|FAULT|[51] EMERGENZA CAUSA VUOTO ZONA 3 +0000052|PLC|FAULT|[52] EMERGENZA CAUSA VUOTO ZONA 4 +0000053|PLC|WARNING|[53] ESEGUIRE RIFERIMENTO ASSI +0000054|PLC|FAULT|[54] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE 1 +0000055|PLC|FAULT|[55] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE 2 +0000056|PLC|FAULT|[56] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE MANDRINO SUPPLEMENTARE +0000057|PLC|FAULT|[57] ESEGUIRE RIFERIMENTO MAGAZZINO ESTERNO 1 +0000058|PLC|FAULT|[58] ESEGUIRE RIFERIMENTO NAVETTA HS +0000059|PLC|FAULT|[59] ESEGUIRE RIFERIMENTO PINZE ROBOT CELLA WD +0000060|PLC|FAULT|[60] CONVOGLIATORE TRUCIOLI NON OK +0000061|PLC|WARNING|[61] SERBATOIO LUBRIFICAZIONE CONVOGLIATORE TRUCIOLI VUOTO +0000062|PLC|FAULT|[62] ASSE X IN FINE CORSA +0000063|PLC|FAULT|[63] ASSE Y IN FINE CORSA +0000064|PLC|FAULT|[64] ASSE Z IN FINE CORSA +0000065|PLC|FAULT|[65] PALPATORE SYNCRO NON IN POSIZIONE +0000066|PLC|WARNING|[66] ALLINEAMENTO ASSI GANTRY IN CORSO +0000067|PLC|FAULT|[67] ASSE B IN FINE CORSA +0000068|PLC|FAULT|[68] ASSE C IN FINE CORSA +0000069|PLC|FAULT|[69] ASSE Y NON IN POSIZIONE +0000070|PLC|FAULT|[70] ESEGUIRE RIFERIMENTO PALPATORE SYNCRO +0000071|PLC|FAULT|[71] PERNO BLOCCAGGIO TAVOLO ELEVATORE NON IN POSIZIONE +0000072|PLC|FAULT|[72] FOTOCELLULA PRESENZA UTENSILE +0000073|PLC|FAULT|[73] MANDRINO 1 NON OK +0000074|PLC|FAULT|[74] MANDRINO 2 NON OK +0000075|PLC|FAULT|[75] MANDRINO SUPPLEMENTARE NON OK +0000076|PLC|FAULT|[76] FOTOCELLULA PRESENZA UTENSILE (CATENA) +0000077|PLC|FAULT|[77] ALLARME SENSORE ROTAZIONE MANDRINO 1 +0000078|PLC|FAULT|[78] ALLARME SENSORE ROTAZIONE MANDRINO 2 +0000079|PLC|FAULT|[79] ALLARME SENSORE ROTAZIONE MANDRINO SUPPLEMENTARE +0000080|PLC|FAULT|[80] CAMBIO UTENSILE TESTA 1(ONBOARD) NON IN POSIZIONE +0000081|PLC|FAULT|[81] CAMBIO UTENSILE MANDRINO SUPPLEMENTARE (ONBOARD) NON IN POSIZIONE +0000082|PLC|FAULT|[82] CAMBIO UTENSILE LINEARE NON IN POSIZIONE +0000083|PLC|FAULT|[83] CAMBIO UTENSILE HS NON IN POSIZIONE +0000084|PLC|FAULT|[84] [TM] NAVETTA TOOL MANAGEMENT NON IN POSIZIONE +0000085|PLC|FAULT|[85] [TM] LETTORE CHIP TOOL MANAGMENT NON IN POSIZIONE +0000086|PLC|FAULT|[86] [TM] LIBERARE PINZA DI CARICO TOOL MANAGMENT +0000087|PLC|FAULT|[87] [TM] COLLISIONE CON TOOL MANAGMENT +0000088|PLC|FAULT|[88] [TM] CARICARE UTENSILE SULLA PINZA DI CARICO DEL TOOL MANAGMENT +0000089|PLC|FAULT|[89] BANDELLA NON IN POSIZIONE +0000090|PLC|FAULT|[90] PANNELLO PRELEVATO FUORI ALLINEAMENTO +0000091|PLC|FAULT|[91] SCARICATORE NON IN POSIZIONE +0000092|PLC|FAULT|[92] SPONDE/BATTUTE DI SCARICO NON IN POSIZIONE +0000093|PLC|FAULT|[93] ZONA DI SCARICO OCCUPATA +0000094|PLC|FAULT|[94] VERIFICARE DIMENSIONI PILA +0000095|PLC|FAULT|[95] CARICARE NUOVA PILA +0000096|PLC|FAULT|[96] CARICATORE NON IN POSIZIONE +0000097|PLC|FAULT|[97] TAVOLO ELEVATORE NON OK +0000098|PLC|FAULT|[98] PANNELLO NON PRELEVATO DA TAVOLO ELEVATORE +0000099|PLC|FAULT|[99] FOTOCELLULA RIFERIMENTO PANNELLO NON OK +0000100|PLC|FAULT|[100] ALLARME CELLA WD +0000101|PLC|FAULT|[101] REFRIGERANTE MANDRINO 1 NON OK +0000102|PLC|FAULT|[102] REFRIGERANTE MANDRINO 2 NON OK +0000103|PLC|FAULT|[103] INVERTER NASTRO DI SCARICO NON OK +0000104|PLC|FAULT|[104] ARRESTO OPERATIVO: RESETTARE LE FOTOCELLULE DI SICUREZZA +0000105|PLC|WARNING|[105] C.UTENSILE LINEARE IN CORSO: ABBASSARE GLI INNALZATORI E RESETTARE LE FOTOCELLULE DI SICUREZZA +0000106|PLC|FAULT|[106] CARICO PANNELLO NON AMMESSO +0000107|PLC|FAULT|[107] BYPASS COLLISIONI ATTIVO +0000108|PLC|FAULT|[108] SPORTELLO CAMBIO UTENSILE LINEARE DESTRO NON IN POSIZIONE +0000109|PLC|FAULT|[109] VERIFICA FUNZIONAMENTO SICUREZZE +0000110|PLC|FAULT|[110] RESETTARE LE FOTOCELLULE DI SICUREZZA +0000111|PLC|FAULT|[111] INSERIMENTO UTENSILE NON OK +0000112|PLC|FAULT|[112] GUASTO MICRO CONTROLLO PEDANE +0000113|PLC|FAULT|[113] INSERIMENTO UTENSILE IN NAVETTA HS NON OK +0000114|PLC|WARNING|[114] TABELLA NON AGGIORNATA +0000115|PLC|FAULT|[115] MANDRINO 1 NON SBLOCCATO +0000116|PLC|FAULT|[116] MANDRINO SUPPLEMENTARE NON SBLOCCATO +0000117|PLC|FAULT|[117] CONTROLLARE CICLO CHIUSURA BORDO +0000118|PLC|WARNING|[118] PM: SETUP NON POSSIBILE ZONA 3 [Vuoto ON/Teste DW] +0000119|PLC|WARNING|[119] PM: SETUP NON POSSIBILE ZONA 4 [Vuoto ON/Teste DW] +0000120|PLC|WARNING|[120] UTENSILE SPECIALE: OPERAZIONE NON AMMESSA +0000121|PLC|FAULT|[121] ERRORE CICLO CHIUSURA BORDO +0000122|PLC|FAULT|[122] MAGAZZINO UTENSILE ESTERNO 1 NON IN POSIZIONE +0000123|PLC|FAULT|[123] SPORTELLO MAGAZZINO ESTERNO NON IN POSIZIONE +0000124|PLC|WARNING|[124] ERRATA PROGRAMMAZIONE +0000125|PLC|WARNING|[125] ERRORE UTENSILE TESTA 1 +0000126|PLC|WARNING|[126] ERRORE UTENSILE TESTA 2 +0000127|PLC|FAULT|[127] SPORTELLO CAMBIO UTENSILE LINEARE SINISTRO NON IN POSIZIONE +0000128|PLC|FAULT|[128] TIME OUT PIGNA MOBILE +0000129|PLC|WARNING|[129] CAMBIO MODALITA' MACCHINA (M103) +0000130|PLC|FAULT|[130] PORTE ARMADIO ELETTRICO APERTE +0000131|PLC|WARNING|[131] ESEGUIRE MANUTENZIONE CONDIZIONATORE ARMADIO ELETTRICO +0000132|PLC|FAULT|[132] AGGREGATO PRESSATORE/CONVOGLIATORE TRUCIOLI NON OK +0000133|PLC|FAULT|[133] SERBATOIO LUBROREFRIGERATORE UTENSILE VUOTO +0000134|PLC|WARNING|[134] BATTERIA SCARICA TASTATORE RADIO +0000135|PLC|FAULT|[135] RILEVATORE SPESSORE PEZZO NON IN POSIZIONE +0000136|PLC|FAULT|[136] CICLO TASTATURA NON OK +0000137|PLC|FAULT|[137] BATTUTE DI RIFERIMENTO ZONA 1 NON OK +0000138|PLC|FAULT|[138] BATTUTE DI RIFERIMENTO ZONA 2 NON OK +0000139|PLC|FAULT|[139] ASSI PRISMA BC NON IN POSIZIONE +0000140|PLC|FAULT|[140] AZIONAMENTI ASSI PRISMA BC NON OK +0000141|PLC|FAULT|[141] TASTATORE RADIO NON OK +0000142|PLC|FAULT|[142] AVVICINATORI NON IN POSIZIONE +0000143|PLC|FAULT|[143] AVVICINAMENTO PANNELLO NON AVVENUTO +0000144|PLC|FAULT|[144] PRESA PANNELLO NON OK +0000145|PLC|WARNING|[145] RIAGGANCIO MANDRINO IN CORSO +0000146|PLC|WARNING|[146] RIAGGANCIO MANDRINO FALLITO +0000147|PLC|WARNING|[147] RIAGGANCIO MANDRINO AVVENUTO +0000148|PLC|FAULT|[148] INTERVENTO FUNE DI SICUREZZA +0000149|PLC|FAULT|[149] INTERVENTO OVERSPEED ASSI +0000150|PLC|FAULT|[150] INTERVENTO BUMPERS +0000151|PLC|WARNING|[151] MACCHINA SPENTA +0000152|PLC|FAULT|[152] EMERGENZA PREMUTA +0000153|PLC|WARNING|[153] PM: SETUP NON POSSIBILE ZONA 1 [VUOTO ON / TESTE DW] +0000154|PLC|WARNING|[154] PM: SETUP NON POSSIBILE ZONA 2 [VUOTO ON / TESTE DW] +0000155|PLC|WARNING|[155] BARRA MOBILE CENTRALE 1 NON IN POSIZIONE +0000156|PLC|WARNING|[156] BARRA MOBILE CENTRALE 2 NON IN POSIZIONE +0000157|PLC|WARNING|[157] PM: COLLISIONE BATTUTE CON SUPPORTI VENTOSE / MORSETTI +0000158|PLC|WARNING|[158] CUFFIA MANDRINO SUPPLEMENTARE NON IN POSIZIONE +0000159|PLC|WARNING|[159] TESTA GRUPPO MANDRINO SUPPLEMENTARE NON IN POSIZIONE +0000160|PLC|WARNING|[160] TESTA GRUPPO LAMA NON IN POSIZIONE +0000161|PLC|WARNING|[161] CICLO DI CARICO IN CORSO +0000162|PLC|WARNING|[162] CICLO DI SCARICO IN CORSO +0000163|PLC|WARNING|[163] BATTUTE DI CARICO NON IN POSIZIONE ZONA 1 +0000164|PLC|WARNING|[164] ATTESA ROBOT IN POSIZIONE +0000165|PLC|WARNING|[165] INVERTER GUASTO POMPA VUOTO 1 (MASTER) +0000166|PLC|WARNING|[166] INVERTER GUASTO POMPA VUOTO 2 (SLAVE) +0000167|PLC|WARNING|[167] BATTUTE DI CARICO NON IN POSIZIONE ZONA 2 +0000168|PLC|WARNING|[168] SALITA CUFFIA DA OPERATORE +0000169|PLC|WARNING|[169] TRAVERSA 1 NON IN POSIZIONE +0000170|PLC|WARNING|[170] TRAVERSA 2 NON IN POSIZIONE +0000171|PLC|WARNING|[171] TRAVERSA 3 NON IN POSIZIONE +0000172|PLC|WARNING|[172] TRAVERSA 4 NON IN POSIZIONE +0000173|PLC|WARNING|[173] TRAVERSA 5 NON IN POSIZIONE +0000174|PLC|WARNING|[174] TRAVERSA 6 NON IN POSIZIONE +0000175|PLC|WARNING|[175] TRAVERSA 7 NON IN POSIZIONE +0000176|PLC|WARNING|[176] TRAVERSA 8 NON IN POSIZIONE +0000177|PLC|WARNING|[177] TRAVERSA 9 NON IN POSIZIONE +0000178|PLC|WARNING|[178] TRAVERSA 10 NON IN POSIZIONE +0000179|PLC|WARNING|[179] TRAVERSA 11 NON IN POSIZIONE +0000180|PLC|WARNING|[180] TRAVERSA 12 NON IN POSIZIONE +0000181|PLC|WARNING|[181] SOSTITUZIONE VENTOSE IN CORSO AREA 1 +0000182|PLC|WARNING|[182] SOSTITUZIONE VENTOSE IN CORSO AREA 2 +0000183|PLC|FAULT|[183] BATTUTE DI RIFERIMENTO ZONA 3 NON OK +0000184|PLC|FAULT|[184] BATTUTE DI RIFERIMENTO ZONA 4 NON OK +0000185|PLC|FAULT|[185] [BRC] GR5: GRUPPO FUSI ORIZZONTALI NON IN POSIZIONE (fori spine) +0000186|PLC|FAULT|[186] [BRC] GR6: GRUPPO FRESA VERTICALE NON IN POSIZIONE +0000187|PLC|FAULT|[187] [BRC] GR7: GRUPPO FRESA ORIZZONTALE NON IN POSIZIONE +0000188|PLC|FAULT|[188] [BRC] GR8: GRUPPO LAMA NON IN POSIZIONE +0000189|PLC|FAULT|[189] [BRC] ATTESA INNESTO PER ROTAZIONE GRUPPO LAMA +0000190|PLC|FAULT|[190] SELETTORI CONTROSAGOMA NON OK [AREA UNICA] +0000191|PLC|FAULT|[191] BATTUTE DI RIFERIMENTO BARRA 1 NON OK +0000192|PLC|FAULT|[192] BATTUTE DI RIFERIMENTO BARRA 2 NON OK +0000193|PLC|FAULT|[193] BATTUTE DI RIFERIMENTO BARRA 3 NON OK +0000194|PLC|FAULT|[194] BATTUTE DI RIFERIMENTO BARRA 4 NON OK +0000195|PLC|FAULT|[195] BATTUTE DI RIFERIMENTO BARRA 5 NON OK +0000196|PLC|FAULT|[196] BATTUTE DI RIFERIMENTO BARRA 6 NON OK +0000197|PLC|FAULT|[197] BATTUTE DI RIFERIMENTO BARRA 7 NON OK +0000198|PLC|FAULT|[198] BATTUTE DI RIFERIMENTO BARRA 8 NON OK +0000199|PLC|FAULT|[199] BATTUTE DI RIFERIMENTO BARRA 9 NON OK +0000200|PLC|FAULT|[200] BATTUTE DI RIFERIMENTO BARRA 10 NON OK +0000201|PLC|FAULT|[201] BATTUTE DI RIFERIMENTO BARRA 11 NON OK +0000202|PLC|FAULT|[202] BATTUTE DI RIFERIMENTO BARRA 12 NON OK +0000203|PLC|FAULT|[203] BATTUTE DI RIFERIMENTO BARRA FISSA SX NON OK +0000204|PLC|FAULT|[204] BATTUTE DI RIFERIMENTO BARRA FISSA DX NON OK +0000205|PLC|FAULT|[205] BASI NON BLOCCATE ZONA 1 +0000206|PLC|FAULT|[206] BASI NON BLOCCATE ZONA 2 +0000207|PLC|FAULT|[207] BASI NON BLOCCATE ZONA 3 +0000208|PLC|FAULT|[208] BASI NON BLOCCATE ZONA 4 +0000209|PLC|WARNING|[209] SOSTITUZIONE VENTOSE IN CORSO AREA 3 +0000210|PLC|WARNING|[210] SOSTITUZIONE VENTOSE IN CORSO AREA 4 +0000211|PLC|FAULT|[211] [BORDATORE POWER] ATTESA GRUPPO A BORDARE ALTO +0000212|PLC|FAULT|[212] [BORDATORE POWER] ATTESA GRUPPO A BORDARE BASSO +0000213|PLC|FAULT|[213] [BORDATORE POWER] ATTESA GRUPPO A BORDARE POSIZ. CAMBIO RULLO +0000214|PLC|FAULT|[214] [BORDATORE POWER] ATTESA PIANO CARICAMENTO BORDI ALTO +0000215|PLC|FAULT|[215] [BORDATORE POWER] ATTESA PIANO CARICAMENTO BORDI BASSO +0000216|PLC|FAULT|[216] [BORDATORE POWER] MANCATA LETTURA BORDO GIUNZIONE +0000217|PLC|FAULT|[217] [BORDATORE POWER] ERRORE BORDO SU FOTOCELLULA DI CARICO +0000218|PLC|FAULT|[218] VASCA COLLA NON IN TEMPERATURA +0000219|PLC|FAULT|[219] [BORDATORE POWER] ASSENZA BORDO IN MULTIROTOLO +0000220|PLC|FAULT|[220] [BORDATORE POWER] ATTESA CICLO CARICO COLLA DA PREFUSORE +0000221|PLC|FAULT|[221] [BORDATORE POWER] MANCATO TAGLIO TRANCIA MAGAZZINO BORDI +0000222|PLC|FAULT|[222] [BORDATORE POWER] ATTESA CARICO COLLA DA PREFUSORE +0000223|PLC|FAULT|[223] [BORDATORE POWER] ANOMALIA SENSORI CILINDRO TESTA A BORDARE +0000224|PLC|FAULT|[224] SENSORE TESTA A BORDARE IN COLLISIONE +0000225|PLC|FAULT|[225] [BORDATORE POWER] TIMEOUT INTESTATURA BORDO TESTA A BORDARE +0000226|PLC|FAULT|[226] INTERVENTO TERMICI VASCA COLLA +0000227|PLC|FAULT|[227] INTERVENTO TERMICI PREFUSORE +0000228|PLC|FAULT|[228] INTERVENTO TERMICI LAMPADE ONDE CORTE +0000229|PLC|FAULT|[229] ESEGUIRE RIFERIMENTO MOT. ALTEZZA BORDO TESTA B. +0000230|PLC|FAULT|[230] ESEGUIRE RIFERIMENTO MOT. ALTEZZA BORDO MAGAZZINO B. +0000231|PLC|FAULT|[231] ESEGUIRE RIFERIMENTO MOT. CAMBIO RULLO PRESSIONE +0000232|PLC|FAULT|[232] TIMEOUT SENSORE CHIUSURA CILINDRO PREFUSORE +0000233|PLC|FAULT|[233] ESEGUIRE TARATURA TRAVERSE/VENTOSE +0000234|PLC|FAULT|[234] VENTOSE NON BLOCCATE AREA 1 +0000235|PLC|FAULT|[235] VENTOSE NON BLOCCATE AREA 2 +0000236|PLC|WARNING|[236] ATTESA SBLOCCO VENTOSA +0000237|PLC|WARNING|[237] ATTESA BLOCCO VENTOSA +0000238|PLC|WARNING|[238] RIMUOVERE VENTOSA: START CICLO +0000239|PLC|WARNING|[239] INSERIRE VENTOSA: START CICLO +0000240|PLC|FAULT|[240] ANOMALIA FOTOCELLULA MAGAZZINO BORDI +0000241|PLC|WARNING|[241] BARRA 1 +0000242|PLC|WARNING|[242] BARRA 2 +0000243|PLC|WARNING|[243] BARRA 3 +0000244|PLC|WARNING|[244] BARRA 4 +0000245|PLC|WARNING|[245] BARRA 5 +0000246|PLC|WARNING|[246] BARRA 6 +0000247|PLC|WARNING|[247] BARRA 7 +0000248|PLC|WARNING|[248] BARRA 8 +0000249|PLC|WARNING|[249] BARRA 9 +0000250|PLC|WARNING|[250] BARRA 10 +0000251|PLC|WARNING|[251] BARRA 11 +0000252|PLC|WARNING|[252] BARRA 12 +0000253|PLC|WARNING|[253] RIMUOVERE/INSERIRE VENTOSA COME DA GRAFICA SU AREA 1: START CICLO +0000254|PLC|WARNING|[254] RIMUOVERE/INSERIRE VENTOSA COME DA GRAFICA SU AREA 2: START CICLO +0000255|PLC|FAULT|[255] PORTE PROTEZIONE SBLOCCATE +0000256|PLC|FAULT|[256] ERRORE MODULO ZERO SPEED MANDRINO +0000257|PLC|FAULT|[257] INTESTATORE NON IN POSIZIONE +0000258|PLC|FAULT|[258] INTESTATORE 92 VUOTO +0000259|PLC|FAULT|[259] INTESTATORE 93 VUOTO +0000260|PLC|FAULT|[260] LIVELLO COLLA BASSO B.BASIC +0000261|PLC|FAULT|[261] [WD]EMERGENZA TRANSFER PREMUTA +0000262|PLC|FAULT|[262] [WD]INTERVENTO MAGNETOTERMICI TRANSFER +0000263|PLC|FAULT|[263] [WD]PORTE ARMADIO ELETTRICO TRANSFER APERTE +0000264|PLC|FAULT|[264] [WD]SVUOTARE TRANSFER +0000265|PLC|FAULT|[265] [WD]PEZZO IN ZONA DI SCARICO +0000266|PLC|FAULT|[266] [WD]ATTESA ROBOT 1 IN POSIZIONE +0000267|PLC|FAULT|[267] [WD]ATTESA ROBOT 2 IN POSIZIONE +0000268|PLC|FAULT|[268] [WD]SVUOTARE RULLIERE +0000269|PLC|FAULT|[269] [WD]DIMENSIONI PEZZO NON OK +0000270|PLC|FAULT|[270] [WD]SVUOTARE PIANO MACCHINA E PINZE ROBOT +0000271|PLC|FAULT|[271] [WD]PINZA ROBOT 1 NON IN POSIZIONE +0000272|PLC|FAULT|[272] [WD]PINZA ROBOT 2 NON IN POSIZIONE +0000273|PLC|FAULT|[273] MORSETTI ZONA 1 ALTI PNEUMATICAMENTE +0000274|PLC|FAULT|[274] MORSETTI ZONA 2 ALTI PNEUMATICAMENTE +0000275|PLC|FAULT|[275] EMERGENZA CAUSA MORSETTI ZONA 1 +0000276|PLC|FAULT|[276] EMERGENZA CAUSA MORSETTI ZONA 2 +0000277|PLC|FAULT|[277] ZONA DI COLLISIONE REFILATORE / RAS +0000278|PLC|FAULT|[278] PERICOLO SPORTELLO PANTOGRAFO APERTO +0000279|PLC|FAULT|[279] ZONA DI COLLISIONE BORDATORE +0000280|PLC|FAULT|[280] POSIZIONE DEL SELETTORE DELLA PULSANTIERA NON OK +0000281|PLC|FAULT|[281] PREMERE PULSANTE UOMO-MORTO +0000282|PLC|FAULT|[282] METTERE LA MACCHINA IN EMERGENZA +0000283|PLC|FAULT|[283] EMERGENZA TAPPETO ZONA 1 +0000284|PLC|FAULT|[284] EMERGENZA TAPPETO ZONA 2 +0000285|PLC|FAULT|[285] ZONA DI COLLISIONE MAGAZZINO RULLI PRESSIONE +0000286|PLC|FAULT|[286] TAPPETO AREA 1 IMPEGNATO +0000287|PLC|FAULT|[287] TAPPETO CENTRALE IMPEGNATO +0000288|PLC|FAULT|[288] TAPPETO AREA 2 IMPEGNATO +0000289|PLC|FAULT|[289] NUMERO RULLO PRESSORE ERRATO +0000290|PLC|FAULT|[290] CHECK VASCA COLLA +0000291|PLC|FAULT|[291] TIMEOUT GRUPPO VENTOSE NON ESCLUSO +0000292|PLC|FAULT|[292] TIMEOUT GRUPPO VENTOSE NON INSERITO +0000293|PLC|FAULT|[293] ASSE C BORDATORE IN QUOTA COLLISIONE CON G.VENTOSE +0000294|PLC|FAULT|[294] CICLO INSERIMENTO SPINA GRUPPO 92 NON OK(MUOVERE IN JOG+ L'ASSE X) +0000295|PLC|FAULT|[295] CICLO INSERIMENTO SPINA GRUPPO 93 NON OK(MUOVERE IN JOG- L'ASSE X) +0000296|PLC|FAULT|[296] RULLI NON IN POSIZIONE +0000297|PLC|FAULT|[297] ASSE X FUORI LIMITE PER RULLI +0000298|PLC|FAULT|[298] COLLISIONE RULLI CON GRUPPO TESTE +0000299|PLC|FAULT|[299] LASCIARE LIBERO +0000300|PLC|FAULT|[300] PERICOLO COLLISIONE BORDATORE PIANO MULTIFUNZIONE +0000301|PLC|FAULT|[301] MODALITÀ CELLA NON ATTIVA +0000302|PLC|FAULT|[302] ZONA DI COLLISIONE BORDATORE IN Y +0000303|PLC|FAULT|[303] ERRORE SEQUENZA CAMBIO RULLO PRESSORE +0000304|PLC|FAULT|[304] +0000305|PLC|FAULT|[305] +0000306|PLC|FAULT|[306] +0000307|PLC|FAULT|[307] +0000308|PLC|FAULT|[308] +0000309|PLC|FAULT|[309] +0000310|PLC|FAULT|[310] +0000311|PLC|FAULT|[311] +0000312|PLC|FAULT|[312] +0000313|PLC|FAULT|[313] PRESSORE 1 TESTA 1 NON IN POSIZIONE +0000314|PLC|FAULT|[314] PRESSORE 2 TESTA 1 NON IN POSIZIONE +0000315|PLC|FAULT|[315] PRESSORE 3 TESTA 1 NON IN POSIZIONE +0000316|PLC|FAULT|[316] PRESSORE 4 TESTA 1 NON IN POSIZIONE +0000317|PLC|FAULT|[317] PRESSORE 1 TESTA 2 NON IN POSIZIONE +0000318|PLC|FAULT|[318] PRESSORE 2 TESTA 2 NON IN POSIZIONE +0000319|PLC|FAULT|[319] PRESSORE 3 TESTA 2 NON IN POSIZIONE +0000320|PLC|FAULT|[320] PRESSORE 4 TESTA 2 NON IN POSIZIONE +0000321|PLC|FAULT|[321] ATTESA FINE CAMBIO UTENSILE +0000322|PLC|FAULT|[322] +0000323|PLC|FAULT|[323] PERICOLO COLLISIONE ASSI X-U +0000324|PLC|FAULT|[324] PERICOLO COLLISIONE ASSI Y-V +0000325|PLC|FAULT|[325] ZERO FEED RATE +0000326|PLC|FAULT|[326] PIGNA MOBILE ATTIVA - PADDLE DISABILITATO +0000327|PLC|FAULT|[327] APERTURA PINZE BLOCCATO DA ASSI Z-W BASSI +0000328|PLC|FAULT|[328] ATTENZIONE! PERICOLO COLLISIONE +0000329|PLC|FAULT|[329] CUFFIA LAMA NON IN POSIZIONE +0000330|PLC|FAULT|[330] BATTUTA RIFERIMENTO NON ESCLUSA +0000331|PLC|FAULT|[331] SCARICO PANNELLO: CONFERMARE CON START CICLO +0000332|PLC|FAULT|[332] VELOCITA' RIDOTTA A 25MT/MIN +0000333|PLC|FAULT|[333] DISCESA PRESSORE BLOCCATA DA ASSI Z-W BASSI +0000334|PLC|FAULT|[334] DISCESA MANDRINO BLOCCATA DA ASSI Z-W BASSI +0000335|PLC|FAULT|[335] DISCESA FUSO/LAMA BLOCCATA DA ASSI Z-W BASSI +0000336|PLC|FAULT|[336] DISCESA BATTUTA RIFERIMENTO BLOCCATA DA ASSI Z-W BASSI +0000337|PLC|FAULT|[337] MOVIMENTO ASSI X BLOCCATO DA PINZA APERTA E TESTE BASSE +0000338|PLC|FAULT|[338] MOVIMENTO ASSI U BLOCCATO DA PINZA APERTA E TESTE BASSE +0000339|PLC|FAULT|[339] MOVIMENTO ASSI YZ BLOCCATO DA PINZE APERTE +0000340|PLC|FAULT|[340] MOVIMENTO ASSI VW BLOCCATO DA PINZE APERTE \ No newline at end of file diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/AlarmListEsaGv.map b/MTC_Adapter/MTC_Adapter/Resources/SCM/AlarmListEsaGv.map index 9c35e40..6f5620f 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/AlarmListEsaGv.map +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/AlarmListEsaGv.map @@ -1,276 +1,340 @@ -1|PLC|FAULT|[1] MANDRINO 1 NON BLOCCATO -2|PLC|FAULT|[2] MANDRINO 2 NON BLOCCATO -3|PLC|FAULT|[3] MANDRINO SUPPLEMENTARE NON BLOCCATO -4|PLC|FAULT|[4] ZONA DI COLLISIONE CON CAMBIO UTENSILE ESTERNO -5|PLC|FAULT|[5] ZONA DI COLLISIONE CON CAMBIO UTENSILE LINEARE -6|PLC|FAULT|[6] GRUPPO ASSI NON VALIDO -7|PLC|FAULT|[7] INVERTER 1 NON OK -8|PLC|FAULT|[8] INVERTER 2 NON OK -9|PLC|FAULT|[9] INVERTER MANDRINO SUPPLEMENTARE NON OK -10|PLC|FAULT|[10] SAVE ENERGY ATTIVO -11|PLC|FAULT|[11] [WD]SUPERATO NUMERO PEZZI MASSIMO CARICABILE SU TRANSFER -12|PLC|FAULT|[12] VERIFICA CONTATTORI NON OK -13|PLC|FAULT|[13] TIMEOUT COMUNICAZIONE XILOG -14|PLC|WARNING|[14] INTERVENTO MAGNETOTERMICI -15|PLC|FAULT|[15] PORTE PROTEZIONE APERTE -16|PLC|FAULT|[16] TAPPETO CONVOGLIA TRUCIOLI NON IN POSIZIONE -17|PLC|FAULT|[17] COLLISIONE RILEVATA DAL SIMULATORE -18|PLC|FAULT|[18] -19|PLC|FAULT|[19] FORATRICE NON IN POSIZIONE -20|PLC|WARNING|[20] STOP MACCHINA DA CODICI M SUPPLEMENTARI -21|PLC|WARNING|[21] M00 ATTIVO: START CICLO -22|PLC|WARNING|[22] BATTERIA SCARICA ENCODER ASSI YASKAWA -23|PLC|FAULT|[23] AZIONAMENTI ASSI XYZ... NON OK -24|PLC|FAULT|[24] AZIONAMENTI ASSI ROTATIVI NON OK -25|PLC|FAULT|[25] CNC NON OK -26|PLC|FAULT|[26] PRESSOSTATO ARIA INTERVENUTO -27|PLC|FAULT|[27] BATTERIA CNC NON CARICA -28|PLC|FAULT|[28] ERRORE CANOPEN RING 0 -29|PLC|FAULT|[29] ERRORE CANOPEN RING 1 -30|PLC|WARNING|[30] ABILITAZIONE BL/SBL UTENSILE MANDRINO 1 -31|PLC|WARNING|[31] ABILITAZIONE BL/SBL UTENSILE MANDRINO 2 -32|PLC|WARNING|[32] ABILITAZIONE BL/SBL UTENSILE MANDRINO SUPPLEMENTARE -33|PLC|FAULT|[33] CICLO ETICHETTATURA IN CORSO -34|PLC|FAULT|[34] ETICHETTATRICE NON PRONTA -35|PLC|FAULT|[35] ETICHETTATRICE NON IN POSIZIONE -36|PLC|FAULT|[36] ERRORE ETICHETTATRICE -37|PLC|FAULT|[37] SONDA TERMICA/VENTOLA MANDRINO 1 -38|PLC|FAULT|[38] SONDA TERMICA/VENTOLA MANDRINO 2 -39|PLC|FAULT|[39] SONDA TERMICA/VENTOLA MANDRINO SUPPLEMENTARE -40|PLC|FAULT|[40] INTERVENTO MAGNETOTERMICO GRUPPO LAMA -41|PLC|FAULT|[41] RICARICARE POMPA LUBRIFICAZIONE -42|PLC|FAULT|[42] LUBRIFICAZIONE ASSI NON OK -43|PLC|WARNING|[43] LUBRIFICAZIONE ASSI IN CORSO -44|PLC|WARNING|[44] RICHIESTA VUOTO/ATTREZZATURA -45|PLC|FAULT|[45] EMERGENZA CAUSA VUOTO ZONA 1 -46|PLC|FAULT|[46] EMERGENZA CAUSA VUOTO ZONA 2 -47|PLC|FAULT|[47] ASSI IN FINE CORSA -48|PLC|FAULT|[48] CUFFIA ESTERNA NON IN POSIZIONE -49|PLC|FAULT|[49] CUFFIA INTERNA NON IN POSIZIONE -50|PLC|FAULT|[50] CUFFIA PULIZIA PIANO NON IN POSIZIONE -51|PLC|FAULT|[51] EMERGENZA CAUSA VUOTO ZONA 3 -52|PLC|FAULT|[52] EMERGENZA CAUSA VUOTO ZONA 4 -53|PLC|WARNING|[53] ESEGUIRE RIFERIMENTO ASSI -54|PLC|FAULT|[54] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE 1 -55|PLC|FAULT|[55] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE 2 -56|PLC|FAULT|[56] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE MANDRINO SUPPLEMENTARE -57|PLC|FAULT|[57] ESEGUIRE RIFERIMENTO MAGAZZINO ESTERNO 1 -58|PLC|FAULT|[58] ESEGUIRE RIFERIMENTO NAVETTA HS -59|PLC|FAULT|[59] ESEGUIRE RIFERIMENTO PINZE ROBOT CELLA WD -60|PLC|FAULT|[60] CONVOGLIATORE TRUCIOLI NON OK -61|PLC|WARNING|[61] SERBATOIO LUBRIFICAZIONE CONVOGLIATORE TRUCIOLI VUOTO -62|PLC|FAULT|[62] ASSE X IN FINE CORSA -63|PLC|FAULT|[63] ASSE Y IN FINE CORSA -64|PLC|FAULT|[64] ASSE Z IN FINE CORSA -65|PLC|FAULT|[65] PALPATORE SYNCRO NON IN POSIZIONE -66|PLC|WARNING|[66] ALLINEAMENTO ASSI GANTRY IN CORSO -67|PLC|FAULT|[67] ASSE B IN FINE CORSA -68|PLC|FAULT|[68] ASSE C IN FINE CORSA -69|PLC|FAULT|[69] ASSE Y NON IN POSIZIONE -70|PLC|FAULT|[70] ESEGUIRE RIFERIMENTO PALPATORE SYNCRO -71|PLC|FAULT|[71] PERNO BLOCCAGGIO TAVOLO ELEVATORE NON IN POSIZIONE -72|PLC|FAULT|[72] FOTOCELLULA PRESENZA UTENSILE -73|PLC|FAULT|[73] MANDRINO 1 NON OK -74|PLC|FAULT|[74] MANDRINO 2 NON OK -75|PLC|FAULT|[75] MANDRINO SUPPLEMENTARE NON OK -76|PLC|FAULT|[76] FOTOCELLULA PRESENZA UTENSILE (CATENA) -77|PLC|FAULT|[77] ALLARME SENSORE ROTAZIONE MANDRINO 1 -78|PLC|FAULT|[78] ALLARME SENSORE ROTAZIONE MANDRINO 2 -79|PLC|FAULT|[79] ALLARME SENSORE ROTAZIONE MANDRINO SUPPLEMENTARE -80|PLC|FAULT|[80] CAMBIO UTENSILE TESTA 1(ONBOARD) NON IN POSIZIONE -81|PLC|FAULT|[81] CAMBIO UTENSILE MANDRINO SUPPLEMENTARE (ONBOARD) NON IN POSIZIONE -82|PLC|FAULT|[82] CAMBIO UTENSILE LINEARE NON IN POSIZIONE -83|PLC|FAULT|[83] CAMBIO UTENSILE HS NON IN POSIZIONE -84|PLC|FAULT|[84] [TM] NAVETTA TOOL MANAGEMENT NON IN POSIZIONE -85|PLC|FAULT|[85] [TM] LETTORE CHIP TOOL MANAGMENT NON IN POSIZIONE -86|PLC|FAULT|[86] [TM] LIBERARE PINZA DI CARICO TOOL MANAGMENT -87|PLC|FAULT|[87] [TM] COLLISIONE CON TOOL MANAGMENT -88|PLC|FAULT|[88] [TM] CARICARE UTENSILE SULLA PINZA DI CARICO DEL TOOL MANAGMENT -89|PLC|FAULT|[89] BANDELLA NON IN POSIZIONE -90|PLC|FAULT|[90] PANNELLO PRELEVATO FUORI ALLINEAMENTO -91|PLC|FAULT|[91] SCARICATORE NON IN POSIZIONE -92|PLC|FAULT|[92] SPONDE/BATTUTE DI SCARICO NON IN POSIZIONE -93|PLC|FAULT|[93] ZONA DI SCARICO OCCUPATA -94|PLC|FAULT|[94] VERIFICARE DIMENSIONI PILA -95|PLC|FAULT|[95] CARICARE NUOVA PILA -96|PLC|FAULT|[96] CARICATORE NON IN POSIZIONE -97|PLC|FAULT|[97] TAVOLO ELEVATORE NON OK -98|PLC|FAULT|[98] PANNELLO NON PRELEVATO DA TAVOLO ELEVATORE -99|PLC|FAULT|[99] FOTOCELLULA RIFERIMENTO PANNELLO NON OK -100|PLC|FAULT|[100] ALLARME CELLA WD -101|PLC|FAULT|[101] REFRIGERANTE MANDRINO 1 NON OK -102|PLC|FAULT|[102] REFRIGERANTE MANDRINO 2 NON OK -103|PLC|FAULT|[103] INVERTER NASTRO DI SCARICO NON OK -104|PLC|FAULT|[104] ARRESTO OPERATIVO: RESETTARE LE FOTOCELLULE DI SICUREZZA -105|PLC|WARNING|[105] C.UTENSILE LINEARE IN CORSO: ABBASSARE GLI INNALZATORI E RESETTARE LE FOTOCELLULE DI SICUREZZA -106|PLC|FAULT|[106] CARICO PANNELLO NON AMMESSO -107|PLC|FAULT|[107] BYPASS COLLISIONI ATTIVO -108|PLC|FAULT|[108] SPORTELLO CAMBIO UTENSILE LINEARE DESTRO NON IN POSIZIONE -109|PLC|FAULT|[109] VERIFICA FUNZIONAMENTO SICUREZZE -110|PLC|FAULT|[110] RESETTARE LE FOTOCELLULE DI SICUREZZA -111|PLC|FAULT|[111] INSERIMENTO UTENSILE NON OK -112|PLC|FAULT|[112] GUASTO MICRO CONTROLLO PEDANE -113|PLC|FAULT|[113] INSERIMENTO UTENSILE IN NAVETTA HS NON OK -114|PLC|WARNING|[114] TABELLA NON AGGIORNATA -115|PLC|FAULT|[115] MANDRINO 1 NON SBLOCCATO -116|PLC|FAULT|[116] MANDRINO SUPPLEMENTARE NON SBLOCCATO -117|PLC|FAULT|[117] CONTROLLARE CICLO CHIUSURA BORDO -118|PLC|WARNING|[118] PM: SETUP NON POSSIBILE ZONA 3 [Vuoto ON/Teste DW] -119|PLC|WARNING|[119] PM: SETUP NON POSSIBILE ZONA 4 [Vuoto ON/Teste DW] -120|PLC|WARNING|[120] UTENSILE SPECIALE: OPERAZIONE NON AMMESSA -121|PLC|FAULT|[121] ERRORE CICLO CHIUSURA BORDO -122|PLC|FAULT|[122] MAGAZZINO UTENSILE ESTERNO 1 NON IN POSIZIONE -123|PLC|FAULT|[123] SPORTELLO MAGAZZINO ESTERNO NON IN POSIZIONE -124|PLC|WARNING|[124] ERRATA PROGRAMMAZIONE -125|PLC|WARNING|[125] ERRORE UTENSILE TESTA 1 -126|PLC|WARNING|[126] ERRORE UTENSILE TESTA 2 -127|PLC|FAULT|[127] SPORTELLO CAMBIO UTENSILE LINEARE SINISTRO NON IN POSIZIONE -128|PLC|FAULT|[128] TIME OUT PIGNA MOBILE -129|PLC|WARNING|[129] CAMBIO MODALITA' MACCHINA (M103) -130|PLC|FAULT|[130] PORTE ARMADIO ELETTRICO APERTE -131|PLC|WARNING|[131] ESEGUIRE MANUTENZIONE CONDIZIONATORE ARMADIO ELETTRICO -132|PLC|FAULT|[132] AGGREGATO PRESSATORE/CONVOGLIATORE TRUCIOLI NON OK -133|PLC|FAULT|[133] SERBATOIO LUBROREFRIGERATORE UTENSILE VUOTO -134|PLC|WARNING|[134] BATTERIA SCARICA TASTATORE RADIO -135|PLC|FAULT|[135] RILEVATORE SPESSORE PEZZO NON IN POSIZIONE -136|PLC|FAULT|[136] CICLO TASTATURA NON OK -137|PLC|FAULT|[137] BATTUTE DI RIFERIMENTO ZONA 1 NON OK -138|PLC|FAULT|[138] BATTUTE DI RIFERIMENTO ZONA 2 NON OK -139|PLC|FAULT|[139] ASSI PRISMA BC NON IN POSIZIONE -140|PLC|FAULT|[140] AZIONAMENTI ASSI PRISMA BC NON OK -141|PLC|FAULT|[141] TASTATORE RADIO NON OK -142|PLC|FAULT|[142] -143|PLC|FAULT|[143] -144|PLC|FAULT|[144] -145|PLC|WARNING|[145] RIAGGANCIO MANDRINO IN CORSO -146|PLC|WARNING|[146] RIAGGANCIO MANDRINO FALLITO -147|PLC|WARNING|[147] RIAGGANCIO MANDRINO AVVENUTO -148|PLC|FAULT|[148] INTERVENTO FUNE DI SICUREZZA -149|PLC|FAULT|[149] INTERVENTO OVERSPEED ASSI -150|PLC|FAULT|[150] INTERVENTO BUMPERS -151|PLC|WARNING|[151] MACCHINA SPENTA -152|PLC|FAULT|[152] EMERGENZA PREMUTA -153|PLC|WARNING|[153] PM: SETUP NON POSSIBILE ZONA 1 [VUOTO ON / TESTE DW] -154|PLC|WARNING|[154] PM: SETUP NON POSSIBILE ZONA 2 [VUOTO ON / TESTE DW] -155|PLC|WARNING|[155] BARRA MOBILE CENTRALE 1 NON IN POSIZIONE -156|PLC|WARNING|[156] BARRA MOBILE CENTRALE 2 NON IN POSIZIONE -157|PLC|WARNING|[157] PM: COLLISIONE BATTUTE CON SUPPORTI VENTOSE / MORSETTI -158|PLC|WARNING|[158] CUFFIA MANDRINO SUPPLEMENTARE NON IN POSIZIONE -159|PLC|WARNING|[159] TESTA GRUPPO MANDRINO SUPPLEMENTARE NON IN POSIZIONE -160|PLC|WARNING|[160] TESTA GRUPPO LAMA NON IN POSIZIONE -161|PLC|WARNING|[161] CICLO DI CARICO IN CORSO -162|PLC|WARNING|[162] CICLO DI SCARICO IN CORSO -163|PLC|WARNING|[163] BATTUTE DI CARICO NON IN POSIZIONE ZONA 1 -164|PLC|WARNING|[164] ATTESA ROBOT IN POSIZIONE -165|PLC|WARNING|[165] INVERTER GUASTO POMPA VUOTO 1 (MASTER) -166|PLC|WARNING|[166] INVERTER GUASTO POMPA VUOTO 2 (SLAVE) -167|PLC|WARNING|[167] BATTUTE DI CARICO NON IN POSIZIONE ZONA 2 -168|PLC|WARNING|[168] SALITA CUFFIA DA OPERATORE -169|PLC|WARNING|[169] TRAVERSA 1 NON IN POSIZIONE -170|PLC|WARNING|[170] TRAVERSA 2 NON IN POSIZIONE -171|PLC|WARNING|[171] TRAVERSA 3 NON IN POSIZIONE -172|PLC|WARNING|[172] TRAVERSA 4 NON IN POSIZIONE -173|PLC|WARNING|[173] TRAVERSA 5 NON IN POSIZIONE -174|PLC|WARNING|[174] TRAVERSA 6 NON IN POSIZIONE -175|PLC|WARNING|[175] TRAVERSA 7 NON IN POSIZIONE -176|PLC|WARNING|[176] TRAVERSA 8 NON IN POSIZIONE -177|PLC|WARNING|[177] TRAVERSA 9 NON IN POSIZIONE -178|PLC|WARNING|[178] TRAVERSA 10 NON IN POSIZIONE -179|PLC|WARNING|[179] TRAVERSA 11 NON IN POSIZIONE -180|PLC|WARNING|[180] TRAVERSA 12 NON IN POSIZIONE -181|PLC|WARNING|[181] SOSTITUZIONE VENTOSE IN CORSO AREA 1 -182|PLC|WARNING|[182] SOSTITUZIONE VENTOSE IN CORSO AREA 2 -183|PLC|FAULT|[183] BATTUTE DI RIFERIMENTO ZONA 3 NON OK -184|PLC|FAULT|[184] BATTUTE DI RIFERIMENTO ZONA 4 NON OK -185|PLC|FAULT|[185] [BRC] GR5: GRUPPO FUSI ORIZZONTALI NON IN POSIZIONE (fori spine) -186|PLC|FAULT|[186] [BRC] GR6: GRUPPO FRESA VERTICALE NON IN POSIZIONE -187|PLC|FAULT|[187] [BRC] GR7: GRUPPO FRESA ORIZZONTALE NON IN POSIZIONE -188|PLC|FAULT|[188] [BRC] GR8: GRUPPO LAMA NON IN POSIZIONE -189|PLC|FAULT|[189] [BRC] ATTESA INNESTO PER ROTAZIONE GRUPPO LAMA -190|PLC|FAULT|[190] SELETTORI CONTROSAGOMA NON OK [AREA UNICA] -191|PLC|FAULT|[191] BATTUTE DI RIFERIMENTO BARRA 1 NON OK -192|PLC|FAULT|[192] BATTUTE DI RIFERIMENTO BARRA 2 NON OK -193|PLC|FAULT|[193] BATTUTE DI RIFERIMENTO BARRA 3 NON OK -194|PLC|FAULT|[194] BATTUTE DI RIFERIMENTO BARRA 4 NON OK -195|PLC|FAULT|[195] BATTUTE DI RIFERIMENTO BARRA 5 NON OK -196|PLC|FAULT|[196] BATTUTE DI RIFERIMENTO BARRA 6 NON OK -197|PLC|FAULT|[197] BATTUTE DI RIFERIMENTO BARRA 7 NON OK -198|PLC|FAULT|[198] BATTUTE DI RIFERIMENTO BARRA 8 NON OK -199|PLC|FAULT|[199] BATTUTE DI RIFERIMENTO BARRA 9 NON OK -200|PLC|FAULT|[200] BATTUTE DI RIFERIMENTO BARRA 10 NON OK -201|PLC|FAULT|[201] BATTUTE DI RIFERIMENTO BARRA 11 NON OK -202|PLC|FAULT|[202] BATTUTE DI RIFERIMENTO BARRA 12 NON OK -203|PLC|FAULT|[203] BATTUTE DI RIFERIMENTO BARRA FISSA SX NON OK -204|PLC|FAULT|[204] BATTUTE DI RIFERIMENTO BARRA FISSA DX NON OK -205|PLC|FAULT|[205] BASI NON BLOCCATE ZONA 1 -206|PLC|FAULT|[206] BASI NON BLOCCATE ZONA 2 -207|PLC|FAULT|[207] BASI NON BLOCCATE ZONA 3 -208|PLC|FAULT|[208] BASI NON BLOCCATE ZONA 4 -209|PLC|WARNING|[209] SOSTITUZIONE VENTOSE IN CORSO AREA 3 -210|PLC|WARNING|[210] SOSTITUZIONE VENTOSE IN CORSO AREA 4 -211|PLC|FAULT|[211] [BORDATORE POWER] ATTESA GRUPPO A BORDARE ALTO -212|PLC|FAULT|[212] [BORDATORE POWER] ATTESA GRUPPO A BORDARE BASSO -213|PLC|FAULT|[213] [BORDATORE POWER] ATTESA GRUPPO A BORDARE POSIZ. CAMBIO RULLO -214|PLC|FAULT|[214] [BORDATORE POWER] ATTESA PIANO CARICAMENTO BORDI ALTO -215|PLC|FAULT|[215] [BORDATORE POWER] ATTESA PIANO CARICAMENTO BORDI BASSO -216|PLC|FAULT|[216] [BORDATORE POWER] MANCATA LETTURA BORDO GIUNZIONE -217|PLC|FAULT|[217] [BORDATORE POWER] ERRORE BORDO SU FOTOCELLULA DI CARICO -218|PLC|FAULT|[218] VASCA COLLA NON IN TEMPERATURA -219|PLC|FAULT|[219] [BORDATORE POWER] ASSENZA BORDO IN MULTIROTOLO -220|PLC|FAULT|[220] [BORDATORE POWER] ATTESA CICLO CARICO COLLA DA PREFUSORE -221|PLC|FAULT|[221] [BORDATORE POWER] MANCATO TAGLIO TRANCIA MAGAZZINO BORDI -222|PLC|FAULT|[222] [BORDATORE POWER] ATTESA CARICO COLLA DA PREFUSORE -223|PLC|FAULT|[223] [BORDATORE POWER] ANOMALIA SENSORI CILINDRO TESTA A BORDARE -224|PLC|FAULT|[224] SENSORE TESTA A BORDARE IN COLLISIONE -225|PLC|FAULT|[225] [BORDATORE POWER] TIMEOUT INTESTATURA BORDO TESTA A BORDARE -226|PLC|FAULT|[226] INTERVENTO TERMICI VASCA COLLA -227|PLC|FAULT|[227] INTERVENTO TERMICI PREFUSORE -228|PLC|FAULT|[228] INTERVENTO TERMICI LAMPADE ONDE CORTE -229|PLC|FAULT|[229] ESEGUIRE RIFERIMENTO MOT. ALTEZZA BORDO TESTA B. -230|PLC|FAULT|[230] ESEGUIRE RIFERIMENTO MOT. ALTEZZA BORDO MAGAZZINO B. -231|PLC|FAULT|[231] ESEGUIRE RIFERIMENTO MOT. CAMBIO RULLO PRESSIONE -232|PLC|FAULT|[232] TIMEOUT SENSORE CHIUSURA CILINDRO PREFUSORE -233|PLC|FAULT|[233] ESEGUIRE TARATURA TRAVERSE/VENTOSE -234|PLC|FAULT|[234] VENTOSE NON BLOCCATE AREA 1 -235|PLC|FAULT|[235] VENTOSE NON BLOCCATE AREA 2 -236|PLC|WARNING|[236] ATTESA SBLOCCO VENTOSA -237|PLC|WARNING|[237] ATTESA BLOCCO VENTOSA -238|PLC|WARNING|[238] RIMUOVERE VENTOSA: START CICLO -239|PLC|WARNING|[239] INSERIRE VENTOSA: START CICLO -240|PLC|FAULT|[240] ANOMALIA FOTOCELLULA MAGAZZINO BORDI -241|PLC|WARNING|[241] BARRA 1 -242|PLC|WARNING|[242] BARRA 2 -243|PLC|WARNING|[243] BARRA 3 -244|PLC|WARNING|[244] BARRA 4 -245|PLC|WARNING|[245] BARRA 5 -246|PLC|WARNING|[246] BARRA 6 -247|PLC|WARNING|[247] BARRA 7 -248|PLC|WARNING|[248] BARRA 8 -249|PLC|WARNING|[249] BARRA 9 -250|PLC|WARNING|[250] BARRA 10 -251|PLC|WARNING|[251] BARRA 11 -252|PLC|WARNING|[252] BARRA 12 -253|PLC|WARNING|[253] RIMUOVERE/INSERIRE VENTOSA COME DA GRAFICA SU AREA 1: START CICLO -254|PLC|WARNING|[254] RIMUOVERE/INSERIRE VENTOSA COME DA GRAFICA SU AREA 2: START CICLO -255|PLC|FAULT|[255] PORTE PROTEZIONE SBLOCCATE -256|PLC|FAULT|[256] ERRORE MODULO ZERO SPEED MANDRINO -257|PLC|FAULT|[257] INTESTATORE NON IN POSIZIONE -258|PLC|FAULT|[258] INTESTATORE 92 VUOTO -259|PLC|FAULT|[259] INTESTATORE 93 VUOTO -260|PLC|FAULT|[260] LIVELLO COLLA BASSO B.BASIC -261|PLC|FAULT|[261] [WD]EMERGENZA TRANSFER PREMUTA -262|PLC|FAULT|[262] [WD]INTERVENTO MAGNETOTERMICI TRANSFER -263|PLC|FAULT|[263] [WD]PORTE ARMADIO ELETTRICO TRANSFER APERTE -264|PLC|FAULT|[264] [WD]SVUOTARE TRANSFER -265|PLC|FAULT|[265] [WD]PEZZO IN ZONA DI SCARICO -266|PLC|FAULT|[266] [WD]ATTESA ROBOT 1 IN POSIZIONE -267|PLC|FAULT|[267] [WD]ATTESA ROBOT 2 IN POSIZIONE -268|PLC|FAULT|[268] [WD]SVUOTARE RULLIERE -269|PLC|FAULT|[269] [WD]DIMENSIONI PEZZO NON OK -270|PLC|FAULT|[270] [WD]SVUOTARE PIANO MACCHINA E PINZE ROBOT -271|PLC|FAULT|[271] [WD]PINZA ROBOT 1 NON IN POSIZIONE -272|PLC|FAULT|[272] [WD]PINZA ROBOT 2 NON IN POSIZIONE -273|PLC|FAULT|[273] MORSETTI ZONA 1 ALTI PNEUMATICAMENTE -274|PLC|FAULT|[274] MORSETTI ZONA 2 ALTI PNEUMATICAMENTE -275|PLC|FAULT|[275] EMERGENZA CAUSA MORSETTI ZONA 1 -276|PLC|FAULT|[276] EMERGENZA CAUSA MORSETTI ZONA 2 +000001|PLC|FAULT|[1] MANDRINO 1 NON BLOCCATO +000002|PLC|FAULT|[2] MANDRINO 2 NON BLOCCATO +000003|PLC|FAULT|[3] MANDRINO SUPPLEMENTARE NON BLOCCATO +000004|PLC|FAULT|[4] ZONA DI COLLISIONE CON CAMBIO UTENSILE ESTERNO +000005|PLC|FAULT|[5] ZONA DI COLLISIONE CON CAMBIO UTENSILE LINEARE +000006|PLC|FAULT|[6] GRUPPO ASSI NON VALIDO +000007|PLC|FAULT|[7] INVERTER 1 NON OK +000008|PLC|FAULT|[8] INVERTER 2 NON OK +000009|PLC|FAULT|[9] INVERTER MANDRINO SUPPLEMENTARE NON OK +0000010|PLC|FAULT|[10] SAVE ENERGY ATTIVO +0000011|PLC|FAULT|[11] B,[WD] SUPERATO NUMERO PEZZI MASSIMO CARICABILE SU TRANSFER +0000012|PLC|FAULT|[12] VERIFICA CONTATTORI NON OK +0000013|PLC|FAULT|[13] TIMEOUT COMUNICAZIONE XILOG +0000014|PLC|WARNING|[14] INTERVENTO MAGNETOTERMICI +0000015|PLC|FAULT|[15] PORTE PROTEZIONE APERTE +0000016|PLC|FAULT|[16] TAPPETO CONVOGLIA TRUCIOLI NON IN POSIZIONE +0000017|PLC|FAULT|[17] COLLISIONE RILEVATA DAL SIMULATORE +0000018|PLC|FAULT|[18] BUMPER MOBILE NON IN POSIZIONE +0000019|PLC|FAULT|[19] FORATRICE NON IN POSIZIONE +0000020|PLC|WARNING|[20] STOP MACCHINA DA CODICI M SUPPLEMENTARI +0000021|PLC|WARNING|[21] M00 ATTIVO: START CICLO +0000022|PLC|WARNING|[22] BATTERIA SCARICA ENCODER ASSI YASKAWA +0000023|PLC|FAULT|[23] AZIONAMENTI ASSI XYZ... NON OK +0000024|PLC|FAULT|[24] AZIONAMENTI ASSI ROTATIVI NON OK +0000025|PLC|FAULT|[25] CNC NON OK +0000026|PLC|FAULT|[26] PRESSOSTATO ARIA INTERVENUTO +0000027|PLC|FAULT|[27] BATTERIA CNC NON CARICA +0000028|PLC|FAULT|[28] ERRORE CANOPEN RING 0 +0000029|PLC|FAULT|[29] ERRORE CANOPEN RING 1 +0000030|PLC|WARNING|[30] ABILITAZIONE BL/SBL UTENSILE MANDRINO 1 +0000031|PLC|WARNING|[31] ABILITAZIONE BL/SBL UTENSILE MANDRINO 2 +0000032|PLC|WARNING|[32] ABILITAZIONE BL/SBL UTENSILE MANDRINO SUPPLEMENTARE +0000033|PLC|WARNING|[33] CICLO ETICHETTATURA IN CORSO +0000034|PLC|FAULT|[34] ETICHETTATRICE NON PRONTA +0000035|PLC|FAULT|[35] ETICHETTATRICE NON IN POSIZIONE +0000036|PLC|FAULT|[36] ERRORE ETICHETTATRICE +0000037|PLC|FAULT|[37] SONDA TERMICA/VENTOLA MANDRINO 1 +0000038|PLC|FAULT|[38] SONDA TERMICA/VENTOLA MANDRINO 2 +0000039|PLC|FAULT|[39] SONDA TERMICA/VENTOLA MANDRINO SUPPLEMENTARE +0000040|PLC|FAULT|[40] INTERVENTO MAGNETOTERMICO GRUPPO LAMA +0000041|PLC|FAULT|[41] RICARICARE POMPA LUBRIFICAZIONE +0000042|PLC|FAULT|[42] LUBRIFICAZIONE ASSI NON OK +0000043|PLC|WARNING|[43] LUBRIFICAZIONE ASSI IN CORSO +0000044|PLC|WARNING|[44] RICHIESTA VUOTO/ATTREZZATURA +0000045|PLC|FAULT|[45] EMERGENZA CAUSA VUOTO ZONA 1 +0000046|PLC|FAULT|[46] EMERGENZA CAUSA VUOTO ZONA 2 +0000047|PLC|FAULT|[47] ASSI IN FINE CORSA +0000048|PLC|FAULT|[48] CUFFIA ESTERNA NON IN POSIZIONE +0000049|PLC|FAULT|[49] CUFFIA INTERNA NON IN POSIZIONE +0000050|PLC|FAULT|[50] CUFFIA PULIZIA PIANO NON IN POSIZIONE +0000051|PLC|FAULT|[51] EMERGENZA CAUSA VUOTO ZONA 3 +0000052|PLC|FAULT|[52] EMERGENZA CAUSA VUOTO ZONA 4 +0000053|PLC|WARNING|[53] ESEGUIRE RIFERIMENTO ASSI +0000054|PLC|FAULT|[54] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE 1 +0000055|PLC|FAULT|[55] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE 2 +0000056|PLC|FAULT|[56] ESEGUIRE RIFERIMENTO MAGAZZINO UTENSILE MANDRINO SUPPLEMENTARE +0000057|PLC|FAULT|[57] ESEGUIRE RIFERIMENTO MAGAZZINO ESTERNO 1 +0000058|PLC|FAULT|[58] ESEGUIRE RIFERIMENTO NAVETTA HS +0000059|PLC|FAULT|[59] ESEGUIRE RIFERIMENTO PINZE ROBOT CELLA WD +0000060|PLC|FAULT|[60] CONVOGLIATORE TRUCIOLI NON OK +0000061|PLC|WARNING|[61] SERBATOIO LUBRIFICAZIONE CONVOGLIATORE TRUCIOLI VUOTO +0000062|PLC|FAULT|[62] ASSE X IN FINE CORSA +0000063|PLC|FAULT|[63] ASSE Y IN FINE CORSA +0000064|PLC|FAULT|[64] ASSE Z IN FINE CORSA +0000065|PLC|FAULT|[65] PALPATORE SYNCRO NON IN POSIZIONE +0000066|PLC|WARNING|[66] ALLINEAMENTO ASSI GANTRY IN CORSO +0000067|PLC|FAULT|[67] ASSE B IN FINE CORSA +0000068|PLC|FAULT|[68] ASSE C IN FINE CORSA +0000069|PLC|FAULT|[69] ASSE Y NON IN POSIZIONE +0000070|PLC|FAULT|[70] ESEGUIRE RIFERIMENTO PALPATORE SYNCRO +0000071|PLC|FAULT|[71] PERNO BLOCCAGGIO TAVOLO ELEVATORE NON IN POSIZIONE +0000072|PLC|FAULT|[72] FOTOCELLULA PRESENZA UTENSILE +0000073|PLC|FAULT|[73] MANDRINO 1 NON OK +0000074|PLC|FAULT|[74] MANDRINO 2 NON OK +0000075|PLC|FAULT|[75] MANDRINO SUPPLEMENTARE NON OK +0000076|PLC|FAULT|[76] FOTOCELLULA PRESENZA UTENSILE (CATENA) +0000077|PLC|FAULT|[77] ALLARME SENSORE ROTAZIONE MANDRINO 1 +0000078|PLC|FAULT|[78] ALLARME SENSORE ROTAZIONE MANDRINO 2 +0000079|PLC|FAULT|[79] ALLARME SENSORE ROTAZIONE MANDRINO SUPPLEMENTARE +0000080|PLC|FAULT|[80] CAMBIO UTENSILE TESTA 1(ONBOARD) NON IN POSIZIONE +0000081|PLC|FAULT|[81] CAMBIO UTENSILE MANDRINO SUPPLEMENTARE (ONBOARD) NON IN POSIZIONE +0000082|PLC|FAULT|[82] CAMBIO UTENSILE LINEARE NON IN POSIZIONE +0000083|PLC|FAULT|[83] CAMBIO UTENSILE HS NON IN POSIZIONE +0000084|PLC|FAULT|[84] [TM] NAVETTA TOOL MANAGEMENT NON IN POSIZIONE +0000085|PLC|FAULT|[85] [TM] LETTORE CHIP TOOL MANAGMENT NON IN POSIZIONE +0000086|PLC|FAULT|[86] [TM] LIBERARE PINZA DI CARICO TOOL MANAGMENT +0000087|PLC|FAULT|[87] [TM] COLLISIONE CON TOOL MANAGMENT +0000088|PLC|FAULT|[88] [TM] CARICARE UTENSILE SULLA PINZA DI CARICO DEL TOOL MANAGMENT +0000089|PLC|FAULT|[89] BANDELLA NON IN POSIZIONE +0000090|PLC|FAULT|[90] PANNELLO PRELEVATO FUORI ALLINEAMENTO +0000091|PLC|FAULT|[91] SCARICATORE NON IN POSIZIONE +0000092|PLC|FAULT|[92] SPONDE/BATTUTE DI SCARICO NON IN POSIZIONE +0000093|PLC|FAULT|[93] ZONA DI SCARICO OCCUPATA +0000094|PLC|FAULT|[94] VERIFICARE DIMENSIONI PILA +0000095|PLC|FAULT|[95] CARICARE NUOVA PILA +0000096|PLC|FAULT|[96] CARICATORE NON IN POSIZIONE +0000097|PLC|FAULT|[97] TAVOLO ELEVATORE NON OK +0000098|PLC|FAULT|[98] PANNELLO NON PRELEVATO DA TAVOLO ELEVATORE +0000099|PLC|FAULT|[99] FOTOCELLULA RIFERIMENTO PANNELLO NON OK +0000100|PLC|FAULT|[100] ALLARME CELLA WD +0000101|PLC|FAULT|[101] REFRIGERANTE MANDRINO 1 NON OK +0000102|PLC|FAULT|[102] REFRIGERANTE MANDRINO 2 NON OK +0000103|PLC|FAULT|[103] INVERTER NASTRO DI SCARICO NON OK +0000104|PLC|FAULT|[104] ARRESTO OPERATIVO: RESETTARE LE FOTOCELLULE DI SICUREZZA +0000105|PLC|WARNING|[105] C.UTENSILE LINEARE IN CORSO: ABBASSARE GLI INNALZATORI E RESETTARE LE FOTOCELLULE DI SICUREZZA +0000106|PLC|FAULT|[106] CARICO PANNELLO NON AMMESSO +0000107|PLC|FAULT|[107] BYPASS COLLISIONI ATTIVO +0000108|PLC|FAULT|[108] SPORTELLO CAMBIO UTENSILE LINEARE DESTRO NON IN POSIZIONE +0000109|PLC|FAULT|[109] VERIFICA FUNZIONAMENTO SICUREZZE +0000110|PLC|FAULT|[110] RESETTARE LE FOTOCELLULE DI SICUREZZA +0000111|PLC|FAULT|[111] INSERIMENTO UTENSILE NON OK +0000112|PLC|FAULT|[112] GUASTO MICRO CONTROLLO PEDANE +0000113|PLC|FAULT|[113] INSERIMENTO UTENSILE IN NAVETTA HS NON OK +0000114|PLC|WARNING|[114] TABELLA NON AGGIORNATA +0000115|PLC|FAULT|[115] MANDRINO 1 NON SBLOCCATO +0000116|PLC|FAULT|[116] MANDRINO SUPPLEMENTARE NON SBLOCCATO +0000117|PLC|FAULT|[117] CONTROLLARE CICLO CHIUSURA BORDO +0000118|PLC|WARNING|[118] PM: SETUP NON POSSIBILE ZONA 3 [Vuoto ON/Teste DW] +0000119|PLC|WARNING|[119] PM: SETUP NON POSSIBILE ZONA 4 [Vuoto ON/Teste DW] +0000120|PLC|WARNING|[120] UTENSILE SPECIALE: OPERAZIONE NON AMMESSA +0000121|PLC|FAULT|[121] ERRORE CICLO CHIUSURA BORDO +0000122|PLC|FAULT|[122] MAGAZZINO UTENSILE ESTERNO 1 NON IN POSIZIONE +0000123|PLC|FAULT|[123] SPORTELLO MAGAZZINO ESTERNO NON IN POSIZIONE +0000124|PLC|WARNING|[124] ERRATA PROGRAMMAZIONE +0000125|PLC|WARNING|[125] ERRORE UTENSILE TESTA 1 +0000126|PLC|WARNING|[126] ERRORE UTENSILE TESTA 2 +0000127|PLC|FAULT|[127] SPORTELLO CAMBIO UTENSILE LINEARE SINISTRO NON IN POSIZIONE +0000128|PLC|FAULT|[128] TIME OUT PIGNA MOBILE +0000129|PLC|WARNING|[129] CAMBIO MODALITA' MACCHINA (M103) +0000130|PLC|FAULT|[130] PORTE ARMADIO ELETTRICO APERTE +0000131|PLC|WARNING|[131] ESEGUIRE MANUTENZIONE CONDIZIONATORE ARMADIO ELETTRICO +0000132|PLC|FAULT|[132] AGGREGATO PRESSATORE/CONVOGLIATORE TRUCIOLI NON OK +0000133|PLC|FAULT|[133] SERBATOIO LUBROREFRIGERATORE UTENSILE VUOTO +0000134|PLC|WARNING|[134] BATTERIA SCARICA TASTATORE RADIO +0000135|PLC|FAULT|[135] RILEVATORE SPESSORE PEZZO NON IN POSIZIONE +0000136|PLC|FAULT|[136] CICLO TASTATURA NON OK +0000137|PLC|FAULT|[137] BATTUTE DI RIFERIMENTO ZONA 1 NON OK +0000138|PLC|FAULT|[138] BATTUTE DI RIFERIMENTO ZONA 2 NON OK +0000139|PLC|FAULT|[139] ASSI PRISMA BC NON IN POSIZIONE +0000140|PLC|FAULT|[140] AZIONAMENTI ASSI PRISMA BC NON OK +0000141|PLC|FAULT|[141] TASTATORE RADIO NON OK +0000142|PLC|FAULT|[142] AVVICINATORI NON IN POSIZIONE +0000143|PLC|FAULT|[143] AVVICINAMENTO PANNELLO NON AVVENUTO +0000144|PLC|FAULT|[144] PRESA PANNELLO NON OK +0000145|PLC|WARNING|[145] RIAGGANCIO MANDRINO IN CORSO +0000146|PLC|WARNING|[146] RIAGGANCIO MANDRINO FALLITO +0000147|PLC|WARNING|[147] RIAGGANCIO MANDRINO AVVENUTO +0000148|PLC|FAULT|[148] INTERVENTO FUNE DI SICUREZZA +0000149|PLC|FAULT|[149] INTERVENTO OVERSPEED ASSI +0000150|PLC|FAULT|[150] INTERVENTO BUMPERS +0000151|PLC|WARNING|[151] MACCHINA SPENTA +0000152|PLC|FAULT|[152] EMERGENZA PREMUTA +0000153|PLC|WARNING|[153] PM: SETUP NON POSSIBILE ZONA 1 [VUOTO ON / TESTE DW] +0000154|PLC|WARNING|[154] PM: SETUP NON POSSIBILE ZONA 2 [VUOTO ON / TESTE DW] +0000155|PLC|WARNING|[155] BARRA MOBILE CENTRALE 1 NON IN POSIZIONE +0000156|PLC|WARNING|[156] BARRA MOBILE CENTRALE 2 NON IN POSIZIONE +0000157|PLC|WARNING|[157] PM: COLLISIONE BATTUTE CON SUPPORTI VENTOSE / MORSETTI +0000158|PLC|WARNING|[158] CUFFIA MANDRINO SUPPLEMENTARE NON IN POSIZIONE +0000159|PLC|WARNING|[159] TESTA GRUPPO MANDRINO SUPPLEMENTARE NON IN POSIZIONE +0000160|PLC|WARNING|[160] TESTA GRUPPO LAMA NON IN POSIZIONE +0000161|PLC|WARNING|[161] CICLO DI CARICO IN CORSO +0000162|PLC|WARNING|[162] CICLO DI SCARICO IN CORSO +0000163|PLC|WARNING|[163] BATTUTE DI CARICO NON IN POSIZIONE ZONA 1 +0000164|PLC|WARNING|[164] ATTESA ROBOT IN POSIZIONE +0000165|PLC|WARNING|[165] INVERTER GUASTO POMPA VUOTO 1 (MASTER) +0000166|PLC|WARNING|[166] INVERTER GUASTO POMPA VUOTO 2 (SLAVE) +0000167|PLC|WARNING|[167] BATTUTE DI CARICO NON IN POSIZIONE ZONA 2 +0000168|PLC|WARNING|[168] SALITA CUFFIA DA OPERATORE +0000169|PLC|WARNING|[169] TRAVERSA 1 NON IN POSIZIONE +0000170|PLC|WARNING|[170] TRAVERSA 2 NON IN POSIZIONE +0000171|PLC|WARNING|[171] TRAVERSA 3 NON IN POSIZIONE +0000172|PLC|WARNING|[172] TRAVERSA 4 NON IN POSIZIONE +0000173|PLC|WARNING|[173] TRAVERSA 5 NON IN POSIZIONE +0000174|PLC|WARNING|[174] TRAVERSA 6 NON IN POSIZIONE +0000175|PLC|WARNING|[175] TRAVERSA 7 NON IN POSIZIONE +0000176|PLC|WARNING|[176] TRAVERSA 8 NON IN POSIZIONE +0000177|PLC|WARNING|[177] TRAVERSA 9 NON IN POSIZIONE +0000178|PLC|WARNING|[178] TRAVERSA 10 NON IN POSIZIONE +0000179|PLC|WARNING|[179] TRAVERSA 11 NON IN POSIZIONE +0000180|PLC|WARNING|[180] TRAVERSA 12 NON IN POSIZIONE +0000181|PLC|WARNING|[181] SOSTITUZIONE VENTOSE IN CORSO AREA 1 +0000182|PLC|WARNING|[182] SOSTITUZIONE VENTOSE IN CORSO AREA 2 +0000183|PLC|FAULT|[183] BATTUTE DI RIFERIMENTO ZONA 3 NON OK +0000184|PLC|FAULT|[184] BATTUTE DI RIFERIMENTO ZONA 4 NON OK +0000185|PLC|FAULT|[185] [BRC] GR5: GRUPPO FUSI ORIZZONTALI NON IN POSIZIONE (fori spine) +0000186|PLC|FAULT|[186] [BRC] GR6: GRUPPO FRESA VERTICALE NON IN POSIZIONE +0000187|PLC|FAULT|[187] [BRC] GR7: GRUPPO FRESA ORIZZONTALE NON IN POSIZIONE +0000188|PLC|FAULT|[188] [BRC] GR8: GRUPPO LAMA NON IN POSIZIONE +0000189|PLC|FAULT|[189] [BRC] ATTESA INNESTO PER ROTAZIONE GRUPPO LAMA +0000190|PLC|FAULT|[190] SELETTORI CONTROSAGOMA NON OK [AREA UNICA] +0000191|PLC|FAULT|[191] BATTUTE DI RIFERIMENTO BARRA 1 NON OK +0000192|PLC|FAULT|[192] BATTUTE DI RIFERIMENTO BARRA 2 NON OK +0000193|PLC|FAULT|[193] BATTUTE DI RIFERIMENTO BARRA 3 NON OK +0000194|PLC|FAULT|[194] BATTUTE DI RIFERIMENTO BARRA 4 NON OK +0000195|PLC|FAULT|[195] BATTUTE DI RIFERIMENTO BARRA 5 NON OK +0000196|PLC|FAULT|[196] BATTUTE DI RIFERIMENTO BARRA 6 NON OK +0000197|PLC|FAULT|[197] BATTUTE DI RIFERIMENTO BARRA 7 NON OK +0000198|PLC|FAULT|[198] BATTUTE DI RIFERIMENTO BARRA 8 NON OK +0000199|PLC|FAULT|[199] BATTUTE DI RIFERIMENTO BARRA 9 NON OK +0000200|PLC|FAULT|[200] BATTUTE DI RIFERIMENTO BARRA 10 NON OK +0000201|PLC|FAULT|[201] BATTUTE DI RIFERIMENTO BARRA 11 NON OK +0000202|PLC|FAULT|[202] BATTUTE DI RIFERIMENTO BARRA 12 NON OK +0000203|PLC|FAULT|[203] BATTUTE DI RIFERIMENTO BARRA FISSA SX NON OK +0000204|PLC|FAULT|[204] BATTUTE DI RIFERIMENTO BARRA FISSA DX NON OK +0000205|PLC|FAULT|[205] BASI NON BLOCCATE ZONA 1 +0000206|PLC|FAULT|[206] BASI NON BLOCCATE ZONA 2 +0000207|PLC|FAULT|[207] BASI NON BLOCCATE ZONA 3 +0000208|PLC|FAULT|[208] BASI NON BLOCCATE ZONA 4 +0000209|PLC|WARNING|[209] SOSTITUZIONE VENTOSE IN CORSO AREA 3 +0000210|PLC|WARNING|[210] SOSTITUZIONE VENTOSE IN CORSO AREA 4 +0000211|PLC|FAULT|[211] [BORDATORE POWER] ATTESA GRUPPO A BORDARE ALTO +0000212|PLC|FAULT|[212] [BORDATORE POWER] ATTESA GRUPPO A BORDARE BASSO +0000213|PLC|FAULT|[213] [BORDATORE POWER] ATTESA GRUPPO A BORDARE POSIZ. CAMBIO RULLO +0000214|PLC|FAULT|[214] [BORDATORE POWER] ATTESA PIANO CARICAMENTO BORDI ALTO +0000215|PLC|FAULT|[215] [BORDATORE POWER] ATTESA PIANO CARICAMENTO BORDI BASSO +0000216|PLC|FAULT|[216] [BORDATORE POWER] MANCATA LETTURA BORDO GIUNZIONE +0000217|PLC|FAULT|[217] [BORDATORE POWER] ERRORE BORDO SU FOTOCELLULA DI CARICO +0000218|PLC|FAULT|[218] VASCA COLLA NON IN TEMPERATURA +0000219|PLC|FAULT|[219] [BORDATORE POWER] ASSENZA BORDO IN MULTIROTOLO +0000220|PLC|FAULT|[220] [BORDATORE POWER] ATTESA CICLO CARICO COLLA DA PREFUSORE +0000221|PLC|FAULT|[221] [BORDATORE POWER] MANCATO TAGLIO TRANCIA MAGAZZINO BORDI +0000222|PLC|FAULT|[222] [BORDATORE POWER] ATTESA CARICO COLLA DA PREFUSORE +0000223|PLC|FAULT|[223] [BORDATORE POWER] ANOMALIA SENSORI CILINDRO TESTA A BORDARE +0000224|PLC|FAULT|[224] SENSORE TESTA A BORDARE IN COLLISIONE +0000225|PLC|FAULT|[225] [BORDATORE POWER] TIMEOUT INTESTATURA BORDO TESTA A BORDARE +0000226|PLC|FAULT|[226] INTERVENTO TERMICI VASCA COLLA +0000227|PLC|FAULT|[227] INTERVENTO TERMICI PREFUSORE +0000228|PLC|FAULT|[228] INTERVENTO TERMICI LAMPADE ONDE CORTE +0000229|PLC|FAULT|[229] ESEGUIRE RIFERIMENTO MOT. ALTEZZA BORDO TESTA B. +0000230|PLC|FAULT|[230] ESEGUIRE RIFERIMENTO MOT. ALTEZZA BORDO MAGAZZINO B. +0000231|PLC|FAULT|[231] ESEGUIRE RIFERIMENTO MOT. CAMBIO RULLO PRESSIONE +0000232|PLC|FAULT|[232] TIMEOUT SENSORE CHIUSURA CILINDRO PREFUSORE +0000233|PLC|FAULT|[233] ESEGUIRE TARATURA TRAVERSE/VENTOSE +0000234|PLC|FAULT|[234] VENTOSE NON BLOCCATE AREA 1 +0000235|PLC|FAULT|[235] VENTOSE NON BLOCCATE AREA 2 +0000236|PLC|WARNING|[236] ATTESA SBLOCCO VENTOSA +0000237|PLC|WARNING|[237] ATTESA BLOCCO VENTOSA +0000238|PLC|WARNING|[238] RIMUOVERE VENTOSA: START CICLO +0000239|PLC|WARNING|[239] INSERIRE VENTOSA: START CICLO +0000240|PLC|FAULT|[240] ANOMALIA FOTOCELLULA MAGAZZINO BORDI +0000241|PLC|WARNING|[241] BARRA 1 +0000242|PLC|WARNING|[242] BARRA 2 +0000243|PLC|WARNING|[243] BARRA 3 +0000244|PLC|WARNING|[244] BARRA 4 +0000245|PLC|WARNING|[245] BARRA 5 +0000246|PLC|WARNING|[246] BARRA 6 +0000247|PLC|WARNING|[247] BARRA 7 +0000248|PLC|WARNING|[248] BARRA 8 +0000249|PLC|WARNING|[249] BARRA 9 +0000250|PLC|WARNING|[250] BARRA 10 +0000251|PLC|WARNING|[251] BARRA 11 +0000252|PLC|WARNING|[252] BARRA 12 +0000253|PLC|WARNING|[253] RIMUOVERE/INSERIRE VENTOSA COME DA GRAFICA SU AREA 1: START CICLO +0000254|PLC|WARNING|[254] RIMUOVERE/INSERIRE VENTOSA COME DA GRAFICA SU AREA 2: START CICLO +0000255|PLC|FAULT|[255] PORTE PROTEZIONE SBLOCCATE +0000256|PLC|FAULT|[256] ERRORE MODULO ZERO SPEED MANDRINO +0000257|PLC|FAULT|[257] INTESTATORE NON IN POSIZIONE +0000258|PLC|FAULT|[258] INTESTATORE 92 VUOTO +0000259|PLC|FAULT|[259] INTESTATORE 93 VUOTO +0000260|PLC|FAULT|[260] LIVELLO COLLA BASSO B.BASIC +0000261|PLC|FAULT|[261] [WD]EMERGENZA TRANSFER PREMUTA +0000262|PLC|FAULT|[262] [WD]INTERVENTO MAGNETOTERMICI TRANSFER +0000263|PLC|FAULT|[263] [WD]PORTE ARMADIO ELETTRICO TRANSFER APERTE +0000264|PLC|FAULT|[264] [WD]SVUOTARE TRANSFER +0000265|PLC|FAULT|[265] [WD]PEZZO IN ZONA DI SCARICO +0000266|PLC|FAULT|[266] [WD]ATTESA ROBOT 1 IN POSIZIONE +0000267|PLC|FAULT|[267] [WD]ATTESA ROBOT 2 IN POSIZIONE +0000268|PLC|FAULT|[268] [WD]SVUOTARE RULLIERE +0000269|PLC|FAULT|[269] [WD]DIMENSIONI PEZZO NON OK +0000270|PLC|FAULT|[270] [WD]SVUOTARE PIANO MACCHINA E PINZE ROBOT +0000271|PLC|FAULT|[271] [WD]PINZA ROBOT 1 NON IN POSIZIONE +0000272|PLC|FAULT|[272] [WD]PINZA ROBOT 2 NON IN POSIZIONE +0000273|PLC|FAULT|[273] MORSETTI ZONA 1 ALTI PNEUMATICAMENTE +0000274|PLC|FAULT|[274] MORSETTI ZONA 2 ALTI PNEUMATICAMENTE +0000275|PLC|FAULT|[275] EMERGENZA CAUSA MORSETTI ZONA 1 +0000276|PLC|FAULT|[276] EMERGENZA CAUSA MORSETTI ZONA 2 +0000277|PLC|FAULT|[277] ZONA DI COLLISIONE REFILATORE / RAS +0000278|PLC|FAULT|[278] PERICOLO SPORTELLO PANTOGRAFO APERTO +0000279|PLC|FAULT|[279] ZONA DI COLLISIONE BORDATORE +0000280|PLC|FAULT|[280] POSIZIONE DEL SELETTORE DELLA PULSANTIERA NON OK +0000281|PLC|FAULT|[281] PREMERE PULSANTE UOMO-MORTO +0000282|PLC|FAULT|[282] METTERE LA MACCHINA IN EMERGENZA +0000283|PLC|FAULT|[283] EMERGENZA TAPPETO ZONA 1 +0000284|PLC|FAULT|[284] EMERGENZA TAPPETO ZONA 2 +0000285|PLC|FAULT|[285] ZONA DI COLLISIONE MAGAZZINO RULLI PRESSIONE +0000286|PLC|FAULT|[286] TAPPETO AREA 1 IMPEGNATO +0000287|PLC|FAULT|[287] TAPPETO CENTRALE IMPEGNATO +0000288|PLC|FAULT|[288] TAPPETO AREA 2 IMPEGNATO +0000289|PLC|FAULT|[289] NUMERO RULLO PRESSORE ERRATO +0000290|PLC|FAULT|[290] CHECK VASCA COLLA +0000291|PLC|FAULT|[291] TIMEOUT GRUPPO VENTOSE NON ESCLUSO +0000292|PLC|FAULT|[292] TIMEOUT GRUPPO VENTOSE NON INSERITO +0000293|PLC|FAULT|[293] ASSE C BORDATORE IN QUOTA COLLISIONE CON G.VENTOSE +0000294|PLC|FAULT|[294] CICLO INSERIMENTO SPINA GRUPPO 92 NON OK(MUOVERE IN JOG+ L'ASSE X) +0000295|PLC|FAULT|[295] CICLO INSERIMENTO SPINA GRUPPO 93 NON OK(MUOVERE IN JOG- L'ASSE X) +0000296|PLC|FAULT|[296] RULLI NON IN POSIZIONE +0000297|PLC|FAULT|[297] ASSE X FUORI LIMITE PER RULLI +0000298|PLC|FAULT|[298] COLLISIONE RULLI CON GRUPPO TESTE +0000299|PLC|FAULT|[299] LASCIARE LIBERO +0000300|PLC|FAULT|[300] PERICOLO COLLISIONE BORDATORE PIANO MULTIFUNZIONE +0000301|PLC|FAULT|[301] MODALITÀ CELLA NON ATTIVA +0000302|PLC|FAULT|[302] ZONA DI COLLISIONE BORDATORE IN Y +0000303|PLC|FAULT|[303] ERRORE SEQUENZA CAMBIO RULLO PRESSORE +0000304|PLC|FAULT|[304] +0000305|PLC|FAULT|[305] +0000306|PLC|FAULT|[306] +0000307|PLC|FAULT|[307] +0000308|PLC|FAULT|[308] +0000309|PLC|FAULT|[309] +0000310|PLC|FAULT|[310] +0000311|PLC|FAULT|[311] +0000312|PLC|FAULT|[312] +0000313|PLC|FAULT|[313] PRESSORE 1 TESTA 1 NON IN POSIZIONE +0000314|PLC|FAULT|[314] PRESSORE 2 TESTA 1 NON IN POSIZIONE +0000315|PLC|FAULT|[315] PRESSORE 3 TESTA 1 NON IN POSIZIONE +0000316|PLC|FAULT|[316] PRESSORE 4 TESTA 1 NON IN POSIZIONE +0000317|PLC|FAULT|[317] PRESSORE 1 TESTA 2 NON IN POSIZIONE +0000318|PLC|FAULT|[318] PRESSORE 2 TESTA 2 NON IN POSIZIONE +0000319|PLC|FAULT|[319] PRESSORE 3 TESTA 2 NON IN POSIZIONE +0000320|PLC|FAULT|[320] PRESSORE 4 TESTA 2 NON IN POSIZIONE +0000321|PLC|FAULT|[321] ATTESA FINE CAMBIO UTENSILE +0000322|PLC|FAULT|[322] +0000323|PLC|FAULT|[323] PERICOLO COLLISIONE ASSI X-U +0000324|PLC|FAULT|[324] PERICOLO COLLISIONE ASSI Y-V +0000325|PLC|FAULT|[325] ZERO FEED RATE +0000326|PLC|FAULT|[326] PIGNA MOBILE ATTIVA - PADDLE DISABILITATO +0000327|PLC|FAULT|[327] APERTURA PINZE BLOCCATO DA ASSI Z-W BASSI +0000328|PLC|FAULT|[328] ATTENZIONE! PERICOLO COLLISIONE +0000329|PLC|FAULT|[329] CUFFIA LAMA NON IN POSIZIONE +0000330|PLC|FAULT|[330] BATTUTA RIFERIMENTO NON ESCLUSA +0000331|PLC|FAULT|[331] SCARICO PANNELLO: CONFERMARE CON START CICLO +0000332|PLC|FAULT|[332] VELOCITA' RIDOTTA A 25MT/MIN +0000333|PLC|FAULT|[333] DISCESA PRESSORE BLOCCATA DA ASSI Z-W BASSI +0000334|PLC|FAULT|[334] DISCESA MANDRINO BLOCCATA DA ASSI Z-W BASSI +0000335|PLC|FAULT|[335] DISCESA FUSO/LAMA BLOCCATA DA ASSI Z-W BASSI +0000336|PLC|FAULT|[336] DISCESA BATTUTA RIFERIMENTO BLOCCATA DA ASSI Z-W BASSI +0000337|PLC|FAULT|[337] MOVIMENTO ASSI X BLOCCATO DA PINZA APERTA E TESTE BASSE +0000338|PLC|FAULT|[338] MOVIMENTO ASSI U BLOCCATO DA PINZA APERTA E TESTE BASSE +0000339|PLC|FAULT|[339] MOVIMENTO ASSI YZ BLOCCATO DA PINZE APERTE +0000340|PLC|FAULT|[340] MOVIMENTO ASSI VW BLOCCATO DA PINZE APERTE diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/app.msg b/MTC_Adapter/MTC_Adapter/Resources/SCM/app.msg index 0b11aac..22933ed 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/app.msg +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/app.msg @@ -1,4 +1,4 @@ -MODULE 1,PLC%d: ,276 +MODULE 1,PLC%d: ,340 @0," " @1,"MANDRINO 1 NON BLOCCATO" @2,"MANDRINO 2 NON BLOCCATO" @@ -10,14 +10,14 @@ MODULE 1,PLC%d: ,276 @8,"INVERTER 2 NON OK" @9,"INVERTER MANDRINO SUPPLEMENTARE NON OK" @10,"SAVE ENERGY ATTIVO" -@11,"[WD]SUPERATO NUMERO PEZZI MASSIMO CARICABILE SU TRANSFER" +@11,B,"[WD] SUPERATO NUMERO PEZZI MASSIMO CARICABILE SU TRANSFER" @12,"VERIFICA CONTATTORI NON OK" @13,"TIMEOUT COMUNICAZIONE XILOG" @14,B,"INTERVENTO MAGNETOTERMICI" @15,"PORTE PROTEZIONE APERTE" @16,"TAPPETO CONVOGLIA TRUCIOLI NON IN POSIZIONE" @17,"COLLISIONE RILEVATA DAL SIMULATORE" -@18," " +@18,"BUMPER MOBILE NON IN POSIZIONE" @19,"FORATRICE NON IN POSIZIONE" @20,B,"STOP MACCHINA DA CODICI M SUPPLEMENTARI" @21,B,"M00 ATTIVO: START CICLO" @@ -32,7 +32,7 @@ MODULE 1,PLC%d: ,276 @30,B,"ABILITAZIONE BL/SBL UTENSILE MANDRINO 1" @31,B,"ABILITAZIONE BL/SBL UTENSILE MANDRINO 2" @32,B,"ABILITAZIONE BL/SBL UTENSILE MANDRINO SUPPLEMENTARE" -@33,"CICLO ETICHETTATURA IN CORSO" +@33,B,"CICLO ETICHETTATURA IN CORSO" @34,"ETICHETTATRICE NON PRONTA" @35,"ETICHETTATRICE NON IN POSIZIONE" @36,"ERRORE ETICHETTATRICE" @@ -141,9 +141,9 @@ MODULE 1,PLC%d: ,276 @139,"ASSI PRISMA BC NON IN POSIZIONE" @140,"AZIONAMENTI ASSI PRISMA BC NON OK" @141,"TASTATORE RADIO NON OK" -@142," " -@143," " -@144," " +@142,"AVVICINATORI NON IN POSIZIONE" +@143,"AVVICINAMENTO PANNELLO NON AVVENUTO" +@144,"PRESA PANNELLO NON OK" @145,B,"RIAGGANCIO MANDRINO IN CORSO" @146,B,"RIAGGANCIO MANDRINO FALLITO" @147,B,"RIAGGANCIO MANDRINO AVVENUTO" @@ -276,4 +276,68 @@ MODULE 1,PLC%d: ,276 @274,"MORSETTI ZONA 2 ALTI PNEUMATICAMENTE" @275,"EMERGENZA CAUSA MORSETTI ZONA 1" @276,"EMERGENZA CAUSA MORSETTI ZONA 2" +@277,"ZONA DI COLLISIONE REFILATORE / RAS" +@278,"PERICOLO SPORTELLO PANTOGRAFO APERTO" +@279,"ZONA DI COLLISIONE BORDATORE" +@280,"POSIZIONE DEL SELETTORE DELLA PULSANTIERA NON OK" +@281,"PREMERE PULSANTE UOMO-MORTO" +@282,"METTERE LA MACCHINA IN EMERGENZA" +@283,"EMERGENZA TAPPETO ZONA 1" +@284,"EMERGENZA TAPPETO ZONA 2" +@285,"ZONA DI COLLISIONE MAGAZZINO RULLI PRESSIONE" +@286,"TAPPETO AREA 1 IMPEGNATO" +@287,"TAPPETO CENTRALE IMPEGNATO" +@288,"TAPPETO AREA 2 IMPEGNATO" +@289,"NUMERO RULLO PRESSORE ERRATO" +@290,"CHECK VASCA COLLA" +@291,"TIMEOUT GRUPPO VENTOSE NON ESCLUSO" +@292,"TIMEOUT GRUPPO VENTOSE NON INSERITO" +@293,"ASSE C BORDATORE IN QUOTA COLLISIONE CON G.VENTOSE" +@294,"CICLO INSERIMENTO SPINA GRUPPO 92 NON OK(MUOVERE IN JOG+ L'ASSE X)" +@295,"CICLO INSERIMENTO SPINA GRUPPO 93 NON OK(MUOVERE IN JOG- L'ASSE X)" +@296,"RULLI NON IN POSIZIONE" +@297,"ASSE X FUORI LIMITE PER RULLI" +@298,"COLLISIONE RULLI CON GRUPPO TESTE" +@299,"LASCIARE LIBERO" +@300,"PERICOLO COLLISIONE BORDATORE PIANO MULTIFUNZIONE" +@301,"MODALITÀ CELLA NON ATTIVA" +@302,"ZONA DI COLLISIONE BORDATORE IN Y" +@303,"ERRORE SEQUENZA CAMBIO RULLO PRESSORE" +@304," " +@305," " +@306," " +@307," " +@308," " +@309," " +@310," " +@311," " +@312," " +@313,"PRESSORE 1 TESTA 1 NON IN POSIZIONE" +@314,"PRESSORE 2 TESTA 1 NON IN POSIZIONE" +@315,"PRESSORE 3 TESTA 1 NON IN POSIZIONE" +@316,"PRESSORE 4 TESTA 1 NON IN POSIZIONE" +@317,"PRESSORE 1 TESTA 2 NON IN POSIZIONE" +@318,"PRESSORE 2 TESTA 2 NON IN POSIZIONE" +@319,"PRESSORE 3 TESTA 2 NON IN POSIZIONE" +@320,"PRESSORE 4 TESTA 2 NON IN POSIZIONE" +@321,"ATTESA FINE CAMBIO UTENSILE" +@322," " +@323,"PERICOLO COLLISIONE ASSI X-U" +@324,"PERICOLO COLLISIONE ASSI Y-V" +@325,"ZERO FEED RATE" +@326,"PIGNA MOBILE ATTIVA - PADDLE DISABILITATO" +@327,"APERTURA PINZE BLOCCATO DA ASSI Z-W BASSI" +@328,"ATTENZIONE! PERICOLO COLLISIONE" +@329,"CUFFIA LAMA NON IN POSIZIONE" +@330,"BATTUTA RIFERIMENTO NON ESCLUSA" +@331,"SCARICO PANNELLO: CONFERMARE CON START CICLO" +@332,"VELOCITA' RIDOTTA A 25MT/MIN" +@333,"DISCESA PRESSORE BLOCCATA DA ASSI Z-W BASSI" +@334,"DISCESA MANDRINO BLOCCATA DA ASSI Z-W BASSI" +@335,"DISCESA FUSO/LAMA BLOCCATA DA ASSI Z-W BASSI" +@336,"DISCESA BATTUTA RIFERIMENTO BLOCCATA DA ASSI Z-W BASSI" +@337,"MOVIMENTO ASSI X BLOCCATO DA PINZA APERTA E TESTE BASSE" +@338,"MOVIMENTO ASSI U BLOCCATO DA PINZA APERTA E TESTE BASSE" +@339,"MOVIMENTO ASSI YZ BLOCCATO DA PINZE APERTE" +@340,"MOVIMENTO ASSI VW BLOCCATO DA PINZE APERTE" END diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/convertScmAlarm.ps1 b/MTC_Adapter/MTC_Adapter/Resources/SCM/convertScmAlarm.ps1 index 333d31b..db569de 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/convertScmAlarm.ps1 +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/convertScmAlarm.ps1 @@ -5,8 +5,10 @@ # parte da file di input (tipicamente C:\Kvara\Xilog Plus Default\Country\Ita\app.msg) # e genera un file di output nel formato necessario per MTConnect Adapter #---------------------------------------------- - -#.\convertScmAlarm.ps1 .\app.msg AlarmListEsaGv.txt +# +# abilitazione script: +# Set-ExecutionPolicy -Scope Process -ExecutionPolicy unrestricted +#.\convertScmAlarm.ps1 .\app.msg AlarmListEsaGv.map param( From f00d01051b4eae151250adca7e1261724da75cab Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 9 Mar 2017 17:10:44 +0100 Subject: [PATCH 35/46] refresh --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index 65e10d6..c0a51ce 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -309,7 +309,6 @@ namespace MTC_Adapter } else if (mapIOT_Byte[i].varName.StartsWith("IOT_LUB_")) { - // recupero NUMERO try { numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_LUB_", "").Replace("_STA", "").Replace("_CNT", "")); @@ -345,7 +344,6 @@ namespace MTC_Adapter } else if (mapIOT_Byte[i].varName.StartsWith("IOT_I_MD_")) { - // recupero NUMERO try { numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_I_MD_", "")); From 34dc79c16a08b3f3ce7c685a517700054b3c9937 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 9 Mar 2017 17:27:20 +0100 Subject: [PATCH 36/46] completata review x lettura WORD con gestione dim matrici + update XML x avere 4 VACACT --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 134 +++++++++++++----- .../DATA/CONF/Adapter_ItemList.xml | 22 +++ .../MTC_Adapter/Resources/SCM/SCM_ESA.xml | 22 +++ .../Resources/SCM/convertScmAlarm.ps1 | 1 + 4 files changed, 140 insertions(+), 39 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index c0a51ce..16afb2a 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -312,7 +312,7 @@ namespace MTC_Adapter try { numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_LUB_", "").Replace("_STA", "").Replace("_CNT", "")); - // salvo in vettore carico mandrini SE ho nel vettore... + // salvo in vettore SE possibile... if (numero <= vettLubro.Length) { if (mapIOT_Byte[i].varName.EndsWith("_STA")) @@ -347,7 +347,7 @@ namespace MTC_Adapter try { numero = Convert.ToInt32(mapIOT_Byte[i].varName.Replace("IOT_I_MD_", "")); - // salvo in vettore carico mandrini SE ho nel vettore... + // salvo in vettore SE possibile... if (numero <= vettUnOp.Length) { vettUnOp[numero - 1].mUnOpLoad.Value = ncDevice.PLC_MemoryAreaIOT_Byte[byteNum]; @@ -468,44 +468,42 @@ namespace MTC_Adapter int.TryParse(mapIOT_Word[i].memAddr, out byteNum); if (mapIOT_Word[i].varName.StartsWith("IOT_S_MD_")) { - // recupero NUMERO try { numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_S_MD_", "")); - vettUnOp[numero - 1].mUnOpSpeed.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + // salvo in vettore SE possibile... + if (numero <= vettUnOp.Length) + { + vettUnOp[numero - 1].mUnOpSpeed.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + } + else + { + lg.Error("Errore in inserimento vettore " + mapIOT_Word[i].varName); + } } - catch + catch (Exception exc) { - // se non trovo --> 1! - numero = 1; + lg.Error(exc, "Errore in decodifica " + mapIOT_Word[i].varName); } } else if (mapIOT_Word[i].varName.StartsWith("IOT_T_MD_")) { - // recupero NUMERO try { numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_T_MD_", "")); - vettUnOp[numero - 1].mUnOpToolId.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + // salvo in vettore SE possibile... + if (numero <= vettUnOp.Length) + { + vettUnOp[numero - 1].mUnOpToolId.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + } + else + { + lg.Error("Errore in inserimento vettore " + mapIOT_Word[i].varName); + } } - catch + catch (Exception exc) { - // se non trovo --> 1! - numero = 1; - } - } - else if (mapIOT_Word[i].varName.StartsWith("IOT_C_H_VAC_")) - { - // recupero NUMERO - try - { - numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_H_VAC_", "")); - vettVacAct[numero - 1].mVacActCount.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; - } - catch - { - // se non trovo --> 1! - numero = 1; + lg.Error(exc, "Errore in decodifica " + mapIOT_Word[i].varName); } } else if (mapIOT_Word[i].varName.StartsWith("IOT_C_TC_")) @@ -514,12 +512,19 @@ namespace MTC_Adapter try { numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_TC_", "")); - vettUnOp[numero - 1].mUnOpNumCU.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + // salvo in vettore SE possibile... + if (numero <= vettUnOp.Length) + { + vettUnOp[numero - 1].mUnOpNumCU.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + } + else + { + lg.Error("Errore in inserimento vettore " + mapIOT_Word[i].varName); + } } - catch + catch (Exception exc) { - // se non trovo --> 1! - numero = 1; + lg.Error(exc, "Errore in decodifica " + mapIOT_Word[i].varName); } } else if (mapIOT_Word[i].varName.StartsWith("IOT_C_H_MD_")) @@ -527,30 +532,81 @@ namespace MTC_Adapter try { numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_H_MD_", "")); - vettUnOp[numero - 1].mUnOpAccTime.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + // salvo in vettore SE possibile... + if (numero <= vettUnOp.Length) + { + vettUnOp[numero - 1].mUnOpAccTime.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + } + else + { + lg.Error("Errore in inserimento vettore " + mapIOT_Word[i].varName); + } + } + catch (Exception exc) + { + lg.Error(exc, "Errore in decodifica " + mapIOT_Word[i].varName); + } + } + else if (mapIOT_Word[i].varName.StartsWith("IOT_C_H_VAC_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_H_VAC_", "")); + // salvo in vettore SE possibile... + if (numero <= vettVacAct.Length) + { + vettVacAct[numero - 1].mVacActCount.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + } + else + { + lg.Error("Errore in inserimento vettore " + mapIOT_Word[i].varName); + } + } + catch (Exception exc) + { + lg.Error(exc, "Errore in decodifica " + mapIOT_Word[i].varName); } - catch - { } } else if (mapIOT_Word[i].varName.StartsWith("IOT_PGMR_A_")) { try { numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_PGMR_A_", "")); - vettMemArea[numero - 1].mMemAreaProgNumRep.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + // salvo in vettore SE possibile... + if (numero <= vettMemArea.Length) + { + vettMemArea[numero - 1].mMemAreaProgNumRep.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + } + else + { + lg.Error("Errore in inserimento vettore " + mapIOT_Word[i].varName); + } + } + catch (Exception exc) + { + lg.Error(exc, "Errore in decodifica " + mapIOT_Word[i].varName); } - catch - { } } else if (mapIOT_Word[i].varName.StartsWith("IOT_C_EXEC_A_")) { try { numero = Convert.ToInt32(mapIOT_Word[i].varName.Replace("IOT_C_EXEC_A_", "")); - vettMemArea[numero - 1].mMemAreaProgNumExe.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + // salvo in vettore SE possibile... + if (numero <= vettMemArea.Length) + { + vettMemArea[numero - 1].mMemAreaProgNumExe.Value = ncDevice.PLC_MemoryAreaIOT_Word[byteNum]; + } + else + { + lg.Error("Errore in inserimento vettore " + mapIOT_Word[i].varName); + } + } + catch (Exception exc) + { + lg.Error(exc, "Errore in decodifica " + mapIOT_Word[i].varName); } - catch - { } } } } diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml index b4eb7f2..1a97c46 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml @@ -60,6 +60,28 @@ + + VacAct_03 + Attuatore vuoto 3 + Random + + + VacAct_03_Count + 0 + + + + + VacAct_04 + Attuatore vuoto 4 + Random + + + VacAct_04_Count + 0 + + + diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml index b4eb7f2..1a97c46 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml @@ -60,6 +60,28 @@ + + VacAct_03 + Attuatore vuoto 3 + Random + + + VacAct_03_Count + 0 + + + + + VacAct_04 + Attuatore vuoto 4 + Random + + + VacAct_04_Count + 0 + + + diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/convertScmAlarm.ps1 b/MTC_Adapter/MTC_Adapter/Resources/SCM/convertScmAlarm.ps1 index db569de..646f4e4 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/convertScmAlarm.ps1 +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/convertScmAlarm.ps1 @@ -11,6 +11,7 @@ #.\convertScmAlarm.ps1 .\app.msg AlarmListEsaGv.map + param( [string]$orig_file_path = '', [string]$new_file_path = '' From b7b16f3e36df59795619a047c9bbf8b145e2faec Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 9 Mar 2017 17:45:19 +0100 Subject: [PATCH 37/46] completato review area DWord x try/catch e controllo dim vettore... + fix allarmi... --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 67 ++++++++++----- .../MTC_Adapter/DATA/CONF/AlarmList.map | 82 ++++++++++++++++++- .../Resources/SCM/AlarmListEsaGv.map | 81 ++++++++++++++++++ 3 files changed, 209 insertions(+), 21 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index 16afb2a..b7a6c7f 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -640,12 +640,19 @@ namespace MTC_Adapter try { numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_C_KU_AX_", "")); - vettAxis[numero - 1].mAxDistDone.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]; + // salvo in vettore SE possibile... + if (numero <= vettAxis.Length) + { + vettAxis[numero - 1].mAxDistDone.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]; + } + else + { + lg.Error("Errore in inserimento vettore " + mapIOT_DWord[i].varName); + } } - catch + catch (Exception exc) { - // se non trovo --> 1! - numero = 1; + lg.Error(exc, "Errore in decodifica " + mapIOT_DWord[i].varName); } } else if (mapIOT_DWord[i].varName.StartsWith("IOT_C_KINV_AX_")) @@ -654,12 +661,19 @@ namespace MTC_Adapter try { numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_C_KINV_AX_", "")); - vettAxis[numero - 1].mAxInvDDone.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]; + // salvo in vettore SE possibile... + if (numero <= vettAxis.Length) + { + vettAxis[numero - 1].mAxInvDDone.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]; + } + else + { + lg.Error("Errore in inserimento vettore " + mapIOT_DWord[i].varName); + } } - catch + catch (Exception exc) { - // se non trovo --> 1! - numero = 1; + lg.Error(exc, "Errore in decodifica " + mapIOT_DWord[i].varName); } } else if (mapIOT_DWord[i].varName.StartsWith("IOT_POS_AX_")) @@ -670,13 +684,20 @@ namespace MTC_Adapter numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_POS_AX_", "")); // recupero valore pos assi (in micron) valDouble = (double)BitConverter.ToInt32(BitConverter.GetBytes(ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]), 0); - // riporto il dato in mm (divido x 1000) - vettAxis[numero - 1].mAxPosAct.Value = valDouble / utils.CRI("fattdecimale"); + // salvo in vettore SE possibile... + if (numero <= vettAxis.Length) + { + // riporto il dato in mm (divido x 1000) + vettAxis[numero - 1].mAxPosAct.Value = valDouble / utils.CRI("fattdecimale"); + } + else + { + lg.Error("Errore in inserimento vettore " + mapIOT_DWord[i].varName); + } } - catch + catch (Exception exc) { - // se non trovo --> 1! - numero = 1; + lg.Error(exc, "Errore in decodifica " + mapIOT_DWord[i].varName); } } else if (mapIOT_DWord[i].varName.StartsWith("IOT_C_KREV_MD_")) @@ -685,12 +706,19 @@ namespace MTC_Adapter try { numero = Convert.ToInt32(mapIOT_DWord[i].varName.Replace("IOT_C_KREV_MD_", "")); - vettUnOp[numero - 1].mUnOpKRev.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]; + // salvo in vettore SE possibile... + if (numero <= vettUnOp.Length) + { + vettUnOp[numero - 1].mUnOpKRev.Value = ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]; + } + else + { + lg.Error("Errore in inserimento vettore " + mapIOT_DWord[i].varName); + } } - catch + catch (Exception exc) { - // se non trovo --> 1! - numero = 1; + lg.Error(exc, "Errore in decodifica " + mapIOT_DWord[i].varName); } } else if (mapIOT_DWord[i].varName.StartsWith("IOT_PLC_MSG_")) @@ -702,10 +730,9 @@ namespace MTC_Adapter // copio allarmi in vettore generale AlarmFlags (dove lo gestisce) 4 byte alla volta Buffer.BlockCopy(BitConverter.GetBytes(ncDevice.PLC_MemoryAreaIOT_DWord[byteNum]), 0, AlarmFlags, numero * 4, 4); } - catch + catch (Exception exc) { - // se non trovo --> 1! - numero = 1; + lg.Error(exc, "Errore in decodifica " + mapIOT_DWord[i].varName); } } } diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map b/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map index 27dfc39..22ee9b1 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/AlarmList.map @@ -338,4 +338,84 @@ 0000337|PLC|FAULT|[337] MOVIMENTO ASSI X BLOCCATO DA PINZA APERTA E TESTE BASSE 0000338|PLC|FAULT|[338] MOVIMENTO ASSI U BLOCCATO DA PINZA APERTA E TESTE BASSE 0000339|PLC|FAULT|[339] MOVIMENTO ASSI YZ BLOCCATO DA PINZE APERTE -0000340|PLC|FAULT|[340] MOVIMENTO ASSI VW BLOCCATO DA PINZE APERTE \ No newline at end of file +0000340|PLC|FAULT|[340] MOVIMENTO ASSI VW BLOCCATO DA PINZE APERTE +0000341|PLC|FAULT|[341] +0000342|PLC|FAULT|[342] +0000343|PLC|FAULT|[343] +0000344|PLC|FAULT|[344] +0000345|PLC|FAULT|[345] +0000346|PLC|FAULT|[346] +0000347|PLC|FAULT|[347] +0000348|PLC|FAULT|[348] +0000349|PLC|FAULT|[349] +0000350|PLC|FAULT|[350] +0000351|PLC|FAULT|[351] +0000352|PLC|FAULT|[352] +0000353|PLC|FAULT|[353] +0000354|PLC|FAULT|[354] +0000355|PLC|FAULT|[355] +0000356|PLC|FAULT|[356] +0000357|PLC|FAULT|[357] +0000358|PLC|FAULT|[358] +0000359|PLC|FAULT|[359] +0000360|PLC|FAULT|[360] +0000361|PLC|FAULT|[361] +0000362|PLC|FAULT|[362] +0000363|PLC|FAULT|[363] +0000364|PLC|FAULT|[364] +0000365|PLC|FAULT|[365] +0000366|PLC|FAULT|[366] +0000367|PLC|FAULT|[367] +0000368|PLC|FAULT|[368] +0000369|PLC|FAULT|[369] +0000370|PLC|FAULT|[370] +0000371|PLC|FAULT|[371] +0000372|PLC|FAULT|[372] +0000373|PLC|FAULT|[373] +0000374|PLC|FAULT|[374] +0000375|PLC|FAULT|[375] +0000376|PLC|FAULT|[376] +0000377|PLC|FAULT|[377] +0000378|PLC|FAULT|[378] +0000379|PLC|FAULT|[379] +0000380|PLC|FAULT|[380] +0000381|PLC|FAULT|[381] +0000382|PLC|FAULT|[382] +0000383|PLC|FAULT|[383] +0000384|PLC|FAULT|[384] +0000385|PLC|FAULT|[385] +0000386|PLC|FAULT|[386] +0000387|PLC|FAULT|[387] +0000388|PLC|FAULT|[388] +0000389|PLC|FAULT|[389] +0000390|PLC|FAULT|[390] +0000391|PLC|FAULT|[391] +0000392|PLC|FAULT|[392] +0000393|PLC|FAULT|[393] +0000394|PLC|FAULT|[394] +0000395|PLC|FAULT|[395] +0000396|PLC|FAULT|[396] +0000397|PLC|FAULT|[397] +0000398|PLC|FAULT|[398] +0000399|PLC|FAULT|[399] +0000400|PLC|FAULT|[400] +0000401|PLC|FAULT|[401] +0000402|PLC|FAULT|[402] +0000403|PLC|FAULT|[403] +0000404|PLC|FAULT|[404] +0000405|PLC|FAULT|[405] +0000406|PLC|FAULT|[406] +0000407|PLC|FAULT|[407] +0000408|PLC|FAULT|[408] +0000409|PLC|FAULT|[409] +0000410|PLC|FAULT|[410] +0000411|PLC|FAULT|[411] +0000412|PLC|FAULT|[412] +0000413|PLC|FAULT|[413] +0000414|PLC|FAULT|[414] +0000415|PLC|FAULT|[415] +0000416|PLC|FAULT|[416] +0000417|PLC|FAULT|[417] +0000418|PLC|FAULT|[418] +0000419|PLC|FAULT|[419] +0000420|PLC|FAULT|[420] \ No newline at end of file diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/AlarmListEsaGv.map b/MTC_Adapter/MTC_Adapter/Resources/SCM/AlarmListEsaGv.map index 6f5620f..22ee9b1 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/AlarmListEsaGv.map +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/AlarmListEsaGv.map @@ -1,3 +1,4 @@ +# Commenti con "#", elenco tipo COD_NUM|GRUPPO|LEVEL|DESCRIZIONE completa 000001|PLC|FAULT|[1] MANDRINO 1 NON BLOCCATO 000002|PLC|FAULT|[2] MANDRINO 2 NON BLOCCATO 000003|PLC|FAULT|[3] MANDRINO SUPPLEMENTARE NON BLOCCATO @@ -338,3 +339,83 @@ 0000338|PLC|FAULT|[338] MOVIMENTO ASSI U BLOCCATO DA PINZA APERTA E TESTE BASSE 0000339|PLC|FAULT|[339] MOVIMENTO ASSI YZ BLOCCATO DA PINZE APERTE 0000340|PLC|FAULT|[340] MOVIMENTO ASSI VW BLOCCATO DA PINZE APERTE +0000341|PLC|FAULT|[341] +0000342|PLC|FAULT|[342] +0000343|PLC|FAULT|[343] +0000344|PLC|FAULT|[344] +0000345|PLC|FAULT|[345] +0000346|PLC|FAULT|[346] +0000347|PLC|FAULT|[347] +0000348|PLC|FAULT|[348] +0000349|PLC|FAULT|[349] +0000350|PLC|FAULT|[350] +0000351|PLC|FAULT|[351] +0000352|PLC|FAULT|[352] +0000353|PLC|FAULT|[353] +0000354|PLC|FAULT|[354] +0000355|PLC|FAULT|[355] +0000356|PLC|FAULT|[356] +0000357|PLC|FAULT|[357] +0000358|PLC|FAULT|[358] +0000359|PLC|FAULT|[359] +0000360|PLC|FAULT|[360] +0000361|PLC|FAULT|[361] +0000362|PLC|FAULT|[362] +0000363|PLC|FAULT|[363] +0000364|PLC|FAULT|[364] +0000365|PLC|FAULT|[365] +0000366|PLC|FAULT|[366] +0000367|PLC|FAULT|[367] +0000368|PLC|FAULT|[368] +0000369|PLC|FAULT|[369] +0000370|PLC|FAULT|[370] +0000371|PLC|FAULT|[371] +0000372|PLC|FAULT|[372] +0000373|PLC|FAULT|[373] +0000374|PLC|FAULT|[374] +0000375|PLC|FAULT|[375] +0000376|PLC|FAULT|[376] +0000377|PLC|FAULT|[377] +0000378|PLC|FAULT|[378] +0000379|PLC|FAULT|[379] +0000380|PLC|FAULT|[380] +0000381|PLC|FAULT|[381] +0000382|PLC|FAULT|[382] +0000383|PLC|FAULT|[383] +0000384|PLC|FAULT|[384] +0000385|PLC|FAULT|[385] +0000386|PLC|FAULT|[386] +0000387|PLC|FAULT|[387] +0000388|PLC|FAULT|[388] +0000389|PLC|FAULT|[389] +0000390|PLC|FAULT|[390] +0000391|PLC|FAULT|[391] +0000392|PLC|FAULT|[392] +0000393|PLC|FAULT|[393] +0000394|PLC|FAULT|[394] +0000395|PLC|FAULT|[395] +0000396|PLC|FAULT|[396] +0000397|PLC|FAULT|[397] +0000398|PLC|FAULT|[398] +0000399|PLC|FAULT|[399] +0000400|PLC|FAULT|[400] +0000401|PLC|FAULT|[401] +0000402|PLC|FAULT|[402] +0000403|PLC|FAULT|[403] +0000404|PLC|FAULT|[404] +0000405|PLC|FAULT|[405] +0000406|PLC|FAULT|[406] +0000407|PLC|FAULT|[407] +0000408|PLC|FAULT|[408] +0000409|PLC|FAULT|[409] +0000410|PLC|FAULT|[410] +0000411|PLC|FAULT|[411] +0000412|PLC|FAULT|[412] +0000413|PLC|FAULT|[413] +0000414|PLC|FAULT|[414] +0000415|PLC|FAULT|[415] +0000416|PLC|FAULT|[416] +0000417|PLC|FAULT|[417] +0000418|PLC|FAULT|[418] +0000419|PLC|FAULT|[419] +0000420|PLC|FAULT|[420] \ No newline at end of file From a9804022e8f24e3924946a7d75bea6c4dd679aab Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 9 Mar 2017 17:57:39 +0100 Subject: [PATCH 38/46] completata semplificazione modello XML x dati ASSI e messi 15 assi x ESAGV --- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 32 +- .../DATA/CONF/Adapter_ItemList.xml | 411 ++++-------------- .../MTC_Adapter/Resources/SCM/Appunti SCM.txt | 6 - .../MTC_Adapter/Resources/SCM/SCM_ESA.xml | 411 ++++-------------- MTC_Adapter/MTC_Adapter/SetupAdapter.cs | 18 +- 5 files changed, 192 insertions(+), 686 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index b2e6cd1..b53dca0 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -565,22 +565,22 @@ namespace MTC_Adapter // inizializzo vari eventi, sample, condizioni mAxAlias = new MTConnect.Message(string.Format("{0}_Alias", ident)); mAxAlias.Value = alias; - mAxMainProc = new MTConnect.Message(dataRefList[0].Key); - mAxIsMaster = new MTConnect.Message(dataRefList[1].Key); - mAxMastId = new Event(dataRefList[2].Key); - mAxType = new Event(dataRefList[3].Key); - mAxType.Value = dataRefList[3].Value; - mAxDir = new Event(dataRefList[4].Key); - mAxLoad = new Sample(dataRefList[5].Key); - mAxPosAct = new Sample(dataRefList[6].Key); - mAxPosTgt = new Sample(dataRefList[7].Key); - mAxFeedAct = new Sample(dataRefList[8].Key); - mAxFeedOver = new Sample(dataRefList[9].Key); - mAxAccelAct = new Sample(dataRefList[10].Key); - mAxAccTime = new Sample(dataRefList[11].Key); - mAxBattery = new Sample(dataRefList[12].Key); - mAxDistDone = new Sample(dataRefList[13].Key); - mAxInvDDone = new Sample(dataRefList[14].Key); + mAxType = new Event(dataRefList[0].Key); + mAxType.Value = dataRefList[0].Value; + mAxMainProc = new MTConnect.Message(string.Format("{0}_MainProc", ident)); + mAxIsMaster = new MTConnect.Message(string.Format("{0}_IsMast", ident)); + mAxMastId = new Event(string.Format("{0}_MastId", ident)); + mAxDir = new Event(string.Format("{0}_Dir", ident)); + mAxLoad = new Sample(string.Format("{0}_Load", ident)); + mAxPosAct = new Sample(string.Format("{0}_PosAct", ident)); + mAxPosTgt = new Sample(string.Format("{0}_PosTgt", ident)); + mAxFeedAct = new Sample(string.Format("{0}_FeedAct", ident)); + mAxFeedOver = new Sample(string.Format("{0}_FeedOver", ident)); + mAxAccelAct = new Sample(string.Format("{0}_AccelAct", ident)); + mAxAccTime = new Sample(string.Format("{0}_AccTime", ident)); + mAxBattery = new Sample(string.Format("{0}_Battery", ident)); + mAxDistDone = new Sample(string.Format("{0}_DistDone", ident)); + mAxInvDDone = new Sample(string.Format("{0}_InvDDone", ident)); mAxAlarmCNC = new Condition(string.Format("{0}_AlarmCNC", ident)); mAxAlarmPLC = new Condition(string.Format("{0}_AlarmPLC", ident)); diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml index 1a97c46..33355af 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml @@ -330,402 +330,165 @@ Axis_01 Asse num 1 - Random + MemLoad - - Axis_01_MainProc - 0 - - - Axis_01_IsMast - 0 - - - Axis_01_MastId - 0 - Axis_01_Type LINEAR - - Axis_01_Dir - 0 - - - Axis_01_Load - 0 - - - Axis_01_PosAct - 0 - - - Axis_01_PosTgt - 0 - - - Axis_01_FeedAct - 0 - - - Axis_01_FeedOver - 0 - - - Axis_01_AccelAct - 0 - - - Axis_01_AccTime - 0 - - - Axis_01_Battery - 0 - - - Axis_01_DistDone - 0 - - - Axis_01_InvDDone - 0 - Axis_02 Asse num 2 - Random + MemLoad - - Axis_02_MainProc - 0 - - - Axis_02_IsMast - 0 - - - Axis_02_MastId - 0 - Axis_02_Type LINEAR - - Axis_02_Dir - 0 - - - Axis_02_Load - 0 - - - Axis_02_PosAct - 0 - - - Axis_02_PosTgt - 0 - - - Axis_02_FeedAct - 0 - - - Axis_02_FeedOver - 0 - - - Axis_02_AccelAct - 0 - - - Axis_02_AccTime - 0 - - - Axis_02_Battery - 0 - - - Axis_02_DistDone - 0 - - - Axis_02_InvDDone - 0 - Axis_03 Asse num 3 - Random + MemLoad - - Axis_03_MainProc - 0 - - - Axis_03_IsMast - 0 - - - Axis_03_MastId - 0 - Axis_03_Type LINEAR - - Axis_03_Dir - 0 - - - Axis_03_Load - 0 - - - Axis_03_PosAct - 0 - - - Axis_03_PosTgt - 0 - - - Axis_03_FeedAct - 0 - - - Axis_03_FeedOver - 0 - - - Axis_03_AccelAct - 0 - - - Axis_03_AccTime - 0 - - - Axis_03_Battery - 0 - - - Axis_03_DistDone - 0 - - - Axis_03_InvDDone - 0 - Axis_04 Asse num 4 - Random + MemLoad - - Axis_04_MainProc - 0 - - - Axis_04_IsMast - 0 - - - Axis_04_MastId - 0 - Axis_04_Type ROTARY - - Axis_04_Dir - 0 - - - Axis_04_Load - 0 - - - Axis_04_PosAct - 0 - - - Axis_04_PosTgt - 0 - - - Axis_04_FeedAct - 0 - - - Axis_04_FeedOver - 0 - - - Axis_04_AccelAct - 0 - - - Axis_04_AccTime - 0 - - - Axis_04_Battery - 0 - - - Axis_04_DistDone - 0 - - - Axis_04_InvDDone - 0 - Axis_05 Asse num 5 - Random + MemLoad - - Axis_05_MainProc - 0 - - - Axis_05_IsMast - 0 - - - Axis_05_MastId - 0 - Axis_05_Type ROTARY - - Axis_05_Dir - 0 - - - Axis_05_Load - 0 - - - Axis_05_PosAct - 0 - - - Axis_05_PosTgt - 0 - - - Axis_05_FeedAct - 0 - - - Axis_05_FeedOver - 0 - - - Axis_05_AccelAct - 0 - - - Axis_05_AccTime - 0 - - - Axis_05_Battery - 0 - - - Axis_05_DistDone - 0 - - - Axis_05_InvDDone - 0 - Axis_06 Asse num 6 - Random + MemLoad - - Axis_06_MainProc - 0 - - - Axis_06_IsMast - 0 - - - Axis_06_MastId - 0 - Axis_06_Type LINEAR + + + + Axis_07 + Asse num 7 + MemLoad + - Axis_06_Dir - 0 + Axis_07_Type + LINEAR + + + + Axis_08 + Asse num 8 + MemLoad + - Axis_06_Load - 0 + Axis_08_Type + LINEAR + + + + Axis_09 + Asse num 9 + MemLoad + - Axis_06_PosAct - 0 + Axis_09_Type + LINEAR + + + + Axis_10 + Asse num 10 + MemLoad + - Axis_06_PosTgt - 0 + Axis_10_Type + LINEAR + + + + Axis_11 + Asse num 11 + MemLoad + - Axis_06_FeedAct - 0 + Axis_11_Type + LINEAR + + + + Axis_12 + Asse num 12 + MemLoad + - Axis_06_FeedOver - 0 + Axis_12_Type + LINEAR + + + + Axis_13 + Asse num 13 + MemLoad + - Axis_06_AccelAct - 0 + Axis_13_Type + LINEAR + + + + Axis_14 + Asse num 14 + MemLoad + - Axis_06_AccTime - 0 + Axis_14_Type + LINEAR + + + + Axis_15 + Asse num 15 + MemLoad + - Axis_06_Battery - 0 - - - Axis_06_DistDone - 0 - - - Axis_06_InvDDone - 0 + Axis_15_Type + LINEAR diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt index 532c13c..1a18e5e 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt @@ -10,12 +10,6 @@ TODO - - inizializzazione dell'oggetto NC da thdNcEsaGvKvara con NUOVE aree di memoria - - attenzione a decodeBitData / decodeOtherData - - nel try/catch assegnazione vettori VERIFICARE SE il vettore abbia le dim richieste (es 8 mandrini ma setup con 1 solo...) - semplificare file conf adapter x tutto (tranne assi che serve TYPE LINEAR/ROTARY) - - completare le aree IOT-STRING - - eliminare da thdNcEsaGvKvara "vecchie" aree di memoria - diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml index 1a97c46..33355af 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml @@ -330,402 +330,165 @@ Axis_01 Asse num 1 - Random + MemLoad - - Axis_01_MainProc - 0 - - - Axis_01_IsMast - 0 - - - Axis_01_MastId - 0 - Axis_01_Type LINEAR - - Axis_01_Dir - 0 - - - Axis_01_Load - 0 - - - Axis_01_PosAct - 0 - - - Axis_01_PosTgt - 0 - - - Axis_01_FeedAct - 0 - - - Axis_01_FeedOver - 0 - - - Axis_01_AccelAct - 0 - - - Axis_01_AccTime - 0 - - - Axis_01_Battery - 0 - - - Axis_01_DistDone - 0 - - - Axis_01_InvDDone - 0 - Axis_02 Asse num 2 - Random + MemLoad - - Axis_02_MainProc - 0 - - - Axis_02_IsMast - 0 - - - Axis_02_MastId - 0 - Axis_02_Type LINEAR - - Axis_02_Dir - 0 - - - Axis_02_Load - 0 - - - Axis_02_PosAct - 0 - - - Axis_02_PosTgt - 0 - - - Axis_02_FeedAct - 0 - - - Axis_02_FeedOver - 0 - - - Axis_02_AccelAct - 0 - - - Axis_02_AccTime - 0 - - - Axis_02_Battery - 0 - - - Axis_02_DistDone - 0 - - - Axis_02_InvDDone - 0 - Axis_03 Asse num 3 - Random + MemLoad - - Axis_03_MainProc - 0 - - - Axis_03_IsMast - 0 - - - Axis_03_MastId - 0 - Axis_03_Type LINEAR - - Axis_03_Dir - 0 - - - Axis_03_Load - 0 - - - Axis_03_PosAct - 0 - - - Axis_03_PosTgt - 0 - - - Axis_03_FeedAct - 0 - - - Axis_03_FeedOver - 0 - - - Axis_03_AccelAct - 0 - - - Axis_03_AccTime - 0 - - - Axis_03_Battery - 0 - - - Axis_03_DistDone - 0 - - - Axis_03_InvDDone - 0 - Axis_04 Asse num 4 - Random + MemLoad - - Axis_04_MainProc - 0 - - - Axis_04_IsMast - 0 - - - Axis_04_MastId - 0 - Axis_04_Type ROTARY - - Axis_04_Dir - 0 - - - Axis_04_Load - 0 - - - Axis_04_PosAct - 0 - - - Axis_04_PosTgt - 0 - - - Axis_04_FeedAct - 0 - - - Axis_04_FeedOver - 0 - - - Axis_04_AccelAct - 0 - - - Axis_04_AccTime - 0 - - - Axis_04_Battery - 0 - - - Axis_04_DistDone - 0 - - - Axis_04_InvDDone - 0 - Axis_05 Asse num 5 - Random + MemLoad - - Axis_05_MainProc - 0 - - - Axis_05_IsMast - 0 - - - Axis_05_MastId - 0 - Axis_05_Type ROTARY - - Axis_05_Dir - 0 - - - Axis_05_Load - 0 - - - Axis_05_PosAct - 0 - - - Axis_05_PosTgt - 0 - - - Axis_05_FeedAct - 0 - - - Axis_05_FeedOver - 0 - - - Axis_05_AccelAct - 0 - - - Axis_05_AccTime - 0 - - - Axis_05_Battery - 0 - - - Axis_05_DistDone - 0 - - - Axis_05_InvDDone - 0 - Axis_06 Asse num 6 - Random + MemLoad - - Axis_06_MainProc - 0 - - - Axis_06_IsMast - 0 - - - Axis_06_MastId - 0 - Axis_06_Type LINEAR + + + + Axis_07 + Asse num 7 + MemLoad + - Axis_06_Dir - 0 + Axis_07_Type + LINEAR + + + + Axis_08 + Asse num 8 + MemLoad + - Axis_06_Load - 0 + Axis_08_Type + LINEAR + + + + Axis_09 + Asse num 9 + MemLoad + - Axis_06_PosAct - 0 + Axis_09_Type + LINEAR + + + + Axis_10 + Asse num 10 + MemLoad + - Axis_06_PosTgt - 0 + Axis_10_Type + LINEAR + + + + Axis_11 + Asse num 11 + MemLoad + - Axis_06_FeedAct - 0 + Axis_11_Type + LINEAR + + + + Axis_12 + Asse num 12 + MemLoad + - Axis_06_FeedOver - 0 + Axis_12_Type + LINEAR + + + + Axis_13 + Asse num 13 + MemLoad + - Axis_06_AccelAct - 0 + Axis_13_Type + LINEAR + + + + Axis_14 + Asse num 14 + MemLoad + - Axis_06_AccTime - 0 + Axis_14_Type + LINEAR + + + + Axis_15 + Asse num 15 + MemLoad + - Axis_06_Battery - 0 - - - Axis_06_DistDone - 0 - - - Axis_06_InvDDone - 0 + Axis_15_Type + LINEAR diff --git a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs index 1f385b8..efbfc37 100644 --- a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs +++ b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs @@ -443,22 +443,8 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_MainProc", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_IsMast", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_MastId", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_Type", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_Dir", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_Load", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_PosAct", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_PosTgt", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_FeedAct", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_FeedOver", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_AccelAct", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_AccTime", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_Battery", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_DistDone", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_InvDDone", i + 1), "0")); - Axis[i] = new element(string.Format("Axis_{0:00}", i + 1), string.Format("Asse num {0}", i + 1), fonteDati.Random, listaDR); + listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_Type", i + 1), "LINEAR")); + Axis[i] = new element(string.Format("Axis_{0:00}", i + 1), string.Format("Asse num {0}", i + 1), fonteDati.MemLoad, listaDR); } // salvo oggetto c.Axis = Axis; From 0730f8e1c3ee731f4ef6ba4a67f10ed0177db248 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 9 Mar 2017 18:20:13 +0100 Subject: [PATCH 39/46] completato fix area PATH semplificando file conf + caricamento e testing --- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 44 ++++----- .../DATA/CONF/Adapter_ItemList.xml | 93 +------------------ .../MTC_Adapter/Resources/SCM/SCM_ESA.xml | 93 +------------------ MTC_Adapter/MTC_Adapter/SetupAdapter.cs | 27 +----- 4 files changed, 27 insertions(+), 230 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index b53dca0..ec19b47 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -368,29 +368,29 @@ namespace MTC_Adapter mPathAlias = new MTConnect.Message(string.Format("{0}_Alias", ident)); mPathAlias.Value = alias; - mPathFeed = new Sample(dataRefList[0].Key); - mPathFeedOver = new Sample(dataRefList[1].Key); - mPathRapidOver = new Sample(dataRefList[2].Key); - mPathPosActX = new Sample(dataRefList[3].Key); - mPathPosActY = new Sample(dataRefList[4].Key); - mPathPosActZ = new Sample(dataRefList[5].Key); - mPathPosActI = new Sample(dataRefList[6].Key); - mPathPosActJ = new Sample(dataRefList[7].Key); - mPathPosActK = new Sample(dataRefList[8].Key); + mPathFeed = new Sample(string.Format("{0}_FeedRate", ident)); + mPathFeedOver = new Sample(string.Format("{0}_FeedOverr", ident)); + mPathRapidOver = new Sample(string.Format("{0}_RapidOverr", ident)); + mPathPosActX = new Sample(string.Format("{0}_PosActX", ident)); + mPathPosActY = new Sample(string.Format("{0}_PosActY", ident)); + mPathPosActZ = new Sample(string.Format("{0}_PosActZ", ident)); + mPathPosActI = new Sample(string.Format("{0}_PosActI", ident)); + mPathPosActJ = new Sample(string.Format("{0}_PosActJ", ident)); + mPathPosActK = new Sample(string.Format("{0}_PosActK", ident)); // aggiunta x revisione 2016.05.05 - mPathType = new MTConnect.Message(dataRefList[9].Key); - mPathPartId = new Event(dataRefList[10].Key); - mPathPartCount = new Event(dataRefList[11].Key); - mPathCodM = new MTConnect.Message(dataRefList[12].Key); - mPathCodS = new MTConnect.Message(dataRefList[13].Key); - mPathCodT = new MTConnect.Message(dataRefList[14].Key); - mPathRunMode = new Event(dataRefList[15].Key); - mPathExeMode = new Event(dataRefList[16].Key); - mPathCurrProg = new Event(dataRefList[17].Key); - mPathCurrProgRowNum = new Event(dataRefList[18].Key); - mPathActiveAxes = new Event(dataRefList[19].Key); - mPathCodG_Act = new MTConnect.Message(dataRefList[20].Key); - mPathSubMode = new MTConnect.Message(dataRefList[21].Key); + mPathType = new MTConnect.Message(string.Format("{0}_Type", ident)); + mPathPartId = new Event(string.Format("{0}_PartId", ident)); + mPathPartCount = new Event(string.Format("{0}_PZ_TOT", ident)); + mPathCodM = new MTConnect.Message(string.Format("{0}_Cod_M", ident)); + mPathCodS = new MTConnect.Message(string.Format("{0}_Cod_S", ident)); + mPathCodT = new MTConnect.Message(string.Format("{0}_Cod_T", ident)); + mPathRunMode = new Event(string.Format("{0}_RUN_MODE", ident)); + mPathExeMode = new Event(string.Format("{0}_EXE_MODE", ident)); + mPathCurrProg = new Event(string.Format("{0}_CurrProg", ident)); + mPathCurrProgRowNum = new Event(string.Format("{0}_CurrProg_RowNum", ident)); + mPathActiveAxes = new Event(string.Format("{0}_ActiveAxes", ident)); + mPathCodG_Act = new MTConnect.Message(string.Format("{0}_CodG_Act", ident)); + mPathSubMode = new MTConnect.Message(string.Format("{0}_SubMode", ident)); mPathAlarmCNC = new Condition(string.Format("{0}_AlarmCNC", ident)); mPathAlarmPLC = new Condition(string.Format("{0}_AlarmPLC", ident)); } diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml index 33355af..8e5ae00 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml @@ -183,97 +183,8 @@ Path_01 Path num 1 - Random - - - Path_01_FeedRate - 0 - - - Path_01_FeedOverr - 0 - - - Path_01_RapidOverr - 0 - - - Path_01_PosActX - 0 - - - Path_01_PosActY - 0 - - - Path_01_PosActZ - 0 - - - Path_01_PosActI - 0 - - - Path_01_PosActJ - 0 - - - Path_01_PosActK - 0 - - - Path_01_Type - 0 - - - Path_01_PartId - 0 - - - Path_01_PZ_TOT - 0 - - - Path_01_Cod_M - 0 - - - Path_01_Cod_S - 0 - - - Path_01_Cod_T - 0 - - - Path_01_RUN_MODE - 0 - - - Path_01_EXE_MODE - 0 - - - Path_01_CurrProg - 0 - - - Path_01_CurrProg_RowNum - 0 - - - Path_01_ActiveAxes - 0 - - - Path_01_CodG_Act - 0 - - - Path_01_SubMode - 0 - - + MemLoad + diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml index 33355af..8e5ae00 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml @@ -183,97 +183,8 @@ Path_01 Path num 1 - Random - - - Path_01_FeedRate - 0 - - - Path_01_FeedOverr - 0 - - - Path_01_RapidOverr - 0 - - - Path_01_PosActX - 0 - - - Path_01_PosActY - 0 - - - Path_01_PosActZ - 0 - - - Path_01_PosActI - 0 - - - Path_01_PosActJ - 0 - - - Path_01_PosActK - 0 - - - Path_01_Type - 0 - - - Path_01_PartId - 0 - - - Path_01_PZ_TOT - 0 - - - Path_01_Cod_M - 0 - - - Path_01_Cod_S - 0 - - - Path_01_Cod_T - 0 - - - Path_01_RUN_MODE - 0 - - - Path_01_EXE_MODE - 0 - - - Path_01_CurrProg - 0 - - - Path_01_CurrProg_RowNum - 0 - - - Path_01_ActiveAxes - 0 - - - Path_01_CodG_Act - 0 - - - Path_01_SubMode - 0 - - + MemLoad + diff --git a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs index efbfc37..99be478 100644 --- a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs +++ b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs @@ -386,32 +386,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_FeedRate", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_FeedOverr", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_RapidOverr", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_PosActX", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_PosActY", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_PosActZ", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_PosActI", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_PosActJ", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_PosActK", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_Type", i + 1), "0")); - // aggiunta x revisione 2016.05.05 - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_PartId", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_PZ_TOT", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_Cod_M", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_Cod_S", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_Cod_T", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_RUN_MODE", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_EXE_MODE", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_CurrProg", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_CurrProg_RowNum", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_ActiveAxes", i + 1), "0")); - // aggiunto 2016.05.10 - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_CodG_Act", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("Path_{0:00}_SubMode", i + 1), "0")); - - Path[i] = new element(string.Format("Path_{0:00}", i + 1), string.Format("Path num {0}", i + 1), fonteDati.Random, listaDR); + Path[i] = new element(string.Format("Path_{0:00}", i + 1), string.Format("Path num {0}", i + 1), fonteDati.MemLoad, listaDR); } // salvo oggetto c.Path = Path; From f6b7b80fcbda5357ce81676223ed9a41adb0a651 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 9 Mar 2017 18:23:21 +0100 Subject: [PATCH 40/46] inizio gestione area string... --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 51 ++++++++++++++++++++++++++- 1 file changed, 50 insertions(+), 1 deletion(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index b7a6c7f..7f9e7d1 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -738,6 +738,55 @@ namespace MTC_Adapter } } + /// + /// Carica ed acquisisce dati del buffer STRING di memoria + /// + protected void getIotMem_String() + { + if (connectionOk) + { + // leggo TUTTO il blocco di memoria + inizio = DateTime.Now; + ncDevice.ReadBufferString(); + if (utils.CRB("recTime")) TimingData.addResult(string.Format("R{0}-PLC_IOT-DWord", ncDevice.PLC_MemoryAreaIOT_DWord.Length), DateTime.Now.Subtract(inizio).Ticks); + } + else + { + lg.Error("Errore connessione mancante in getIotMem_DWord"); + } + + int numero = 0; + int byteNum = 0; + double valDouble = 0; + // Processing area STRING + for (int i = 0; i < mapIOT_String.Length; i++) + { + int.TryParse(mapIOT_String[i].memAddr, out byteNum); +#if false + if (mapIOT_String[i].varName.StartsWith("IOT_C_KU_AX_")) + { + // recupero NUMERO + try + { + numero = Convert.ToInt32(mapIOT_String[i].varName.Replace("IOT_C_KU_AX_", "")); + // salvo in vettore SE possibile... + if (numero <= vettAxis.Length) + { + vettAxis[numero - 1].mAxDistDone.Value = ncDevice.PLC_MemoryAreaIOT_String[byteNum]; + } + else + { + lg.Error("Errore in inserimento vettore " + mapIOT_String[i].varName); + } + } + catch (Exception exc) + { + lg.Error(exc, "Errore in decodifica " + mapIOT_String[i].varName); + } + } +#endif + } + } public override void getGlobalData() { base.getGlobalData(); @@ -1006,7 +1055,7 @@ namespace MTC_Adapter getIotMem_Byte(); getIotMem_Word(); getIotMem_DWord(); - //getIotMem_String(); + getIotMem_String(); // processo componenti specifici x info... getUnOp(); From f18234affa6a97c120fdd3d63239794c24f239e5 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 10 Mar 2017 08:34:35 +0100 Subject: [PATCH 41/46] semplificato conf TEMP e PRESS --- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 7 ++-- .../DATA/CONF/Adapter_ItemList.xml | 36 +++++-------------- .../MTC_Adapter/Resources/SCM/SCM_ESA.xml | 36 +++++-------------- MTC_Adapter/MTC_Adapter/SetupAdapter.cs | 6 ++-- 4 files changed, 20 insertions(+), 65 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index ec19b47..ea06e39 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -174,7 +174,7 @@ namespace MTC_Adapter mPressAlias = new Event(string.Format("{0}_Alias", ident)); mPressAlias.Value = alias; - mPressValIst = new Sample(dataRefList[0].Key); + mPressValIst = new Sample(string.Format("{0}_Value", ident)); } } /// @@ -203,10 +203,9 @@ namespace MTC_Adapter mTempAlias = new Event(string.Format("{0}_Alias", ident)); mTempAlias.Value = alias; - mTempValIst = new Sample(dataRefList[0].Key); + mTempValIst = new Sample(string.Format("{0}_Value", ident)); } } - /// /// Singola Area Memoria (Kvara 1..4) /// @@ -229,7 +228,6 @@ namespace MTC_Adapter /// Num esecuzioni programma /// public Event mMemAreaProgNumRep; - /// /// INIT Classe Memory Area /// @@ -354,7 +352,6 @@ namespace MTC_Adapter /// Allarmi PCL del PATH /// public Condition mPathAlarmPLC; - /// /// Classe Path con Idx e descrizione /// diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml index 8e5ae00..b1de58b 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml @@ -135,48 +135,28 @@ Press_01 Pressostato 1 - Random - - - Press_01_Value - 0 - - + MemLoad + Press_02 Pressostato 2 - Random - - - Press_02_Value - 0 - - + MemLoad + Temp_01 Sonda Temperatura 1 - Random - - - Temp_01_Value - 0 - - + MemLoad + Temp_02 Sonda Temperatura 2 - Random - - - Temp_02_Value - 0 - - + MemLoad + diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml index 8e5ae00..b1de58b 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml @@ -135,48 +135,28 @@ Press_01 Pressostato 1 - Random - - - Press_01_Value - 0 - - + MemLoad + Press_02 Pressostato 2 - Random - - - Press_02_Value - 0 - - + MemLoad + Temp_01 Sonda Temperatura 1 - Random - - - Temp_01_Value - 0 - - + MemLoad + Temp_02 Sonda Temperatura 2 - Random - - - Temp_02_Value - 0 - - + MemLoad + diff --git a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs index 99be478..7b80b30 100644 --- a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs +++ b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs @@ -352,8 +352,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - listaDR.Add(new DataRefItem(string.Format("Press_{0:00}_Value", i + 1), "0")); - Press[i] = new element(string.Format("Press_{0:00}", i + 1), string.Format("Pressostato {0}", i + 1), fonteDati.Random, listaDR); + Press[i] = new element(string.Format("Press_{0:00}", i + 1), string.Format("Pressostato {0}", i + 1), fonteDati.MemLoad, listaDR); } // salvo oggetto c.Press = Press; @@ -369,8 +368,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - listaDR.Add(new DataRefItem(string.Format("Temp_{0:00}_Value", i + 1), "0")); - Temp[i] = new element(string.Format("Temp_{0:00}", i + 1), string.Format("Sonda Temperatura {0}", i + 1), fonteDati.Random, listaDR); + Temp[i] = new element(string.Format("Temp_{0:00}", i + 1), string.Format("Sonda Temperatura {0}", i + 1), fonteDati.MemLoad, listaDR); } // salvo oggetto c.Temp = Temp; From 187f976a9e2965e05218cd69e2efe61992dfce34 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 10 Mar 2017 08:36:50 +0100 Subject: [PATCH 42/46] semplificato conf COOLER e LUBRO --- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 6 ++-- .../DATA/CONF/Adapter_ItemList.xml | 36 +++++-------------- .../MTC_Adapter/Resources/SCM/SCM_ESA.xml | 36 +++++-------------- MTC_Adapter/MTC_Adapter/SetupAdapter.cs | 6 ++-- 4 files changed, 20 insertions(+), 64 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index ea06e39..265b9a9 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -100,7 +100,6 @@ namespace MTC_Adapter /// Status /// public Event mLubroStatus; - /// /// Classe Lubrorefrigerante /// @@ -114,7 +113,7 @@ namespace MTC_Adapter mLubroAlias = new Event(string.Format("{0}_Alias", ident)); mLubroAlias.Value = alias; - mLubroNum = new Event(dataRefList[0].Key); + mLubroNum = new Event(string.Format("{0}_Num", ident)); mLubroStatus = new Event(string.Format("{0}_Status", ident)); } } @@ -131,7 +130,6 @@ namespace MTC_Adapter /// Stato istantaneo (evento aperto/chiuso) /// public Event mCoolStatus; - /// /// Classe refrigeratore /// @@ -145,7 +143,7 @@ namespace MTC_Adapter mCoolAlias = new Event(string.Format("{0}_Alias", ident)); mCoolAlias.Value = alias; - mCoolStatus = new Event(dataRefList[0].Key); + mCoolStatus = new Event(string.Format("{0}_Status", ident)); } } /// diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml index b1de58b..4d50023 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml @@ -87,48 +87,28 @@ Lubro_01 Lubrorefrigerante 1 - Random - - - Lubro_01_Num - 0 - - + MemLoad + Lubro_02 Lubrorefrigerante 2 - Random - - - Lubro_02_Num - 0 - - + MemLoad + Cooler_01 Cooler 1 - Random - - - Cooler_01_Status - 0 - - + MemLoad + Cooler_02 Cooler 2 - Random - - - Cooler_02_Status - 0 - - + MemLoad + diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml index b1de58b..4d50023 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml @@ -87,48 +87,28 @@ Lubro_01 Lubrorefrigerante 1 - Random - - - Lubro_01_Num - 0 - - + MemLoad + Lubro_02 Lubrorefrigerante 2 - Random - - - Lubro_02_Num - 0 - - + MemLoad + Cooler_01 Cooler 1 - Random - - - Cooler_01_Status - 0 - - + MemLoad + Cooler_02 Cooler 2 - Random - - - Cooler_02_Status - 0 - - + MemLoad + diff --git a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs index 7b80b30..6fd4830 100644 --- a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs +++ b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs @@ -318,8 +318,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - listaDR.Add(new DataRefItem(string.Format("Lubro_{0:00}_Num", i + 1), "0")); - Lubro[i] = new element(string.Format("Lubro_{0:00}", i + 1), string.Format("Lubrorefrigerante {0}", i + 1), fonteDati.Random, listaDR); + Lubro[i] = new element(string.Format("Lubro_{0:00}", i + 1), string.Format("Lubrorefrigerante {0}", i + 1), fonteDati.MemLoad, listaDR); } // salvo oggetto c.Lubro = Lubro; @@ -335,8 +334,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - listaDR.Add(new DataRefItem(string.Format("Cooler_{0:00}_Status", i + 1), "0")); - Cooler[i] = new element(string.Format("Cooler_{0:00}", i + 1), string.Format("Cooler {0}", i + 1), fonteDati.Random, listaDR); + Cooler[i] = new element(string.Format("Cooler_{0:00}", i + 1), string.Format("Cooler {0}", i + 1), fonteDati.MemLoad, listaDR); } // salvo oggetto c.Cooler = Cooler; From bbd8b2f6eb92812558cbdb4f72ee71925dbdcdfc Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 10 Mar 2017 08:40:04 +0100 Subject: [PATCH 43/46] fix conf VAC_ACT e VAC_PUMP --- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 8 +-- .../DATA/CONF/Adapter_ItemList.xml | 62 ++++--------------- .../MTC_Adapter/Resources/SCM/SCM_ESA.xml | 62 ++++--------------- MTC_Adapter/MTC_Adapter/SetupAdapter.cs | 7 +-- 4 files changed, 29 insertions(+), 110 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index 265b9a9..ed65772 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -46,11 +46,10 @@ namespace MTC_Adapter fonte = baseElem.fonte; dataRefList = baseElem.dataRefList; - // genero elementi specifici MTConnect mVacPumpAlias = new Event(string.Format("{0}_Alias", ident)); mVacPumpAlias.Value = alias; - mVacPumpStatus = new Event(dataRefList[0].Key); - mVacPumpWrkTime = new Event(dataRefList[1].Key); + mVacPumpStatus = new Event(string.Format("{0}_Status", ident)); + mVacPumpWrkTime = new Event(string.Format("{0}_WrkTime", ident)); } } /// @@ -66,7 +65,6 @@ namespace MTC_Adapter /// valore numero attivazioni/disattivazioni valvola /// public Event mVacActCount; - /// /// Classe Vacuum Actuator (valvola) /// @@ -80,7 +78,7 @@ namespace MTC_Adapter mVacActAlias = new Event(string.Format("{0}_Alias", ident)); mVacActAlias.Value = alias; - mVacActCount = new Event(dataRefList[0].Key); + mVacActCount = new Event(string.Format("{0}_Count", ident)); } } /// diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml index 4d50023..2585993 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml @@ -9,78 +9,40 @@ VacPump_01 Pompa 1 - Random - - - VacPump_01_Status - 0 - - - VacPump_01_WrkTime - 0 - - + MemLoad + VacPump_02 Pompa 2 - Random - - - VacPump_02_Status - 0 - - - VacPump_02_WrkTime - 0 - - + MemLoad + VacAct_01 Attuatore vuoto 1 - Random - - - VacAct_01_Count - 0 - - + MemLoad + VacAct_02 Attuatore vuoto 2 - Random - - - VacAct_02_Count - 0 - - + MemLoad + VacAct_03 Attuatore vuoto 3 - Random - - - VacAct_03_Count - 0 - - + MemLoad + VacAct_04 Attuatore vuoto 4 - Random - - - VacAct_04_Count - 0 - - + MemLoad + diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml index 4d50023..2585993 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml @@ -9,78 +9,40 @@ VacPump_01 Pompa 1 - Random - - - VacPump_01_Status - 0 - - - VacPump_01_WrkTime - 0 - - + MemLoad + VacPump_02 Pompa 2 - Random - - - VacPump_02_Status - 0 - - - VacPump_02_WrkTime - 0 - - + MemLoad + VacAct_01 Attuatore vuoto 1 - Random - - - VacAct_01_Count - 0 - - + MemLoad + VacAct_02 Attuatore vuoto 2 - Random - - - VacAct_02_Count - 0 - - + MemLoad + VacAct_03 Attuatore vuoto 3 - Random - - - VacAct_03_Count - 0 - - + MemLoad + VacAct_04 Attuatore vuoto 4 - Random - - - VacAct_04_Count - 0 - - + MemLoad + diff --git a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs index 6fd4830..a8810ad 100644 --- a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs +++ b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs @@ -283,9 +283,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - listaDR.Add(new DataRefItem(string.Format("VacPump_{0:00}_Status", i + 1), "0")); - listaDR.Add(new DataRefItem(string.Format("VacPump_{0:00}_WrkTime", i + 1), "0")); - VacuumPump[i] = new element(string.Format("VacPump_{0:00}", i + 1), string.Format("Pompa {0}", i + 1), fonteDati.Random, listaDR); + VacuumPump[i] = new element(string.Format("VacPump_{0:00}", i + 1), string.Format("Pompa {0}", i + 1), fonteDati.MemLoad, listaDR); } // salvo oggetto c.VacuumPump = VacuumPump; @@ -301,8 +299,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - listaDR.Add(new DataRefItem(string.Format("VacAct_{0:00}_Count", i + 1), "0")); - VacuumAct[i] = new element(string.Format("VacAct_{0:00}", i + 1), string.Format("Attuatore vuoto {0}", i + 1), fonteDati.Random, listaDR); + VacuumAct[i] = new element(string.Format("VacAct_{0:00}", i + 1), string.Format("Attuatore vuoto {0}", i + 1), fonteDati.MemLoad, listaDR); } // salvo oggetto c.VacuumAct = VacuumAct; From 18442875aaf94168b860293db43f2a467eda9e24 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 10 Mar 2017 08:50:29 +0100 Subject: [PATCH 44/46] semplificato oggetto conf generale (tolto tipo sorgente dati e alias che ormai non erano + impiegati... --- MTC_Adapter/MTC_Adapter/AdapterConf.cs | 19 +---- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 62 +++----------- .../DATA/CONF/Adapter_ItemList.xml | 84 ------------------- MTC_Adapter/MTC_Adapter/MainForm.cs | 6 +- .../MTC_Adapter/Resources/SCM/SCM_ESA.xml | 84 ------------------- MTC_Adapter/MTC_Adapter/SetupAdapter.cs | 20 ++--- MTC_Adapter/MTC_Adapter/utils.cs | 22 ----- 7 files changed, 25 insertions(+), 272 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterConf.cs b/MTC_Adapter/MTC_Adapter/AdapterConf.cs index 5e3df34..e490ecf 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterConf.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterConf.cs @@ -378,41 +378,26 @@ namespace MTC_Adapter /// public string ident; /// - /// alias x poterlo riconoscere/riferire in agent - /// - public string alias; - /// - /// fonte dati - /// - public fonteDati fonte; - /// /// Elenco riferimento dati x recupero (es posizioni memoria separate da #) /// public List> dataRefList; - - + /// /// init empty /// public element() { ident = ""; - alias = ""; - fonte = fonteDati.NoData; dataRefList = new List>(); } /// /// init element con dati /// /// Identificativo univoco - /// Alias/descrizione - /// Tipo fonte dati /// Parametri x recupero dati in forma dictionary - public element(string Idx, string Alias, fonteDati FonteD, List> DataRef) + public element(string Idx, List> DataRef) { ident = Idx; - alias = Alias; - fonte = FonteD; dataRefList = DataRef; } } diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index ed65772..deedfbb 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -42,12 +42,8 @@ namespace MTC_Adapter public VacuumPump(element baseElem) { ident = baseElem.ident; - alias = baseElem.alias; - fonte = baseElem.fonte; dataRefList = baseElem.dataRefList; - - mVacPumpAlias = new Event(string.Format("{0}_Alias", ident)); - mVacPumpAlias.Value = alias; + mVacPumpStatus = new Event(string.Format("{0}_Status", ident)); mVacPumpWrkTime = new Event(string.Format("{0}_WrkTime", ident)); } @@ -72,12 +68,8 @@ namespace MTC_Adapter public VacuumAct(element baseElem) { ident = baseElem.ident; - alias = baseElem.alias; - fonte = baseElem.fonte; dataRefList = baseElem.dataRefList; - - mVacActAlias = new Event(string.Format("{0}_Alias", ident)); - mVacActAlias.Value = alias; + mVacActCount = new Event(string.Format("{0}_Count", ident)); } } @@ -105,12 +97,8 @@ namespace MTC_Adapter public Lubro(element baseElem) { ident = baseElem.ident; - alias = baseElem.alias; - fonte = baseElem.fonte; dataRefList = baseElem.dataRefList; - - mLubroAlias = new Event(string.Format("{0}_Alias", ident)); - mLubroAlias.Value = alias; + mLubroNum = new Event(string.Format("{0}_Num", ident)); mLubroStatus = new Event(string.Format("{0}_Status", ident)); } @@ -135,12 +123,8 @@ namespace MTC_Adapter public Cooler(element baseElem) { ident = baseElem.ident; - alias = baseElem.alias; - fonte = baseElem.fonte; dataRefList = baseElem.dataRefList; - - mCoolAlias = new Event(string.Format("{0}_Alias", ident)); - mCoolAlias.Value = alias; + mCoolStatus = new Event(string.Format("{0}_Status", ident)); } } @@ -164,12 +148,8 @@ namespace MTC_Adapter public Press(element baseElem) { ident = baseElem.ident; - alias = baseElem.alias; - fonte = baseElem.fonte; dataRefList = baseElem.dataRefList; - - mPressAlias = new Event(string.Format("{0}_Alias", ident)); - mPressAlias.Value = alias; + mPressValIst = new Sample(string.Format("{0}_Value", ident)); } } @@ -193,12 +173,8 @@ namespace MTC_Adapter public Tempe(element baseElem) { ident = baseElem.ident; - alias = baseElem.alias; - fonte = baseElem.fonte; dataRefList = baseElem.dataRefList; - - mTempAlias = new Event(string.Format("{0}_Alias", ident)); - mTempAlias.Value = alias; + mTempValIst = new Sample(string.Format("{0}_Value", ident)); } } @@ -231,13 +207,8 @@ namespace MTC_Adapter public MemArea(element baseElem) { ident = baseElem.ident; - alias = baseElem.alias; - fonte = baseElem.fonte; dataRefList = baseElem.dataRefList; - - mMemAreaAlias = new MTConnect.Message(string.Format("{0}_Alias", ident)); - mMemAreaAlias.Value = alias; - + mMemAreaProgName = new Event(string.Format("{0}_PROG_NAME", ident)); mMemAreaProgNumExe = new Event(string.Format("{0}_NUM_EXE", ident)); mMemAreaProgNumRep = new Event(string.Format("{0}_NUM_REP", ident)); @@ -355,12 +326,8 @@ namespace MTC_Adapter public Path(element baseElem) { ident = baseElem.ident; - alias = baseElem.alias; - fonte = baseElem.fonte; dataRefList = baseElem.dataRefList; - - mPathAlias = new MTConnect.Message(string.Format("{0}_Alias", ident)); - mPathAlias.Value = alias; + mPathFeed = new Sample(string.Format("{0}_FeedRate", ident)); mPathFeedOver = new Sample(string.Format("{0}_FeedOverr", ident)); mPathRapidOver = new Sample(string.Format("{0}_RapidOverr", ident)); @@ -448,12 +415,8 @@ namespace MTC_Adapter public UnOp(element baseElem) { ident = baseElem.ident; - alias = baseElem.alias; - fonte = baseElem.fonte; dataRefList = baseElem.dataRefList; - - mUnOpAlias = new MTConnect.Message(string.Format("{0}_Alias", ident)); - mUnOpAlias.Value = alias; + mUnOpToolId = new Event(string.Format("{0}_ToolId", ident)); mUnOpNumCU = new Event(string.Format("{0}_NumCU", ident)); mUnOpStatus = new Event(string.Format("{0}_Status", ident)); @@ -551,13 +514,8 @@ namespace MTC_Adapter public Axis(element baseElem) { ident = baseElem.ident; - alias = baseElem.alias; - fonte = baseElem.fonte; dataRefList = baseElem.dataRefList; - - // inizializzo vari eventi, sample, condizioni - mAxAlias = new MTConnect.Message(string.Format("{0}_Alias", ident)); - mAxAlias.Value = alias; + mAxType = new Event(dataRefList[0].Key); mAxType.Value = dataRefList[0].Value; mAxMainProc = new MTConnect.Message(string.Format("{0}_MainProc", ident)); diff --git a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml index 2585993..2ec34fc 100644 --- a/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml +++ b/MTC_Adapter/MTC_Adapter/DATA/CONF/Adapter_ItemList.xml @@ -8,162 +8,114 @@ VacPump_01 - Pompa 1 - MemLoad VacPump_02 - Pompa 2 - MemLoad VacAct_01 - Attuatore vuoto 1 - MemLoad VacAct_02 - Attuatore vuoto 2 - MemLoad VacAct_03 - Attuatore vuoto 3 - MemLoad VacAct_04 - Attuatore vuoto 4 - MemLoad Lubro_01 - Lubrorefrigerante 1 - MemLoad Lubro_02 - Lubrorefrigerante 2 - MemLoad Cooler_01 - Cooler 1 - MemLoad Cooler_02 - Cooler 2 - MemLoad Press_01 - Pressostato 1 - MemLoad Press_02 - Pressostato 2 - MemLoad Temp_01 - Sonda Temperatura 1 - MemLoad Temp_02 - Sonda Temperatura 2 - MemLoad Path_01 - Path num 1 - MemLoad UnOp_01 - Unita Op num 1 - MemLoad UnOp_02 - Unita Op num 2 - MemLoad UnOp_03 - Unita Op num 3 - MemLoad UnOp_04 - Unita Op num 4 - MemLoad UnOp_05 - Unita Op num 5 - MemLoad UnOp_06 - Unita Op num 6 - MemLoad UnOp_07 - Unita Op num 7 - MemLoad UnOp_08 - Unita Op num 8 - MemLoad Axis_01 - Asse num 1 - MemLoad Axis_01_Type @@ -173,8 +125,6 @@ Axis_02 - Asse num 2 - MemLoad Axis_02_Type @@ -184,8 +134,6 @@ Axis_03 - Asse num 3 - MemLoad Axis_03_Type @@ -195,8 +143,6 @@ Axis_04 - Asse num 4 - MemLoad Axis_04_Type @@ -206,8 +152,6 @@ Axis_05 - Asse num 5 - MemLoad Axis_05_Type @@ -217,8 +161,6 @@ Axis_06 - Asse num 6 - MemLoad Axis_06_Type @@ -228,8 +170,6 @@ Axis_07 - Asse num 7 - MemLoad Axis_07_Type @@ -239,8 +179,6 @@ Axis_08 - Asse num 8 - MemLoad Axis_08_Type @@ -250,8 +188,6 @@ Axis_09 - Asse num 9 - MemLoad Axis_09_Type @@ -261,8 +197,6 @@ Axis_10 - Asse num 10 - MemLoad Axis_10_Type @@ -272,8 +206,6 @@ Axis_11 - Asse num 11 - MemLoad Axis_11_Type @@ -283,8 +215,6 @@ Axis_12 - Asse num 12 - MemLoad Axis_12_Type @@ -294,8 +224,6 @@ Axis_13 - Asse num 13 - MemLoad Axis_13_Type @@ -305,8 +233,6 @@ Axis_14 - Asse num 14 - MemLoad Axis_14_Type @@ -316,8 +242,6 @@ Axis_15 - Asse num 15 - MemLoad Axis_15_Type @@ -329,26 +253,18 @@ MemArea_01 - Area di memoria 1 - MemLoad MemArea_02 - Area di memoria 2 - MemLoad MemArea_03 - Area di memoria 3 - MemLoad MemArea_04 - Area di memoria 4 - MemLoad diff --git a/MTC_Adapter/MTC_Adapter/MainForm.cs b/MTC_Adapter/MTC_Adapter/MainForm.cs index e24a3d9..3710d9a 100644 --- a/MTC_Adapter/MTC_Adapter/MainForm.cs +++ b/MTC_Adapter/MTC_Adapter/MainForm.cs @@ -454,19 +454,19 @@ namespace MTC_Adapter // fix componenti vettoriali PATH, UNOP, ASSI... for (int i = 0; i < adpConf.nPath; i++) { - cbPathSel.Items.Insert(i, adpConf.Path[i].alias); + cbPathSel.Items.Insert(i, adpConf.Path[i].ident); } if (adpConf.nPath > 0) cbPathSel.SelectedIndex = 0; for (int i = 0; i < adpConf.nUnOp; i++) { - cbUnOpSel.Items.Insert(i, adpConf.UnOp[i].alias); + cbUnOpSel.Items.Insert(i, adpConf.UnOp[i].ident); } if (adpConf.nUnOp > 0) cbUnOpSel.SelectedIndex = 0; for (int i = 0; i < adpConf.nAxis; i++) { - cbAxNum.Items.Insert(i, adpConf.Axis[i].alias); + cbAxNum.Items.Insert(i, adpConf.Axis[i].ident); } if (adpConf.nAxis > 0) cbAxNum.SelectedIndex = 0; diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml index 2585993..2ec34fc 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/SCM_ESA.xml @@ -8,162 +8,114 @@ VacPump_01 - Pompa 1 - MemLoad VacPump_02 - Pompa 2 - MemLoad VacAct_01 - Attuatore vuoto 1 - MemLoad VacAct_02 - Attuatore vuoto 2 - MemLoad VacAct_03 - Attuatore vuoto 3 - MemLoad VacAct_04 - Attuatore vuoto 4 - MemLoad Lubro_01 - Lubrorefrigerante 1 - MemLoad Lubro_02 - Lubrorefrigerante 2 - MemLoad Cooler_01 - Cooler 1 - MemLoad Cooler_02 - Cooler 2 - MemLoad Press_01 - Pressostato 1 - MemLoad Press_02 - Pressostato 2 - MemLoad Temp_01 - Sonda Temperatura 1 - MemLoad Temp_02 - Sonda Temperatura 2 - MemLoad Path_01 - Path num 1 - MemLoad UnOp_01 - Unita Op num 1 - MemLoad UnOp_02 - Unita Op num 2 - MemLoad UnOp_03 - Unita Op num 3 - MemLoad UnOp_04 - Unita Op num 4 - MemLoad UnOp_05 - Unita Op num 5 - MemLoad UnOp_06 - Unita Op num 6 - MemLoad UnOp_07 - Unita Op num 7 - MemLoad UnOp_08 - Unita Op num 8 - MemLoad Axis_01 - Asse num 1 - MemLoad Axis_01_Type @@ -173,8 +125,6 @@ Axis_02 - Asse num 2 - MemLoad Axis_02_Type @@ -184,8 +134,6 @@ Axis_03 - Asse num 3 - MemLoad Axis_03_Type @@ -195,8 +143,6 @@ Axis_04 - Asse num 4 - MemLoad Axis_04_Type @@ -206,8 +152,6 @@ Axis_05 - Asse num 5 - MemLoad Axis_05_Type @@ -217,8 +161,6 @@ Axis_06 - Asse num 6 - MemLoad Axis_06_Type @@ -228,8 +170,6 @@ Axis_07 - Asse num 7 - MemLoad Axis_07_Type @@ -239,8 +179,6 @@ Axis_08 - Asse num 8 - MemLoad Axis_08_Type @@ -250,8 +188,6 @@ Axis_09 - Asse num 9 - MemLoad Axis_09_Type @@ -261,8 +197,6 @@ Axis_10 - Asse num 10 - MemLoad Axis_10_Type @@ -272,8 +206,6 @@ Axis_11 - Asse num 11 - MemLoad Axis_11_Type @@ -283,8 +215,6 @@ Axis_12 - Asse num 12 - MemLoad Axis_12_Type @@ -294,8 +224,6 @@ Axis_13 - Asse num 13 - MemLoad Axis_13_Type @@ -305,8 +233,6 @@ Axis_14 - Asse num 14 - MemLoad Axis_14_Type @@ -316,8 +242,6 @@ Axis_15 - Asse num 15 - MemLoad Axis_15_Type @@ -329,26 +253,18 @@ MemArea_01 - Area di memoria 1 - MemLoad MemArea_02 - Area di memoria 2 - MemLoad MemArea_03 - Area di memoria 3 - MemLoad MemArea_04 - Area di memoria 4 - MemLoad diff --git a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs index a8810ad..6b8f87d 100644 --- a/MTC_Adapter/MTC_Adapter/SetupAdapter.cs +++ b/MTC_Adapter/MTC_Adapter/SetupAdapter.cs @@ -267,7 +267,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - MemArea[i] = new element(string.Format("MemArea_{0:00}", i + 1), string.Format("Area di memoria {0}", i + 1), fonteDati.MemLoad, listaDR); + MemArea[i] = new element(string.Format("MemArea_{0:00}", i + 1), listaDR); } // salvo oggetto c.MemArea = MemArea; @@ -283,7 +283,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - VacuumPump[i] = new element(string.Format("VacPump_{0:00}", i + 1), string.Format("Pompa {0}", i + 1), fonteDati.MemLoad, listaDR); + VacuumPump[i] = new element(string.Format("VacPump_{0:00}", i + 1), listaDR); } // salvo oggetto c.VacuumPump = VacuumPump; @@ -299,7 +299,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - VacuumAct[i] = new element(string.Format("VacAct_{0:00}", i + 1), string.Format("Attuatore vuoto {0}", i + 1), fonteDati.MemLoad, listaDR); + VacuumAct[i] = new element(string.Format("VacAct_{0:00}", i + 1), listaDR); } // salvo oggetto c.VacuumAct = VacuumAct; @@ -315,7 +315,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - Lubro[i] = new element(string.Format("Lubro_{0:00}", i + 1), string.Format("Lubrorefrigerante {0}", i + 1), fonteDati.MemLoad, listaDR); + Lubro[i] = new element(string.Format("Lubro_{0:00}", i + 1), listaDR); } // salvo oggetto c.Lubro = Lubro; @@ -331,7 +331,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - Cooler[i] = new element(string.Format("Cooler_{0:00}", i + 1), string.Format("Cooler {0}", i + 1), fonteDati.MemLoad, listaDR); + Cooler[i] = new element(string.Format("Cooler_{0:00}", i + 1), listaDR); } // salvo oggetto c.Cooler = Cooler; @@ -347,7 +347,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - Press[i] = new element(string.Format("Press_{0:00}", i + 1), string.Format("Pressostato {0}", i + 1), fonteDati.MemLoad, listaDR); + Press[i] = new element(string.Format("Press_{0:00}", i + 1), listaDR); } // salvo oggetto c.Press = Press; @@ -363,7 +363,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - Temp[i] = new element(string.Format("Temp_{0:00}", i + 1), string.Format("Sonda Temperatura {0}", i + 1), fonteDati.MemLoad, listaDR); + Temp[i] = new element(string.Format("Temp_{0:00}", i + 1), listaDR); } // salvo oggetto c.Temp = Temp; @@ -379,7 +379,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - Path[i] = new element(string.Format("Path_{0:00}", i + 1), string.Format("Path num {0}", i + 1), fonteDati.MemLoad, listaDR); + Path[i] = new element(string.Format("Path_{0:00}", i + 1), listaDR); } // salvo oggetto c.Path = Path; @@ -395,7 +395,7 @@ namespace MTC_Adapter { // inizializzo list x parametri listaDR = new List>(); - UnOp[i] = new element(string.Format("UnOp_{0:00}", i + 1), string.Format("Unita Op num {0}", i + 1), fonteDati.MemLoad, listaDR); + UnOp[i] = new element(string.Format("UnOp_{0:00}", i + 1), listaDR); } // salvo oggetto c.UnOp = UnOp; @@ -412,7 +412,7 @@ namespace MTC_Adapter // inizializzo list x parametri listaDR = new List>(); listaDR.Add(new DataRefItem(string.Format("Axis_{0:00}_Type", i + 1), "LINEAR")); - Axis[i] = new element(string.Format("Axis_{0:00}", i + 1), string.Format("Asse num {0}", i + 1), fonteDati.MemLoad, listaDR); + Axis[i] = new element(string.Format("Axis_{0:00}", i + 1), listaDR); } // salvo oggetto c.Axis = Axis; diff --git a/MTC_Adapter/MTC_Adapter/utils.cs b/MTC_Adapter/MTC_Adapter/utils.cs index fa88a76..2059491 100644 --- a/MTC_Adapter/MTC_Adapter/utils.cs +++ b/MTC_Adapter/MTC_Adapter/utils.cs @@ -448,28 +448,6 @@ namespace MTC_Adapter /// SIEMENS } - /// - /// Sorgente dati (per modalità recupero sw) - /// - public enum fonteDati - { - /// - /// dati recuperati da metodi/classi con HMI - /// - HMI, - /// - /// dati recuperati da recupero memorie PLC/CNC - /// - MemLoad, - /// - /// in questo caso dato fittizio/senza dati (x init) - /// - NoData, - /// - /// Dati generati random - /// - Random - } public enum gatherCycle { From ca17aea695ff075c4e182e1f8e35a51e79406f9e Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 10 Mar 2017 09:47:35 +0100 Subject: [PATCH 45/46] fix: sistemato errore alias ancora presente x objects conf --- MTC_Adapter/MTC_Adapter/AdapterESA.cs | 6 +- MTC_Adapter/MTC_Adapter/AdapterGeneric.cs | 59 +------------------ MTC_Adapter/MTC_Adapter/App.SCM-ESA.config | 2 + .../MTC_Adapter/Resources/SCM/Appunti SCM.txt | 4 ++ 4 files changed, 9 insertions(+), 62 deletions(-) diff --git a/MTC_Adapter/MTC_Adapter/AdapterESA.cs b/MTC_Adapter/MTC_Adapter/AdapterESA.cs index 7f9e7d1..ffd72a1 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterESA.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterESA.cs @@ -11,10 +11,6 @@ namespace MTC_Adapter { public class AdapterESA : AdapterGeneric { -#if false - // vettore valori in file interscambio - public Dictionary generalStatus; -#endif /// /// Configurazione valori da leggere IOT_Byte /// @@ -1061,7 +1057,7 @@ namespace MTC_Adapter getUnOp(); getPath(); getAxis(); - + lg.Info("DONE processAllMemory"); } /// diff --git a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs index deedfbb..6562d53 100644 --- a/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs +++ b/MTC_Adapter/MTC_Adapter/AdapterGeneric.cs @@ -23,10 +23,6 @@ namespace MTC_Adapter /// public class VacuumPump : element { - /// - /// Alias - /// - public Event mVacPumpAlias; /// /// valore indca stato aperto/chiuso /// @@ -53,10 +49,6 @@ namespace MTC_Adapter /// public class VacuumAct : element { - /// - /// Alias - /// - public Event mVacActAlias; /// /// valore numero attivazioni/disattivazioni valvola /// @@ -78,10 +70,6 @@ namespace MTC_Adapter /// public class Lubro : element { - /// - /// Alias - /// - public Event mLubroAlias; /// /// numero pompate necessarie per far scattare sensore /// @@ -108,10 +96,6 @@ namespace MTC_Adapter /// public class Cooler : element { - /// - /// Alias - /// - public Event mCoolAlias; /// /// Stato istantaneo (evento aperto/chiuso) /// @@ -133,10 +117,6 @@ namespace MTC_Adapter /// public class Press : element { - /// - /// Alias - /// - public Event mPressAlias; /// /// valore pressione istantaneo /// @@ -158,10 +138,6 @@ namespace MTC_Adapter /// public class Tempe : element { - /// - /// Alias - /// - public Event mTempAlias; /// /// valore temperatura istantaneo /// @@ -183,11 +159,6 @@ namespace MTC_Adapter /// public class MemArea : element { - /// - /// Alias - /// - public MTConnect.Message mMemAreaAlias; - /// /// Programma caricato /// @@ -219,10 +190,6 @@ namespace MTC_Adapter /// public class Path : element { - /// - /// Alias - /// - public MTConnect.Message mPathAlias; /// /// Tipo Path (LAVOR/ASSERV) /// @@ -361,11 +328,7 @@ namespace MTC_Adapter public class UnOp : element { /// - /// Alias - /// - public MTConnect.Message mUnOpAlias; - /// - /// Alias + /// ToolID /// public Event mUnOpToolId; /// @@ -434,10 +397,6 @@ namespace MTC_Adapter /// public class Axis : element { - /// - /// Descrizione / Alias - /// - public MTConnect.Message mAxAlias; /// /// Processo di appartenenza /// @@ -506,9 +465,8 @@ namespace MTC_Adapter /// Allarmi PCL del PATH /// public Condition mAxAlarmPLC; - /// - /// Classe Asse con relativo ID UNIVOCO ed alias + /// Classe Asse con relativo ID UNIVOCO /// /// element base contenente parametri (da XML) public Axis(element baseElem) @@ -1033,7 +991,6 @@ namespace MTC_Adapter for (int i = 0; i < adpConf.nVacuumAct; i++) { vettVacAct[i] = new VacuumAct(adpConf.VacuumAct[i]); - //mAdapter.AddDataItem(vettVacAct[i].mVacActAlias); mAdapter.AddDataItem(vettVacAct[i].mVacActCount); } // Lubrorefrigeranti @@ -1041,7 +998,6 @@ namespace MTC_Adapter for (int i = 0; i < adpConf.nLubro; i++) { vettLubro[i] = new Lubro(adpConf.Lubro[i]); - //mAdapter.AddDataItem(vettLubro[i].mLubroAlias); mAdapter.AddDataItem(vettLubro[i].mLubroNum); mAdapter.AddDataItem(vettLubro[i].mLubroStatus); } @@ -1050,7 +1006,6 @@ namespace MTC_Adapter for (int i = 0; i < adpConf.nCooler; i++) { vettCooler[i] = new Cooler(adpConf.Cooler[i]); - //mAdapter.AddDataItem(vettCooler[i].mCoolAlias); mAdapter.AddDataItem(vettCooler[i].mCoolStatus); } // Press @@ -1058,7 +1013,6 @@ namespace MTC_Adapter for (int i = 0; i < adpConf.nPress; i++) { vettPress[i] = new Press(adpConf.Press[i]); - //mAdapter.AddDataItem(vettPress[i].mPressAlias); mAdapter.AddDataItem(vettPress[i].mPressValIst); } // Temp @@ -1066,7 +1020,6 @@ namespace MTC_Adapter for (int i = 0; i < adpConf.nTemp; i++) { vettTempe[i] = new Tempe(adpConf.Temp[i]); - //mAdapter.AddDataItem(vettTempe[i].mTempAlias); mAdapter.AddDataItem(vettTempe[i].mTempValIst); } // Path @@ -1074,7 +1027,6 @@ namespace MTC_Adapter for (int i = 0; i < adpConf.nPath; i++) { vettPath[i] = new Path(adpConf.Path[i]); - mAdapter.AddDataItem(vettPath[i].mPathAlias); mAdapter.AddDataItem(vettPath[i].mPathFeed); mAdapter.AddDataItem(vettPath[i].mPathFeedOver); mAdapter.AddDataItem(vettPath[i].mPathRapidOver); @@ -1101,7 +1053,6 @@ namespace MTC_Adapter // aggiungo condizioni allarme... mAdapter.AddDataItem(vettPath[i].mPathAlarmCNC); mAdapter.AddDataItem(vettPath[i].mPathAlarmPLC); - // altre aggiunte } // UnOp vettUnOp = new UnOp[adpConf.nUnOp]; @@ -1124,7 +1075,6 @@ namespace MTC_Adapter for (int i = 0; i < adpConf.nAxis; i++) { vettAxis[i] = new Axis(adpConf.Axis[i]); - //mAdapter.AddDataItem(vettAxis[i].mAxAlias); mAdapter.AddDataItem(vettAxis[i].mAxMainProc); mAdapter.AddDataItem(vettAxis[i].mAxIsMaster); mAdapter.AddDataItem(vettAxis[i].mAxMastId); @@ -1150,13 +1100,8 @@ namespace MTC_Adapter mAdapter.AddDataItem(mMessage); // allarmi "base" - //mAdapter.AddDataItem(mAlarmSystem); mAdapter.AddDataItem(mAlarmCNC); mAdapter.AddDataItem(mAlarmPLC); - //mAdapter.AddDataItem(mAlarmHMI); - //mAdapter.AddDataItem(mAlarmGeneral); - - // azioni utente mAdapter.AddDataItem(mUserAction); diff --git a/MTC_Adapter/MTC_Adapter/App.SCM-ESA.config b/MTC_Adapter/MTC_Adapter/App.SCM-ESA.config index 5eaa87c..3523d79 100644 --- a/MTC_Adapter/MTC_Adapter/App.SCM-ESA.config +++ b/MTC_Adapter/MTC_Adapter/App.SCM-ESA.config @@ -5,6 +5,8 @@ + + diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt index 1a18e5e..8b8afba 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt @@ -13,3 +13,7 @@ TODO - semplificare file conf adapter x tutto (tranne assi che serve TYPE LINEAR/ROTARY) - completare le aree IOT-STRING - eliminare da thdNcEsaGvKvara "vecchie" aree di memoria + - aggiungere elementi x AGENT + * MemArea_01_PROG_NAME + * MemArea_01_NUM_EXE + * MemArea_01_NUM_REP \ No newline at end of file From ed7f8aef3da496b532db295aad09b339e7fa89d6 Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Fri, 10 Mar 2017 10:22:03 +0100 Subject: [PATCH 46/46] refresh versione da testare... --- AgentBin/SCM.xml | 293 ++++++++++++++++++ MTC_Adapter/MTC_Adapter.sln | 5 +- .../MTC_Adapter/Resources/SCM/Appunti SCM.txt | 7 +- 3 files changed, 297 insertions(+), 8 deletions(-) create mode 100644 AgentBin/SCM.xml diff --git a/AgentBin/SCM.xml b/AgentBin/SCM.xml new file mode 100644 index 0000000..51ab2af --- /dev/null +++ b/AgentBin/SCM.xml @@ -0,0 +1,293 @@ + + +
+ + + Test machine SCM + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/MTC_Adapter/MTC_Adapter.sln b/MTC_Adapter/MTC_Adapter.sln index 63a2158..c931420 100644 --- a/MTC_Adapter/MTC_Adapter.sln +++ b/MTC_Adapter/MTC_Adapter.sln @@ -7,9 +7,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetAdapterSDK", "..\..\. EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{695A97F7-B396-4DD3-8596-F043ECA3E2BD}" ProjectSection(SolutionItems) = preProject + ..\..\..\..\..\Dropbox\30_Clienti\CMS\CMS-MTC\SetupMTC\AGENT\DATA\CONF_DEMO\Agent_ItemList_ESAKVARA.xml = ..\..\..\..\..\Dropbox\30_Clienti\CMS\CMS-MTC\SetupMTC\AGENT\DATA\CONF_DEMO\Agent_ItemList_ESAKVARA.xml + ..\..\..\..\..\Dropbox\30_Clienti\CMS\CMS-MTC\SetupMTC\AGENT\DATA\CONF_DEMO\Agent_ItemList_FANUC.xml = ..\..\..\..\..\Dropbox\30_Clienti\CMS\CMS-MTC\SetupMTC\AGENT\DATA\CONF_DEMO\Agent_ItemList_FANUC.xml ..\AgentBin\CMS.xml = ..\AgentBin\CMS.xml - ..\AgentBin\simulator\CMS_DEMO.xml = ..\AgentBin\simulator\CMS_DEMO.xml - ..\AgentBin\simulator\SCM_DEMO.xml = ..\AgentBin\simulator\SCM_DEMO.xml + ..\AgentBin\SCM.xml = ..\AgentBin\SCM.xml EndProjectSection EndProject Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "CMSCncLib", "CMSCncLib\CMSCncLib.vbproj", "{2D769FFD-1122-4276-A115-29246E6D23C5}" diff --git a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt index 8b8afba..36a39a2 100644 --- a/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt +++ b/MTC_Adapter/MTC_Adapter/Resources/SCM/Appunti SCM.txt @@ -10,10 +10,5 @@ TODO - - semplificare file conf adapter x tutto (tranne assi che serve TYPE LINEAR/ROTARY) - completare le aree IOT-STRING - - eliminare da thdNcEsaGvKvara "vecchie" aree di memoria - - aggiungere elementi x AGENT - * MemArea_01_PROG_NAME - * MemArea_01_NUM_EXE - * MemArea_01_NUM_REP \ No newline at end of file + - eliminare da thdNcEsaGvKvara "vecchie" aree di memoria \ No newline at end of file