420 Commits

Author SHA1 Message Date
Samuele E. Locatelli 6f1eaffda8 test senza specifica CPU target... 2018-08-29 11:57:48 +02:00
Samuele E. Locatelli 1e6cb3bca5 provo di nuovo con config=release 2018-08-29 11:03:15 +02:00
Samuele E. Locatelli 37321f1808 cambio da branch il valore del parametro config corrente... 2018-08-29 08:48:30 +02:00
Samuele E. Locatelli 7f80b3248d cambio modalità inserimento parametri 2018-08-28 22:35:52 +02:00
Samuele E. Locatelli 702f9e70f1 test build come conf = release... 2018-08-28 22:28:14 +02:00
Samuele E. Locatelli 1fd453dd1d testo altra catena parametri compilazion x OSAI 2018-08-28 22:17:47 +02:00
Samuele E. Locatelli c9a1af40a9 provo compilazone di build x ricerca errori... 2018-08-28 22:13:35 +02:00
Samuele E. Locatelli b443b52dbe cambio modalità passaggio parametri 2018-08-28 22:08:58 +02:00
Samuele E. Locatelli fbf8b1fa9b altro test parametri jenkins 2018-08-28 22:04:37 +02:00
Samuele E. Locatelli f764e490af aggiunti parametri compilazione progetto CMS CNC (Siemens e FANUC) 2018-08-28 21:59:08 +02:00
Samuele E. Locatelli 2873b6b35c fix SCMA naming 2018-08-28 21:55:28 +02:00
Samuele E. Locatelli 38a86f27fc commit jenkinsfile x testare compilazione OSAI oltre al resto... 2018-08-28 21:51:27 +02:00
Samuele E. Locatelli b0cc8416fa Ancora test RD... 2018-08-28 17:59:05 +02:00
Samuele E. Locatelli 94e8648e69 altro tentativo fix RD 2018-08-28 17:54:47 +02:00
Samuele E. Locatelli f1971a6c18 test nuova versione 2018-08-28 17:39:52 +02:00
Samuele E. Locatelli 1dfdf7912f ancora test x fase cancellazione BIN pre compilazione 2018-08-28 17:39:37 +02:00
Samuele E. Locatelli 1b66839725 aGGIUNTO STEP PULIZIA BIN DA RITESTARE 2018-08-28 17:35:33 +02:00
Samuele E. Locatelli fe7354a376 typo correction... 2018-08-28 17:29:11 +02:00
Samuele E. Locatelli d21dbbf34f ancora modifiche nel naming... typo error x zip 2018-08-28 17:28:03 +02:00
Samuele E. Locatelli 063d6ece08 update comandi x compressione dei 2 diversi progetti 2018-08-28 17:23:21 +02:00
Samuele E. Locatelli f41a6037f6 correzione e ulteriore test installer MySQL (path fart) 2018-08-28 16:57:47 +02:00
Samuele E. Locatelli 10345e6c84 Aggiunti files x deploy + update jenkins x testare pubblicazione MySQL 2018-08-28 16:55:32 +02:00
Samuele E. Locatelli b87b167853 aggiunto uno step di test x creazione installer di test 2018-08-28 16:28:37 +02:00
Samuele E. Locatelli 402255643f Pulizia codice da commenti, tutto ok... 2018-08-28 15:44:06 +02:00
Samuele E. Locatelli f8f7178e06 aggiunto in MSBuild tag def costanti 2018-08-28 15:36:51 +02:00
Samuele E. Locatelli e782d7b8b0 provo fix siemens in altro modo... 2018-08-28 15:22:36 +02:00
Samuele E. Locatelli ecde4ca013 aggiunta esplicita SIEMENS x classe adapter 2018-08-28 15:19:11 +02:00
Samuele E. Locatelli d879448a5a refresh 2018-08-27 19:37:16 +02:00
Samuele E. Locatelli a8b10ec3da pulizia proj 2018-08-27 19:31:48 +02:00
Samuele E. Locatelli 165624d9ab ancora test 2018-08-27 19:20:04 +02:00
Samuele E. Locatelli 8b5484483e cambiato par opzionale siemens 2018-08-27 19:18:43 +02:00
Samuele E. Locatelli 19eae53d2d prova x fix (boh...) 2018-08-27 19:10:45 +02:00
Samuele E. Locatelli c28e6a307a test sbagliato (osai x siemens) x vedere se è quello errore 2018-08-27 19:04:49 +02:00
Samuele E. Locatelli 6550f63b5e altro test 2018-08-27 19:02:51 +02:00
Samuele E. Locatelli 76b4de916c provo a modificare costruttore SIEMENS 2018-08-27 18:55:10 +02:00
Samuele E. Locatelli 0692751128 altro test fix compilazione 2018-08-27 18:52:33 +02:00
Samuele E. Locatelli b751e440fc typo 2018-08-27 18:50:48 +02:00
Samuele E. Locatelli 8ec5b72f9c altra prova correzione 2018-08-27 18:48:39 +02:00
Samuele E. Locatelli b346299a22 fix avvio siemens senza try/catch 2018-08-27 18:47:04 +02:00
Samuele E. Locatelli 4eeb9e87da cambio tipo exc 2018-08-27 18:45:16 +02:00
Samuele E. Locatelli 362eab2e27 riprovo test 2018-08-27 18:43:57 +02:00
Samuele E. Locatelli 85320227d5 nuova versione 2018-08-27 18:39:22 +02:00
Samuele E. Locatelli 52de588270 forse fix... 2018-08-27 18:38:08 +02:00
Samuele E. Locatelli 3a42205366 altro tentativo fix 2018-08-27 18:36:28 +02:00
Samuele E. Locatelli 2c52d115cd test con MSBuild vers 14 2018-08-27 17:58:15 +02:00
Samuele E. Locatelli b5f321a180 Aggiunto step build della DEVELOP... 2018-08-27 17:44:46 +02:00
Samuele E. Locatelli 8fa067c932 Riconf x jenkinsfile 2018-08-27 17:41:25 +02:00
Samuele E. Locatelli 6685fc42df test effettuati positivamente! 2018-08-27 16:56:52 +02:00
Samuele E. Locatelli 02dd6a04b2 fix init grp e tipo... 2018-08-27 16:47:06 +02:00
Samuele E. Locatelli 5e19bc2db2 Aggiunti TEST da fare x AXIS 2018-08-27 16:24:48 +02:00
Samuele E. Locatelli 2c2b3847da iniziato modifica AdapterGeneric 2018-08-27 15:59:35 +02:00
Samuele E. Locatelli 50e74ca4aa finito fanuc e siemens, manca solo obj generico... 2018-08-27 15:48:34 +02:00
Samuele E. Locatelli 3d50f23bc7 continuo modifiche (NON ANCORA OK) 2018-08-27 15:12:53 +02:00
Samuele E. Locatelli 14f343b6ee Inizio modifiche x AXIS 2018-08-27 14:37:45 +02:00
Samuele E. Locatelli c4920b3609 test OK, fatta pulizia codice... 2018-08-25 12:06:36 +02:00
Samuele E. Locatelli 7c65fb0b1a pulizia + review x leggere dati + variazione UnOp (da testare) 2018-08-25 12:00:59 +02:00
Samuele E. Locatelli 0d06a132f3 completata pulizia 2018-08-25 10:49:10 +02:00
Samuele E. Locatelli 8dd4a71161 test allarmi specifici OK (andava cambiato MODO chiamata allarmi), continuo 2018-08-25 10:44:40 +02:00
Samuele E. Locatelli 8919c8d344 aggiunto nuovo test gestione allarmi 2018-08-25 10:39:08 +02:00
Samuele E. Locatelli 5de4de7e9b pulizia codice... 2018-08-24 20:09:13 +02:00
Samuele E. Locatelli 5719c846ef esteso test 2018-08-24 19:33:11 +02:00
Samuele E. Locatelli 58df475727 ultima aprte test (messaggi allarme) 2018-08-24 19:32:35 +02:00
Samuele E. Locatelli 78184965fe secondo test... 2018-08-24 19:06:23 +02:00
Samuele E. Locatelli 3203d0b00a cast esplicito x le conditions 2018-08-24 19:01:57 +02:00
Samuele E. Locatelli 1229fbb5b2 aggiunta obj su gateway x gestione allarmi... 2018-08-24 18:52:14 +02:00
Samuele E. Locatelli 24e4814fa1 fix init conditions di singolo asse (si spesa...) 2018-08-24 18:17:43 +02:00
Samuele E. Locatelli 1ae1e28724 preparata batteria di test... 2018-08-24 18:04:36 +02:00
Samuele E. Locatelli 02b5b9d390 finito remapping PATH, ora inserimento TEST... 2018-08-24 17:57:40 +02:00
Samuele E. Locatelli f0a59a812f NON ancora ok ma finito fanuc... 2018-08-24 17:54:47 +02:00
Samuele E. Locatelli 80ba7cf1a3 completata prima aprte revisione path (x adaptergeneric...) 2018-08-24 17:39:00 +02:00
Samuele E. Locatelli 66a274529b Test OSAI OK + fix commenti 2018-08-24 16:20:55 +02:00
Samuele E. Locatelli 5ea7e65fe5 riscritto temp/press/areemem (e test da fare...) 2018-08-24 15:46:38 +02:00
Samuele E. Locatelli 949a80fb62 Testing OK, fatta pulizia commenti 2018-08-24 12:54:14 +02:00
Samuele E. Locatelli c3c4a5d9dc modifica (+ test da validare) x slitta, protezioni, cooler 2018-08-24 12:50:46 +02:00
Samuele E. Locatelli 72e6371430 ancora pulizia codice... 2018-08-24 12:43:36 +02:00
Samuele E. Locatelli 794bb63dcf Test ok, pulizia codice! 2018-08-24 12:42:14 +02:00
Samuele E. Locatelli 8607788e89 porting elementi VacAct e Lubro (da testare) 2018-08-24 12:39:59 +02:00
Samuele E. Locatelli aed58d5e1e typo x pulizia commenti 2018-08-24 12:28:09 +02:00
Samuele E. Locatelli e8882c852f Conversione oggetto VacuumPump 2018-08-24 12:24:55 +02:00
Samuele E. Locatelli b5f60bf136 ancora pulizia codice... 2018-08-24 12:05:08 +02:00
Samuele E. Locatelli b822732ef2 pulizia codice da commenti dopo testing 2018-08-24 12:00:47 +02:00
Samuele E. Locatelli dac1b03b87 Update molte variabili + testing 2018-08-24 11:54:24 +02:00
Samuele E. Locatelli 6a314e34e9 Conversione analogdata e status (da testare) 2018-08-24 11:21:10 +02:00
Samuele E. Locatelli 7337f9d48a pulizia codice da commenti 2018-08-24 11:05:32 +02:00
Samuele E. Locatelli f99bd04f49 fix gestione counters... 2018-08-24 11:03:28 +02:00
Samuele E. Locatelli fc97a0cebc da testare counters generici... 2018-08-24 10:04:22 +02:00
Samuele E. Locatelli 9592e403fc pulizia commenti post modifica codice 2018-08-24 09:33:55 +02:00
Samuele E. Locatelli caca8e380b modifica power, procSel, operatorID con test... 2018-08-24 09:06:41 +02:00
Samuele E. Locatelli 132ce583ff Pulizia commenti 2018-08-24 08:44:48 +02:00
Samuele E. Locatelli 3c1abedd50 spostato primi 2 samples da testare... 2018-08-24 07:42:23 +02:00
Samuele E. Locatelli e69bf62137 typo & code cleanup 2018-08-24 07:34:43 +02:00
Samuele E. Locatelli b1f6446d23 aggiunti test reset x ACC_TIME e ACC_TIME_WORK 2018-08-23 22:42:02 +02:00
Samuele E. Locatelli 0335436dce fix ACC_TIME e ACC_TIME_WORK 2018-08-23 22:30:49 +02:00
Samuele E. Locatelli aa4ba0020e pulizia aree commentate... 2018-08-23 22:13:23 +02:00
Samuele E. Locatelli 4ed799f300 finito testing status/e_stop... 2018-08-23 22:09:10 +02:00
Samuele E. Locatelli 65f7faf638 finito fix passaggio status/e_stop su nuovi obj... 2018-08-23 22:01:37 +02:00
Samuele E. Locatelli 25237edc61 finito di configurare passaggio status/e_stop su nuovi obj... 2018-08-23 21:51:37 +02:00
Samuele E. Locatelli 2c2936d670 iniziata (MA NON FINITA!!!) modifica x e_stop & co... 2018-08-23 13:43:14 +02:00
Samuele E. Locatelli 4197353771 inizio riscrittura x testing di altre variabilid a convertire... 2018-08-23 12:42:02 +02:00
Samuele E. Locatelli 8c89beecdc sistemato test e commentate parti inutili oggetti 2018-08-23 12:34:41 +02:00
Samuele E. Locatelli ed493313b9 Aggiuno altro costruttore itemNode x generalizzare... 2018-08-23 12:13:39 +02:00
Samuele E. Locatelli 4c8670e58a ulteriore passo avanti x incapsulamento elementi 2018-08-23 11:54:04 +02:00
Samuele E. Locatelli cb966c5d1c fix gestione aggiunta nodi x update e testing OK 2018-08-23 11:45:01 +02:00
Samuele E. Locatelli d8886dd5f6 typo 2018-08-23 11:28:52 +02:00
Samuele E. Locatelli b99e5d7c96 altra modalità udpate da testare... 2018-08-23 11:27:34 +02:00
Samuele E. Locatelli 096ce0d2d0 nuovo tipo di test... 2018-08-23 11:13:01 +02:00
Samuele E. Locatelli 662877ffde update NLog + fix naming test... 2018-08-23 11:06:47 +02:00
Samuele E. Locatelli 4e50a46cc8 update conf x test OSAI 2018-08-23 10:34:44 +02:00
Samuele E. Locatelli 0f0d4a6458 aggiunto secondo test... 2018-08-23 10:27:52 +02:00
Samuele E. Locatelli b7a0d5edea per testare modalità gestione rewrite allarmi 2018-08-23 08:40:39 +02:00
Samuele E. Locatelli 0cce55c176 procedo x riscrittura gestione vacPump e conditions... 2018-08-22 17:40:16 +02:00
Samuele E. Locatelli 66380773ed fix compilazione (MA SONO ANCORA MTC in AdapterGeneric... 2018-08-22 16:22:24 +02:00
Samuele E. Locatelli 24a2b7c751 modifica parziale reincapsulazione oggetti MTC: non compila ma parte allarmi imbastita... 2018-08-22 14:40:17 +02:00
Samuele E. Locatelli f535c7b8df Aggiunto file DUMP 2018-08-22 10:00:55 +02:00
Samuele E. Locatelli 553b8bae68 aggiunto dll che erano rimaste fuori da GIT 2018-08-22 09:56:24 +02:00
Samuele E. Locatelli b456610021 tolto file inutile 2018-08-22 09:39:20 +02:00
Samuele E. Locatelli 1edff621b8 primo porting su classe gateway dei metodi MTC 2018-08-22 09:24:07 +02:00
Samuele E. Locatelli ab1d9380c9 last prima di togliere MTC da AdapterGeneric 2018-08-22 08:56:11 +02:00
Samuele E. Locatelli 809ea9f7eb continuo conversione... 2018-08-21 17:29:43 +02:00
Samuele E. Locatelli 4469241cef Typo FIX 2018-08-21 16:50:59 +02:00
Samuele E. Locatelli d294056976 Riconfigurazione profonda namespace x nuovo naming SCMA (SCM Adapters) 2018-08-21 16:48:04 +02:00
Samuele E. Locatelli ab58fa05bd continuo modifiche x implementare differenziazione MTC/OPC-UA 2018-08-21 12:31:56 +02:00
Samuele E. Locatelli 2b581ae70c prima BRUTALE implementazione decoratore e differenziatore tra MTC / SOURS 2018-08-21 07:32:24 +02:00
Samuele E. Locatelli 2420814f38 inizio scrittura con DECORATOR... 2018-08-20 18:08:45 +02:00
Samuele E. Locatelli d7c2dcd2c4 pulizia #if false vari 2018-08-20 18:08:36 +02:00
Samuele E. Locatelli 8f65dae94d Aggiunta blocco progetto x OPC-UA-REDIS SOUR-IO... 2018-08-20 12:53:30 +02:00
Samuele E. Locatelli 313efe4594 aggiunta redis x MTC-adapter 2018-08-20 12:53:07 +02:00
Samuele E. Locatelli 716d8763b2 Ok compilazione PRE insert REDIS... 2018-08-20 12:46:42 +02:00
Samuele E. Locatelli 8c3eb77822 update globale NLog 2018-08-20 12:44:21 +02:00
Samuele E. Locatelli a704954d64 Update NLog... 2018-08-20 12:25:12 +02:00
Samuele E. Locatelli 1d42d28306 update readme x note converisone INCH - MM 2018-05-29 17:58:16 +02:00
Samuele E. Locatelli dba4f2f8b9 Correzione output come Lubro_xx_Num 2018-03-09 16:07:31 +01:00
Samuele E. Locatelli 43831ddb17 Correzione nome variabili con doppio valore accettato x Lubro e UniOp_NumCU 2018-03-09 15:35:01 +01:00
Samuele E. Locatelli 7530f25a3e update stato on--> active 2018-02-22 16:02:16 +01:00
Samuele E. Locatelli f21d4b71ac ULteriori fix x SIEMENS 2018-02-22 12:36:46 +01:00
Samuele E. Locatelli e1c8553825 Aggiunta lettura feedOverride x asse 2018-02-22 11:00:10 +01:00
Samuele E. Locatelli cb2ace29d7 SIEMENS: recuperato feed x tutti gli assi...
singolarmente
2018-02-22 10:38:51 +01:00
Samuele E. Locatelli a3abc5cc5f update readme PDF 2018-01-30 17:14:21 +01:00
Samuele E. Locatelli e4df17cf01 aggiunta nota su readme x come compilare su OSAI con assi NON contigui (da compilare pdf e mandare) 2018-01-30 12:04:30 +01:00
Samuele E. Locatelli 9d7984378a pulizia condizioen inutile 2018-01-30 11:59:08 +01:00
Samuele E. Locatelli 245bfe07c2 setup x OSAI 8646 testata 2018-01-30 11:58:57 +01:00
Samuele E. Locatelli a9b5ad8f89 cambio tipo eventi --> message x dati come path, nome asse... 2018-01-22 11:19:23 +01:00
Samuele E. Locatelli 244a2539dc fix XML con errore chiusura tag (non parte agent) 2018-01-18 11:10:13 +01:00
Samuele E. Locatelli c3f51afb2d fix indice assi x nome/path + possibilità saltare lettura da app.config 2018-01-18 09:52:20 +01:00
Samuele E. Locatelli aa4dc1d88b typo 2018-01-18 09:40:28 +01:00
Samuele E. Locatelli cadefcedb6 fix controllo carattere... 2018-01-18 09:38:49 +01:00
Samuele E. Locatelli afe293e6b1 try catch vari (sopratutto x ocndizione out of range array in lettura assi e path/nome) 2018-01-18 09:11:27 +01:00
Samuele E. Locatelli 402b709518 aggiunto file OSAI XML x formato nuovo x solo riferimento 2018-01-17 11:39:42 +01:00
Samuele E. Locatelli 3f049d9dd5 fix tipo evento x OSAI 2018-01-17 11:27:34 +01:00
Samuele E. Locatelli 34dc5585aa update note readme + rimesso codice NON semplificato x errori build successiva 2018-01-17 11:26:15 +01:00
Samuele E. Locatelli e247b297ee completate pulizie e semplificazioni varie 2018-01-17 11:17:41 +01:00
Samuele E. Locatelli 596b75ce8d inizio fix warnings vari 2018-01-17 11:11:34 +01:00
Samuele E. Locatelli 12f06119e7 fix warnings e correzione tipi x event 2018-01-17 11:11:27 +01:00
Samuele E. Locatelli 949410bab6 aggiunto salvataggio ID PROCESSO + DESCR ASSE x OSAI 2018-01-17 11:06:26 +01:00
Samuele E. Locatelli bbfe0b3af9 fix x asse message/event + aggiunta descrizione e init relativa 2018-01-17 11:01:06 +01:00
Samuele E. Locatelli f448b3ca07 pulizia codice 2018-01-17 11:00:41 +01:00
Samuele E. Locatelli e3ab60044a pulizia aree commentate 2018-01-17 11:00:30 +01:00
Samuele E. Locatelli e2f4e76055 correzione x inizializzare matrici prima di lettura tipo REF (restavano valide da path 1 a 2) 2018-01-16 15:27:16 +01:00
Samuele E. Locatelli 56462c35f5 riscrittura gestione dati da OSAI x posizioni 2018-01-16 14:55:57 +01:00
Samuele E. Locatelli aa4bc8c486 Inserita chiamata a getInfo3 deglia ssi x avere ID oltre a nome x processo OSAI 2018-01-16 12:31:48 +01:00
Samuele E. Locatelli 6ab6e6bf0a refresh conf OSAI 8651 2018-01-16 12:31:31 +01:00
Samuele E. Locatelli 2d1466a1fc Update README 2017-12-27 12:53:46 +01:00
Samuele E. Locatelli 73ee59371a DI default NON FACCIO il limit x funzioni 3D FANUC (da gestire manualmente) 2017-12-27 10:49:18 +01:00
Samuele E. Locatelli c564ced4bc Aggiunta gestioen eccezione in FANUC x non gestire chiamate 3D disabilitate se soli 3 assi 2017-12-27 10:34:34 +01:00
Samuele E. Locatelli e6948d0b9d Merge remote-tracking branch 'origin/develop' into develop 2017-12-27 08:29:51 +01:00
Samuele E. Locatelli ee2f2b5907 Update con note x feed/speed che NON vanno 2017-11-20 16:19:25 +01:00
Samuele E. Locatelli 172268a36c Fix gestione endianness x carico e num giri (leggeva sbagliato con littleEndian...) 2017-11-20 14:35:07 +01:00
Samuele E. Locatelli e3e835aee4 Fix gestione allarmi CNC SIEMENS: il formato del codice veniva travisato in send MTC (|) 2017-11-20 12:39:02 +01:00
Samuele E. Locatelli 507316cdcd update readme x problema OSAI con ordinamento assi 2017-10-05 11:08:34 +02:00
Samuele E. Locatelli 8ea85b5862 refresh gitignore 2017-09-13 12:10:31 +02:00
Samuele E. Locatelli a7f55e20e5 Update gitignore e Readme 2017-09-13 11:33:43 +02:00
Samuele E. Locatelli 2f71d54d1b Merge remote-tracking branch 'origin/develop' into develop 2017-09-13 11:27:13 +02:00
Samuele E. Locatelli b683e1e675 refresh 2017-09-13 11:27:10 +02:00
Samuele E. Locatelli ef4c63cf16 update gitignore 2017-09-13 11:22:28 +02:00
Samuele E. Locatelli 9276d764b3 Fix osai x assi GANTRY con errore nome restituito 2017-09-13 11:12:21 +02:00
Samuele E. Locatelli 2cc97d6285 fix su FANUC controllavo stato unk x DW2 dove uso NUOVO watchdog... 2017-09-06 10:50:03 +02:00
Samuele E. Locatelli 39d64b7aa9 Fix x FANUC con PLC connesso, assi scollegati, MTC Adapter fa HaraKiri 2017-09-06 10:17:00 +02:00
Samuele E. Locatelli e2b465e8df refresh 2017-09-05 16:24:29 +02:00
Samuele E. Locatelli 57cd46744b messo try-catch in parte vb 2017-09-05 16:08:55 +02:00
Samuele E. Locatelli eb48e13f80 aggiunto try-catch lettura allarmi CNC x FANUC (machcina no-axis con Fabio) 2017-09-05 15:55:30 +02:00
Samuele E. Locatelli 1b9f5c6896 completata revisione counters 2017-07-26 10:37:46 +02:00
Samuele E. Locatelli 0a0cbfe793 ancora altre variabili sistemate... 2017-07-25 17:13:51 +02:00
Samuele E. Locatelli e646cd19e8 fix altre variabili (slitta mag e prot mag...) 2017-07-25 17:02:05 +02:00
Samuele E. Locatelli 8a220d397d modifiche x calcolo esatto mediana e fix reinit contatori 2017-07-25 16:54:15 +02:00
Samuele E. Locatelli aced3f08a4 Aggiunta gestioen doppio watchdog... 2017-07-24 19:34:29 +02:00
Samuele E. Locatelli 42abe4da42 Aggiunta gestione doppio watchdog... 2017-07-24 19:05:43 +02:00
Samuele E. Locatelli b7049fe25f fix init oggetti sampleVect.. 2017-07-24 18:22:58 +02:00
Samuele E. Locatelli 105e37504a correzione init mancante... 2017-07-24 18:02:37 +02:00
Samuele E. Locatelli 13cda06bec fix init oggetti sampleVect 2017-07-24 17:58:25 +02:00
Samuele E. Locatelli 90be94ba25 Merge remote-tracking branch 'origin/develop' into develop 2017-07-24 17:31:27 +02:00
Samuele E. Locatelli 6f910cf5f8 Completata revisione gestione contatori con VC... 2017-07-24 17:31:19 +02:00
Samuele E. Locatelli ffc9e23e82 completata gest campionamento dati x filtro su finestra 2017-07-24 16:48:39 +02:00
Samuele E. Locatelli 8c2d201425 aggiunto controllo vettore counters x evitare crash in copia array... 2017-07-24 15:58:00 +02:00
Samuele E. Locatelli 40a3735bfe update x OSAI da continuare (numIst obj interni errato... 2017-07-24 15:51:34 +02:00
Samuele E. Locatelli 8bb0eb2031 modifica oggetto gestione contatori istantanei con mediana (POI da testare se va bene va esteso a altri counters...) 2017-07-24 15:12:53 +02:00
Samuele E. Locatelli 36ea850027 inseriti pacchetti gestione statistica x mediana... 2017-07-24 15:12:30 +02:00
Samuele E. Locatelli d05197c32f aggiunta chiave x gestione finestra campionamento dati counters 2017-07-24 12:54:03 +02:00
Samuele E. Locatelli 43e8c094ba riformattazione grafica 2017-07-24 12:53:32 +02:00
Samuele E. Locatelli f747a6f274 update readme (anche in pdf...) da VSCode 2017-07-13 16:28:12 +02:00
Samuele E. Locatelli 9fdb31872e aggiunto area IOT_String 2017-07-13 15:45:14 +02:00
Samuele E. Locatelli ce0b5701b6 Completato note MTC Adapter 2017-07-13 15:43:04 +02:00
Samuele E. Locatelli 76afa66b8c update file readme... 2017-07-13 13:12:44 +02:00
Samuele E. Locatelli cefb9bf28c Merge remote-tracking branch 'origin/develop' into develop 2017-07-13 12:03:54 +02:00
Samuele E. Locatelli 934844fac9 Aggiunta Readme iniziale 2017-07-13 12:03:35 +02:00
Samuele E. Locatelli 95bc8c21d1 Merge remote-tracking branch 'origin/develop' into develop 2017-07-13 12:01:25 +02:00
Samuele E. Locatelli ae5232abd2 aggiunta prima release readme... 2017-07-13 12:01:02 +02:00
Samuele E. Locatelli f1611a13fc completato test SIEMENS con variabili contatori persistenti gestite SENZA conf... test SIEMENS OK... 2017-07-04 17:44:21 +02:00
Samuele E. Locatelli 15a4eb9475 Ok gestione contatori "liberi" ma con configurazione XML (da levare...) 2017-07-04 16:40:28 +02:00
Samuele E. Locatelli 060fe30a95 test 3 variabili analogiche x SIEMENS (OK, dividere x 1000), togliere 2° path SE non ci fosse... 2017-07-04 15:09:50 +02:00
Samuele E. Locatelli c22caba1cd Aggiunta lettura file variabili analogiche... 2017-07-04 14:33:47 +02:00
Samuele E. Locatelli 3dcae93ba9 fix siemens multipath x singolo path (x codici G) come OSAI 2017-07-04 14:08:17 +02:00
Samuele E. Locatelli 0e85a8c5b5 fix monopath x OSAI 2017-07-04 13:54:05 +02:00
Samuele E. Locatelli 922f5d9fb1 update visualizzazione distance ToGo x SIEMENS 2017-06-30 18:35:28 +02:00
Samuele E. Locatelli 2feb3ad03d Completata gestione distance to go x SIEMENS! 2017-06-30 18:35:14 +02:00
Samuele E. Locatelli aa2e5f4d58 porto a 5 sec (5x1000) le letture COMPLETE del buffer allarmi FANUC x evitare problemi di "segnali doppi sovrapposti" 2017-06-30 17:51:15 +02:00
Samuele E. Locatelli bac8f0a948 fix visualizzazione ripetuta allarmi SIEMENS 2017-06-30 16:16:24 +02:00
Samuele E. Locatelli a6548d228e aumentato log x fanuc... 2017-06-30 14:26:28 +02:00
Samuele E. Locatelli 517526d454 fix fastcopy x FANUC... 2017-06-30 12:31:11 +02:00
Samuele E. Locatelli ea324b6f81 refresh bigEndianness=false x FANUC... 2017-06-30 11:36:50 +02:00
Samuele E. Locatelli b2c10649aa Aggiunta info source x allarmi
da ottimizzare duplicazione...
2017-06-29 18:23:13 +02:00
Samuele E. Locatelli e4a2821d97 prima bozza gestione allarmi SIEMENS 2017-06-29 18:17:34 +02:00
Samuele E. Locatelli 6fe74a631d completata gestione GCodes modalità multipath 2017-06-29 15:09:11 +02:00
Samuele E. Locatelli d7b55ef336 ok completata lettura dei codifi G del PRIMO path (ora da implementare multi path...) 2017-06-29 14:46:25 +02:00
Samuele E. Locatelli c7377f38f2 OK LEGGO singoli gruppi G... 2017-06-29 14:25:01 +02:00
Samuele E. Locatelli 05fe01f6a5 fix tipo dati x gestione UT Siemens 2017-06-29 12:17:16 +02:00
Samuele E. Locatelli b62f838383 Refresh x install 2017-06-29 10:45:36 +02:00
Samuele E. Locatelli e616552dcd test su FANUC, fix visualizzaizone debug 2017-06-29 10:36:45 +02:00
Samuele E. Locatelli b578a27c0b completata gestione variabili analogiche "libere" 2017-06-28 20:18:40 +02:00
Samuele E. Locatelli bdc049eb57 completata gestione eventi "unbound", però rimessa gestione legacy valori già gestiti CMS/SCM, fix tempi x trasformazione app.config OSAI 2017-06-28 18:53:18 +02:00
Samuele E. Locatelli dfd69c86c9 eliminato EVENT globale procetion status (è IMPLICITO nella gestione vettore memorie stati) 2017-06-28 18:20:15 +02:00
Samuele E. Locatelli daf3ec3da1 bozza aggiunta vettore status "unmanaged" 2017-06-28 14:00:53 +02:00
Samuele E. Locatelli 5b216a0382 pulizia commenti 2017-06-28 12:08:24 +02:00
Samuele E. Locatelli cc3c7b9bbf fix GCode path 2 + fix visualizzazione debug x OSAI 2017-06-28 11:50:02 +02:00
Samuele E. Locatelli 524c6816ed gestione lettura GCodes meno frequente... 2017-06-28 10:50:00 +02:00
Samuele E. Locatelli bf4ff0ccf8 Fix lettura multi G-code x OSAI 2017-06-28 10:30:27 +02:00
Samuele E. Locatelli c184162359 Merge branch 'develop' 2017-06-27 14:25:05 +02:00
Samuele E. Locatelli 0a27f89d4f Merge remote-tracking branch 'origin/develop' into develop 2017-06-27 14:22:22 +02:00
Samuele E. Locatelli 0ddf0fb289 fix gestione speed override x OSAI 2017-06-27 14:21:09 +02:00
Samuele E. Locatelli eadf16b1e6 Merge remote-tracking branch 'gogs.steamware.net/develop' into develop 2017-06-27 14:20:27 +02:00
Samuele E. Locatelli c84f1f56ce fix operazione avvio FANUC che si pianta al load (metodi NON in override x Counter/analog/status) 2017-06-26 17:45:45 +02:00
Samuele E. Locatelli c702bbde27 riallineamento 2017-06-26 15:27:11 +02:00
Samuele E. Locatelli 7bcb2d752e update x gestione speed e override speed mandrino OSAI 2017-06-26 15:25:06 +02:00
Samuele E. Locatelli 1098b70a2c rimesso versione SIEMENS come sviluppo... 2017-06-16 09:15:40 +02:00
Samuele E. Locatelli bf5af22285 fix step post install x ESA (si bloccava tutto...) 2017-06-16 09:12:17 +02:00
Samuele E. Locatelli 246335c074 rimesso conf sviluppo SIEMENS 2017-06-15 15:38:14 +02:00
Samuele E. Locatelli ad3cfecdf0 Update x versione ESA da portare UP TO DATE... 2017-06-15 15:30:12 +02:00
Samuele E. Locatelli 320397c888 confermato contatori manutenzione OK! (da configurare) 2017-06-09 17:03:45 +02:00
Samuele E. Locatelli 8b513e7bb3 fatto test area override jog/rapid/feed/spindle (area 256+) 2017-06-09 16:31:35 +02:00
Samuele E. Locatelli 17d94e68b5 fix gestione lettura dati UT (PLC NON ancora configurato) 2017-06-09 16:14:33 +02:00
Samuele E. Locatelli fd13fce38b fix copia vettore byte alarmi... 2017-06-09 15:25:31 +02:00
Samuele E. Locatelli 1ea4dee39d fix gestione allarmi... 2017-06-09 15:21:38 +02:00
Samuele E. Locatelli e908e3b09a completata revisione metodi gestione UT e decodifica (da testare!!!) 2017-06-07 22:38:23 +02:00
Samuele E. Locatelli 0aa5a5802b imbastita lettura DatiUT (totalmente da verificare...) 2017-06-07 22:03:54 +02:00
Samuele E. Locatelli fde4959cc9 imbastita lettura pos Target (NON corrette aree memoria, verificare!!!) 2017-06-07 21:57:11 +02:00
Samuele E. Locatelli ac8d5d37b9 AdapterConf 16 assi x SIEMENS 2017-06-07 21:56:48 +02:00
Samuele E. Locatelli f6a338735f fix timing... e sistemazione watchdog... 2017-06-07 18:47:43 +02:00
Samuele E. Locatelli 12ea31bf76 ok lettura pos assi (solo primi 6 come da conf ADAPTER) 2017-06-07 18:15:58 +02:00
Samuele E. Locatelli 92b4fd50d4 continuo scrittura procedura x lettura in blocco dati UT SIEMENS 2017-06-07 17:07:18 +02:00
Samuele E. Locatelli 9a85d32099 modifica decodifica UT x gestione bigendianness 2017-06-07 14:18:14 +02:00
Samuele E. Locatelli 913242b2c1 fix timing vari adapter (da loro valori correnti) + fix x SIEMENS 2017-06-07 14:18:01 +02:00
Samuele E. Locatelli 2ca4008c93 aggiunta gestione invio M/S/T veloce + inizio riconf web.config OSAI/FANUC x tempi differenti da SIEMENS 2017-06-07 12:34:20 +02:00
Samuele E. Locatelli c5c2b88bef fix dim vettore assi + aggiunti appunti + speedup base clock... 2017-06-05 18:26:01 +02:00
Samuele E. Locatelli e04a4f5b3a modifiche x test lettura posizione assi siemens 2017-06-05 12:31:51 +02:00
Samuele E. Locatelli 81a849a92c corretta la lettura posizione assi con oggetto "itemRead" a blocco... 2017-05-31 18:28:26 +02:00
Samuele E. Locatelli 20b7fad076 fix endianness x override di Jog/Feed/Raid/Spindle1..4 2017-05-31 17:33:34 +02:00
Samuele E. Locatelli 64e36cc08a completata review x lettura FLOAT (posizione assi) 2017-05-31 16:58:19 +02:00
Samuele E. Locatelli ebef5fdad3 gestione "salto MST" OSAI gestita globalmente, BigEndianness gestita x siemens (che la richiede...) 2017-05-31 15:45:19 +02:00
Samuele E. Locatelli 51a1ef98ec aggiunta gestione posizione assi 2017-05-29 18:01:54 +02:00
Samuele E. Locatelli 7f1fffb6d0 rivista modalità update show dati in finestra debug 2017-05-29 17:34:52 +02:00
Samuele E. Locatelli 63a73c8457 riorganizzate letture memoria e rallentata letture mtz/var analogiche 2017-05-29 17:06:58 +02:00
Samuele E. Locatelli 5fc97537a6 fix gestioen codici M diversi tra OSAI e SIEMENS (salto memoria vuota) 2017-05-29 15:31:05 +02:00
Samuele E. Locatelli 968744d5c9 typo... 2017-05-29 15:30:46 +02:00
Samuele E. Locatelli fc09fcf117 rallentamento chiamate ADP SIEMENS + inserimento exe da WinXP x lettura help 2017-05-29 13:43:56 +02:00
Samuele E. Locatelli 13a2173483 fix gestione tabelle utensili (TROPPE letture stages 3a / 4) 2017-05-29 12:11:44 +02:00
Samuele E. Locatelli 6b9151e67e appunti su pdf 2017-05-26 18:07:03 +02:00
Samuele E. Locatelli 0950bb47e1 inizio inserimento metodi SIEMENS x lettura assi (forse...) 2017-05-26 17:59:51 +02:00
Samuele E. Locatelli f419d44119 Impostata lettura dati UT da aree memoria dedicate... 2017-05-26 12:20:22 +02:00
Samuele E. Locatelli c2797f8782 Aggiunto controllo varaizione valore (minore del 50% del massimo) in proc variabili 2017-05-26 11:43:47 +02:00
Samuele E. Locatelli cf4c548c87 aggiunto blink comunicazione x OSAI/SIEMENS ove mancante... 2017-05-22 15:27:27 +02:00
Samuele E. Locatelli 0f84f44b58 portato in AdapterGeneric metodi x gestione globalData (e implementato in OSAI/SIEMENS 2017-05-22 15:20:49 +02:00
Samuele E. Locatelli bcee91e8a0 tolto da fanuc esecuzione metodo base x getGlobalData (è custom...) 2017-05-22 15:18:32 +02:00
Samuele E. Locatelli 720a7cbbaa fix evento x invDDone... 2017-05-22 12:43:20 +02:00
Samuele E. Locatelli ee80621fb7 refresh tipo messaggio x mastId asse... 2017-05-22 09:43:14 +02:00
Samuele E. Locatelli 54cdd4e181 Merge remote-tracking branch 'origin/develop' into develop 2017-05-22 09:22:52 +02:00
Samuele E. Locatelli e4af6f0d39 inizio correzioni agent item list... 2017-05-22 09:22:30 +02:00
Samuele E. Locatelli aeaaa0f4fa fix grafico x visualizzazione statistiche comunicazione 2017-05-19 17:49:45 +02:00
Samuele E. Locatelli f3f1e38703 fix controllo strobe secondo processo (OSAI e SIEMENS) + allineamento fanuc... 2017-05-19 17:09:13 +02:00
Samuele E. Locatelli 79b90af793 completata revisione indice canali 1/2 (corrispondono nei segnali...) 2017-05-19 16:33:12 +02:00
Samuele E. Locatelli 6420b99ebd fix: aggiunto path 2 in conf x SIEMENS, continuo fix indirizzi memoria PLC 2017-05-19 16:18:07 +02:00
Samuele E. Locatelli 77120da63b tolti commenti x scrittura... 2017-05-19 12:18:52 +02:00
Samuele E. Locatelli 592efc2243 agiunto blink comunicazione x ESA / FANUC 2017-05-19 11:57:10 +02:00
Samuele E. Locatelli d240599d39 aggiunto lampeggio x comunicazione OSAI... 2017-05-19 11:50:09 +02:00
Samuele E. Locatelli ac86f98cbc refresh app.config siemens 2017-05-19 11:44:02 +02:00
Samuele E. Locatelli aaa62d3229 aggiunta visualizzazione fasi comunicazione siemens (cambia colore nome app MTC), commentate fasi scrittura (da rimappare), wait time portato a 20ms, verifica lettura variabili status Ok! 2017-05-19 11:42:37 +02:00
Samuele E. Locatelli 542f69ba3f commentata parte (inutile) n web.config, da testare, x siemens 2017-05-18 17:55:42 +02:00
Samuele E. Locatelli b9a649c15a rallentato timer base x siemens ed introdotto (solo x SIEMENS) un wait cycle alla fine... possibile azzerarlo! 2017-05-18 17:28:31 +02:00
Samuele E. Locatelli 88dcb99b9d commentata chiaata utensili (da rimappare) + fix try/catch letture memorie 2017-05-18 17:27:14 +02:00
Samuele E. Locatelli 2b0112013b condizionata lettura aree accessorie contatori/bit/memorie alla conf che li prevede... 2017-05-18 16:28:53 +02:00
Samuele E. Locatelli 6c1c39aabf fix conf adapterItemList Siemens (e conseguenti) 2017-05-18 16:13:27 +02:00
Samuele E. Locatelli fd2c4b0b2d aggiunta policy startup x SIEMENS (da cambiare con web.config transformations?!?) 2017-05-18 16:12:58 +02:00
Samuele E. Locatelli 2cd4b63392 fix sovrascrittura speedRate 2017-05-17 12:34:12 +02:00
Samuele E. Locatelli 08727e0647 risistemato lettura strobe/ack x MST... 2017-05-17 12:18:42 +02:00
Samuele E. Locatelli 6d558a7f86 Ancora avanzamento x porting da OSAI a SIEMENS x Analog e MtzData 2017-05-17 11:44:49 +02:00
Samuele E. Locatelli 45d735c89b portato in adapterGeneric la parte di slogChangingData... 2017-05-16 17:35:05 +02:00
Samuele E. Locatelli 0bd432debc portato in adapterGeneric gestione pathData... x OSAI e SIEMENS... 2017-05-16 17:31:25 +02:00
Samuele E. Locatelli 13312b63c5 spostato metodi gestione testing in metodo generic... 2017-05-16 17:24:26 +02:00
Samuele E. Locatelli 975e267769 portato in generic procPathStrobe 2017-05-16 17:09:47 +02:00
Samuele E. Locatelli cd686bfa6f spostata chiamata watchdog in adapterGeneric + gestione memoria specifica su ogni adapter tipizzato... 2017-05-12 18:00:38 +02:00
Samuele E. Locatelli 27ec7cdb54 modificato anche siemens x gestione lettura strobe / ack degli allarmi... VALUTARE se leggere sempre tutto (misurare siemens prima di decidere...) 2017-05-12 17:40:11 +02:00
Samuele E. Locatelli 7c5127a0f7 Merge remote-tracking branch 'origin/develop' into develop 2017-05-12 17:29:11 +02:00
Samuele E. Locatelli 8bf86f94d7 ok test OSAI x nuova gestione allarmi (x ora legge blocchi, potrebbe leggere sempre tutti però dati i tempi rilevati...) 2017-05-12 17:29:05 +02:00
Samuele E. Locatelli 85b78786d1 ok test OSAI x nuova gestione allarmi (x opra legge blocchi, potrebbe leggere sempre tutti però dati i tempi rilevati...) 2017-05-12 17:26:12 +02:00
Samuele E. Locatelli 6594bf07b4 ulteriore pulizia, ora testo OSAI... 2017-05-12 16:59:28 +02:00
Samuele E. Locatelli bf4262e2dd spostato check allarmi osai FUORI dalla classe OSAI in generic, ora procedo x SIEMENS poi testo... 2017-05-12 16:57:53 +02:00
Samuele E. Locatelli dc80939eda spostamento oggetti SIEMENS ed OSAI su AdapterGeneric x poter procedere a "unificare" altri metodi 2017-05-12 15:46:14 +02:00
Samuele E. Locatelli 0d9d7ccd74 ancora pulizia e spostamento metodi in area AdapterGeneric (reloadDataFromFile) 2017-05-12 11:58:15 +02:00
Samuele E. Locatelli 8869ea720e porting in adapterGeneric di getStrobeUserAction 2017-05-12 11:54:01 +02:00
Samuele E. Locatelli 22088ffa0b continuo fixing SIEMENS e porting tra osai/siemens a generic metodi comuni... 2017-05-12 11:48:35 +02:00
Samuele E. Locatelli 5d9526113c aggiunto doc mappatura memorie SIEMENS 2017-05-12 09:40:25 +02:00
Samuele E. Locatelli 3078b2d41e spostamento dll x MTC e CMSCncLib... 2017-05-12 09:34:43 +02:00
Samuele E. Locatelli 2cbd457da7 fix impiego valRead x evitare exceptions 2017-05-12 09:15:59 +02:00
Samuele E. Locatelli 3f94a9fe30 aggiunto documentazione e files progetto test siemens x problema .net framework 3.5 / 4.5.2 2017-05-12 09:04:43 +02:00
Samuele E. Locatelli d1a82f2598 refresh progetti x test versioni 4.5.2 / 3.5 (che non può andare con altre dipendenze) x connessione a siemens (pare andare SOLO 3.5...) 2017-05-12 08:58:53 +02:00
Samuele E. Locatelli ce304a6fda spostamento librerie siemens e DotNetAdapterSDK 2017-05-12 08:58:05 +02:00
Samuele E. Locatelli 5f5e1d0be1 messo wrapper x lettura SINGOLO byte... 2017-05-11 16:51:44 +02:00
Samuele E. Locatelli 314f9cc8f1 update x compilazione SIEMENS 2017-05-11 16:16:26 +02:00
Samuele E. Locatelli b1350c013f cambio conf compilazione delle CMSCncLibs:oltre ad opzione FANUC anche opzione SIEMENS ATTIVATA... 2017-05-11 16:15:53 +02:00
Samuele E. Locatelli 11ac4225e5 fix adapterItemList SIEMENS 2017-05-11 16:12:38 +02:00
Samuele E. Locatelli fc0d53f3c5 compila senza errori (e con quasi tutto commentato) la versione SIEMENS!!! iniziata rimattaptura aree DB1499 (dati MTC), DB253 (utensili) e DB254 (dati mandrini) 2017-05-11 15:41:20 +02:00
Samuele E. Locatelli 35c27c1938 primo riallinemento SIEMENS a FANUC... 2017-05-11 12:39:15 +02:00
Samuele E. Locatelli d9a192ec9c pulizia altre librerie da metodi inutilizzati... 2017-05-11 12:33:10 +02:00
Samuele E. Locatelli 74a92b62e5 completata pulizia codice siemens (compila!!!) 2017-05-11 12:32:54 +02:00
Samuele E. Locatelli 9b3d1e1e7f primo inserimento librerie SIEMENS (dll + classe vb) 2017-05-11 12:17:22 +02:00
Samuele E. Locatelli 12a1a01f0b fix errore cancellazione pdb in debug (devono rimanere...) 2017-05-10 15:23:05 +02:00
Samuele E. Locatelli 9e327c46c9 pulizia da using inutuili e sorting intestazioni 2017-05-10 14:26:21 +02:00
Samuele E. Locatelli c575439f05 completate operazioni build con inserimento operazioni POST... 2017-05-10 12:58:42 +02:00
Samuele E. Locatelli 53bba98f53 Merge remote-tracking branch 'origin/develop' into develop 2017-05-10 12:19:47 +02:00
Samuele E. Locatelli 1a319ddedb aggiunta file memo x decodifica info utensili e mandrini 2017-05-10 12:19:26 +02:00
Samuele E. Locatelli 8ffe44957d completata gestione variabili analogiche x OSAI (Load assi...) 2017-05-10 11:50:19 +02:00
Samuele E. Locatelli 2fdd7b15b8 fix IP x OSAI, fix indirizzi OSAI... 2017-05-10 11:17:51 +02:00
Samuele E. Locatelli cc857bbd26 aggiunta lettura file conf analogData (da testare!!!) 2017-05-10 11:01:47 +02:00
Samuele E. Locatelli c936cf13b2 "generalizzata" gestione lettura statusData (loadStatusData) 2017-05-10 10:54:29 +02:00
Samuele E. Locatelli a394faab7a aggiunti file template x AnalogData (OSAI/FANUC/SIEMENS) 2017-05-10 10:51:21 +02:00
Samuele E. Locatelli cdb5788226 generalizzato metodo loadMaintData x FANUC/OSAI 2017-05-10 10:51:01 +02:00
Samuele E. Locatelli e900db69a2 fix setupTgt x nuovo file AnalgData da gestire x OSAI e load assi... 2017-05-10 10:24:40 +02:00
Samuele E. Locatelli 7eb21e9f26 Merge remote-tracking branch 'gogs/develop' into FANUC 2017-05-10 09:11:26 +02:00
Samuele E. Locatelli 76ddc6f698 aggiunto try/catch x persLayer 2017-05-09 16:55:21 +02:00
Samuele E. Locatelli 0561c3af75 fix errore persist data (si spera...) 2017-05-09 16:32:25 +02:00
Samuele E. Locatelli 78a6690a78 aggiunta versione in testo tray dell'Adapter 2017-05-09 15:38:36 +02:00
Samuele E. Locatelli d4c74d514f CORREZIONE BUG: sbagliava a copiare vettore allarmi!!!! 2017-05-09 15:37:52 +02:00
Samuele E. Locatelli 147964ab99 inizio test allarmi OSAI 2017-05-09 14:45:44 +02:00
Samuele E. Locatelli 5a0249ec06 appunti gestione errore allarmi 2017-05-09 14:11:59 +02:00
Samuele E. Locatelli e43f0fa1e5 update iniziato ad inserire gestione valori analogici x load assi OSAI 2017-05-09 14:11:46 +02:00
Samuele E. Locatelli 55ec34401b Correzione PersistData.dat x valori giganteschi 2017-05-09 14:11:20 +02:00
Samuele E. Locatelli 8b2348477e inizio modifica gestione codice errore CNC 2017-05-09 12:56:39 +02:00
Samuele E. Locatelli 752fa4b63e unificata gestione FANUC/OSAI x lettura load/speed/speedOverride delel UnOp 2017-05-09 12:02:24 +02:00
Samuele E. Locatelli 58e29ac786 risolta lettura speed e load dei vari mandrini /UnOp in modo analogo a FANUC 2017-05-09 11:54:47 +02:00
Samuele E. Locatelli 2fd3a283dc aggiunta conf base agent x OSAI 2017-05-03 15:22:48 +02:00
Samuele E. Locatelli fc699f356f fix visualizzazione prima colonna (con MST sovrascriveva area gialla...) 2017-05-02 15:49:48 +02:00
Samuele E. Locatelli c646a04343 aggiunto un check x non riportare log vuoti x allarmi... 2017-05-02 12:05:30 +02:00
Samuele E. Locatelli 42707b9430 inserita gestione multipath x OSAI... 2017-05-02 11:48:41 +02:00
Samuele E. Locatelli 79c8c37f1b gestione fastCopy opzionale x FANUC 2017-04-28 11:42:04 +02:00
Samuele E. Locatelli 5d21fe18ca aggiunto NLog x gestione eccezioni metodi interni KVara 2017-04-28 11:41:45 +02:00
Samuele E. Locatelli 41dde78f13 correzione variabile sb/sb_3 x fanuc... 2017-04-28 11:30:04 +02:00
Samuele E. Locatelli 6d7da08f6e modifica principale in tryConnect x verifica SE sia running adp prima di procedere con check allarmi... + modifiche minori x visualizzazione 2017-04-28 11:22:05 +02:00
Samuele E. Locatelli 977f963f75 correzioni typo 2017-04-28 11:21:11 +02:00
Samuele E. Locatelli 1d9735bcf0 ridotto chiamate x watchdog ANCHE x FANUC 2017-04-26 12:55:26 +02:00
Samuele E. Locatelli 5c3665f5ec riportate modifice x FANUC (gestione UT "unificata") 2017-04-26 12:33:40 +02:00
Samuele E. Locatelli f7ddda9fc8 Implementazione gestione VitaUT x OSAI (da testare con veri prog) 2017-04-26 12:16:54 +02:00
Samuele E. Locatelli 0da21d287a schema gestioen memorie UT 2017-04-26 11:02:26 +02:00
Samuele E. Locatelli 08c50e80a8 update gestioen watchdog: meno chiamate + miglior calcolo impiego canale 2017-04-26 09:56:32 +02:00
Samuele E. Locatelli 0f36052579 corretto calcolo e visualizzazione impiego % del canale x totale chaimate e x singolo set... 2017-04-24 19:09:33 +02:00
Samuele E. Locatelli df04b0149d Aggiunta gestione codici G (modali) - esistono non modali? refresh codice collegato... 2017-04-24 18:35:44 +02:00
Samuele E. Locatelli 974965c507 cambio aree visualizzazione (3) 2017-04-24 18:35:13 +02:00
Samuele E. Locatelli 0a1ea6ab8f rifacimento area monitor variabili (sono aumentate x poter fare debug OSAI...) 2017-04-24 17:10:56 +02:00
Samuele E. Locatelli bb4f5e006f tranne load (che non abbiamo) x asse caricato posizione programmata e attuale... FATTO! 2017-04-24 16:20:12 +02:00
Samuele E. Locatelli d6412efa8a primi metodi OSAI x lettura posizione assi... 2017-04-24 16:05:21 +02:00
Samuele E. Locatelli 0ac8bf1c7f fix lettura e decodifica status data x ESA/FANUC/OSAI e gestioen OSAI dei bit di status da memoria... 2017-04-24 12:21:53 +02:00
Samuele E. Locatelli 2a825c7385 Aggiunti file x target osai/siemens/fanuc... 2017-04-24 10:48:06 +02:00
Samuele E. Locatelli 9dbd336aa1 aggiunta videoguida x flash firmware PLC 2017-04-24 10:47:23 +02:00
Samuele E. Locatelli fb64019bf2 aggiunte azioni target x gestione statusList differenziata tra OSAI/SIEMENS/FANUC 2017-04-24 10:46:55 +02:00
Samuele E. Locatelli 9f649438b5 provato ad inserire metodi x controlalre errori (x ora senza risultato...) 2017-04-21 17:57:29 +02:00
Samuele E. Locatelli faeffeed56 cambio memoria x variabili manutenzione: DA ML9583 (MW19166) a GL500 (GW1000) 2017-04-21 17:19:40 +02:00
Samuele E. Locatelli 42327fec0e provato a decodificare allarmi CNC MA NON FORNA (il cod 161 iniziale è corretto a video, gli altri recuperati SEMBRANO NON corrispondere...) 2017-04-21 16:51:32 +02:00
Samuele E. Locatelli 7c49b1293a correzioni init + CounterListMap aggiornata... 2017-04-21 15:47:00 +02:00
Samuele E. Locatelli cc02ce152e Update conf AdapterItemList x FANUC/OSAI, modifica SetupAdapter x gestione nuovi campi... 2017-04-21 15:27:35 +02:00
Samuele E. Locatelli 8482f30a88 Aggiunta gestione slitta tastatore (MA MANCA IN XML e si incazza...) 2017-04-21 12:59:31 +02:00
Samuele E. Locatelli ac81ff41ff Aggiunta gestione SlittaMag e ProtMag 2017-04-21 12:43:15 +02:00
Samuele E. Locatelli c1ea415273 Portato metodi decodifica aree memoria manutenzione in AdapterGeneric 2017-04-21 11:07:10 +02:00
Samuele E. Locatelli a248e40fee gestione CounterList diversificata x FANUC&OSAI&SIEMENS + setupTgt.bat) 2017-04-21 10:50:11 +02:00
Samuele E. Locatelli c9e78fca04 aggiunto check presenza persistenceDataLayer x FANUC pre needSave 2017-04-21 10:49:17 +02:00
Samuele E. Locatelli f5ed7aae03 aggiunto display lubro 2017-04-21 00:09:53 +02:00
Samuele E. Locatelli 1f44b4324a aggiunto display wrkTime VacPump + VacCount 2017-04-21 00:06:22 +02:00
Samuele E. Locatelli cab65c2a5d aggiunto NumInvAssi 2017-04-21 00:02:12 +02:00
Samuele E. Locatelli 617e9ca003 fix display numCU + AccTimeAssi 2017-04-20 23:57:13 +02:00
Samuele E. Locatelli 953a352bf0 display numCU 2017-04-20 23:54:37 +02:00
Samuele E. Locatelli d4ae291272 aggiunto display pz tot e numgiri KRev.. 2017-04-20 23:46:14 +02:00
Samuele E. Locatelli 4047ed5686 aggiunta visualizzazione distanza percorsa... 2017-04-20 23:20:45 +02:00
Samuele E. Locatelli 9f02e61172 parte senza errori x gestioen contatori (anche SE mi sembrano cannate le unità di misura...) 2017-04-20 22:49:39 +02:00
Samuele E. Locatelli e2c6e1acac NON INIZIALIZZA correttamente persistence layer... da verificare!!!! però abbozzata gestione contatori manutenzione... 2017-04-20 19:18:01 +02:00
Samuele E. Locatelli 4480fcd815 rimessa (decommentata) gestioen allarmi (MA NONTESTATA...) 2017-04-20 18:28:14 +02:00
Samuele E. Locatelli 10b9dd3134 aggiunta lettura allarmi 8da testare) e correzione tipo strobe (8--> 32) 2017-04-20 18:21:17 +02:00
Samuele E. Locatelli beeac57868 prima chiamata a librerie (ok feed...) 2017-04-20 17:18:24 +02:00
Samuele E. Locatelli 796947b089 Aggiunta documentazione OSAI 2017-04-20 14:52:44 +02:00
Samuele E. Locatelli 152f505c5e Gestione preliminare overrides x multipath 2017-04-20 13:03:53 +02:00
Samuele E. Locatelli 297bfb2233 rename aree memoria path (lettura) che mascheravano type 2017-04-20 13:03:38 +02:00
Samuele E. Locatelli 201d912129 Aggiunta variabili in path x jog/spindle1..4 2017-04-20 13:03:12 +02:00
Samuele E. Locatelli faad05199c pulizia USING inutilizzate 2017-04-20 09:31:48 +02:00
Samuele E. Locatelli 42cc97b12f refresh VS2017 2017-04-20 09:27:47 +02:00
Samuele E. Locatelli bec6a605db Modifica x decodifica memorie MST (2° word vuota + cambio posizione base) 2017-04-19 17:21:10 +02:00
Samuele E. Locatelli fb20dcb9fc refresh compilazione x OSAI 2017-04-19 16:41:49 +02:00
Samuele E. Locatelli 4f5dd4dd0f aggiunta in OSAI regione (commentata) x nuovi metodi IOT 2017-04-19 16:41:36 +02:00
Samuele E. Locatelli f7cafdda8e spostato in coda tutti i metodi IOT x FANUC... 2017-04-19 16:38:14 +02:00
Samuele E. Locatelli 04aad81483 Merge remote-tracking branch 'gogs.steamware.net/develop' into OSAI 2017-04-19 15:29:39 +02:00
Samuele E. Locatelli 5f7b3d3b2f fix problema allarme CNC sovrascritto (su canale main) + fix problema POWER/P1 2017-04-19 15:21:21 +02:00
Samuele E. Locatelli 8c18abc952 inizio test FANUC x vettore alalrmi CNC con Adimar 2017-04-19 12:55:37 +02:00
Samuele E. Locatelli 5a55fbc83d fix app.config transform x loglevel e mode... 2017-04-19 12:48:25 +02:00
Samuele E. Locatelli d99188ebc1 verificata e corretta gestione lettura allarmi (web.config / mode)
se mode == "debug --> leggo forzato tutto, altrimenti NO
2017-04-19 12:31:21 +02:00
Samuele E. Locatelli 91d2bfacd0 correzione errore blockcopy (quando elgge solo una DWORD da strobe..) 2017-04-19 12:01:17 +02:00
Samuele E. Locatelli 2e873a74a7 Refresh conf x OSAI (ok in testing varie funzioni) 2017-04-19 11:43:39 +02:00
299 changed files with 191368 additions and 223933 deletions
+5 -1
View File
@@ -9,12 +9,16 @@ TestResults
*.obj
Tests.VisualState.xml
TestResult.xml
*\.vs
#MTC_Adapter/\.vs/MTC_Adapter/v15/sqlite3/storage\.ide
# -----------------------------------------------
# MTC_AdapterTest
# -----------------------------------------------
MTC_Adapter/MTC_AdapterTest/bin/Debug*/
MTC_Adapter/MTC_AdapterTest/obj/Debug*/
MTC_Adapter/\.vs/*
MTC_Adapter/\.vs/MTC_Adapter/v15/sqlite3/storage\.ide
# -----------------------------------------------
@@ -29,4 +33,4 @@ MTC_Adapter/MTC_Adapter/obj/Debug*/
!MTC_Adapter/MTC_Adapter/dump/dump.obj
# file temp office
MTC_Adapter/MTC_Adapter/Resources/SCM/.~lock*
MTC_Adapter/MTC_Adapter/Resources/SCM/.~lock*
@@ -0,0 +1,669 @@
<?xml version="1.0" encoding="UTF-8"?>
<MTConnectDevices xsi:schemaLocation="urn:mtconnect.org:MTConnectDevices:1.3 /schemas/MTConnectDevices_1.3.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="urn:mtconnect.org:MTConnectDevices:1.3" xmlns:m="urn:mtconnect.org:MTConnectDevices:1.3">
<Header creationTime="2016-04-28T08:44:40+00:00" sender="localhost" instanceId="100" bufferSize="131072" version="1.3"/>
<Devices>
<Device id="MTC" iso841Class="6" name="ATHENA TR DB" sampleInterval="10" uuid="8651">
<Description manufacturer="CMS">8651</Description>
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<DataItem category="EVENT" id="AVAIL" type="AVAILABILITY"/>
<DataItem category="EVENT" id="STATUS" type="ACTUATOR_STATE"/>
<DataItem category="SAMPLE" id="ACC_TIME" type="ACCUMULATED_TIME" name="[s] Tempo macchina in potenza "/>
<DataItem category="SAMPLE" id="ACC_TIME_WORK" type="ACCUMULATED_TIME" name="[s] Tempo macchina in lavorazione"/>
<DataItem category="SAMPLE" id="CLOCK" type="CLOCK_TIME"/>
<DataItem category="EVENT" id="POWER" type="POWER_STATE"/>
<!-- <DataItem category="EVENT" id="OperatorId" type="MESSAGE" name="ID Operatore"/> -->
<DataItem category="EVENT" id="FUNCT_MODE" type="MESSAGE"/>
<DataItem category="EVENT" id="USER_ACTION" type="MESSAGE"/>
<DataItem category="EVENT" id="TESTING_DATA" type="MESSAGE"/>
<DataItem category="EVENT" id="ST_PROTECTION_STATUS" type="ACTUATOR_STATE" name="Stato protezioni"/>
<DataItem category="EVENT" id="ST_Press_OK" type="ACTUATOR_STATE" name="Stato pressione aria"/>
<!-- <DataItem category="EVENT" id="UNK_STATUS" type="MESSAGE" name="Stati sconosciuti"/> -->
<!-- <DataItem category="EVENT" id="UNK_STROBE" type="MESSAGE" name="Strobes sconosciuti"/> -->
<DataItem category="MESSAGE" id="MESSAGE" type="MESSAGE" name="Segnalazioni"/>
<DataItem category="CONDITION" id="CNC" type="SYSTEM"/>
<DataItem category="CONDITION" id="PLC" type="LOGIC_PROGRAM"/>
</DataItems>
<Components>
<Axes id="ax" name="Assi">
<Components>
<Linear id="Axis_01" name="ASSE 1">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<!--<DataItem category="SAMPLE" id="Axis_01_AccelAct" type="ACCELERATION" nativeUnits="MILLIMETER/SECOND^2" units="MILLIMETER/SECOND^2" name="[mm/s^2] Accelerazione"/>-->
<!--<DataItem category="SAMPLE" id="Axis_01_Battery" type="VOLTAGE" nativeUnits="VOLT" units="VOLT" name="[V] Stato batteria"/>-->
<!--<DataItem category="SAMPLE" id="Temp_01_Value" type="TEMPERATURE" nativeUnits="CELSIUS" units="CELSIUS" name="[°] Sonda temperatura"/>-->
<DataItem category="SAMPLE" id="Axis_01_PosAct" type="POSITION" subType="ACTUAL" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] Quota attuale"/>
<DataItem category="SAMPLE" id="Axis_01_PosTgt" type="POSITION" subType="TARGET" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] Quota target"/>
<!-- <DataItem category="SAMPLE" id="Axis_01_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/> -->
<DataItem category="SAMPLE" id="Axis_01_FeedAct" type="AXIS_FEEDRATE" subType="ACTUAL" units="MILLIMETER/SECOND" name="[mm/min] Feedrate"/>
<DataItem category="SAMPLE" id="Axis_01_FeedOver" type="AXIS_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] Feed Override"/>
<DataItem category="SAMPLE" id="Axis_01_AccTime" type="ACCUMULATED_TIME" nativeUnits="HOUR" units="SECOND" name="[s] Tempo utilizzo"/>
<DataItem category="SAMPLE" id="Axis_01_DistDone" type="LENGTH" nativeUnits="COUNT" units="COUNT" name="[m] Distanza totale percorsa"/>
<DataItem category="SAMPLE" id="Axis_01_InvDDone" type="MESSAGE" nativeUnits="COUNT" units="COUNT" name="[#] Numero inversioni"/>
<DataItem category="EVENT" id="Axis_01_Descr" type="MESSAGE" name="Denominazione asse (dinamica)"/>
<DataItem category="EVENT" id="Axis_01_MainProc" type="MESSAGE" name="[#] Processo di appartenenza"/>
<DataItem category="EVENT" id="Axis_01_IsMast" type="MESSAGE" name="[1/0] Master/Slave">
<Constraints>
<Value>1</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_01_MastId" type="MESSAGE" name="[#] ID Asse master">
<Constraints>
<Value>1</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_01_Dir" type="DIRECTION" subType="LINEAR" name="[-/+] Direzione"/>
<DataItem category="CONDITION" id="Axis_01_AlarmCNC" type="SYSTEM" name="Allarmi CN" />
<DataItem category="CONDITION" id="Axis_01_AlarmPLC" type="LOGIC_PROGRAM" name="Allarmi PLC"/>
</DataItems>
</Linear>
<Linear id="Axis_02" name="ASSE 2">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<!--<DataItem category="SAMPLE" id="Axis_02_AccelAct" type="ACCELERATION" nativeUnits="MILLIMETER/SECOND^2" units="MILLIMETER/SECOND^2" name="[mm/s^2] Accelerazione"/>-->
<!--<DataItem category="SAMPLE" id="Axis_02_Battery" type="VOLTAGE" nativeUnits="VOLT" units="VOLT" name="[V] Stato batteria"/>-->
<!--<DataItem category="SAMPLE" id="Temp_02_Value" type="TEMPERATURE" nativeUnits="CELSIUS" units="CELSIUS" name="[°] Sonda temperatura"/>-->
<DataItem category="SAMPLE" id="Axis_02_PosAct" type="POSITION" subType="ACTUAL" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] Quota attuale"/>
<DataItem category="SAMPLE" id="Axis_02_PosTgt" type="POSITION" subType="TARGET" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] Quota target"/>
<!-- <DataItem category="SAMPLE" id="Axis_02_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/> -->
<DataItem category="SAMPLE" id="Axis_02_FeedAct" type="AXIS_FEEDRATE" subType="ACTUAL" units="MILLIMETER/SECOND" name="[mm/min] Feedrate"/>
<DataItem category="SAMPLE" id="Axis_02_FeedOver" type="AXIS_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] Feed Override"/>
<DataItem category="SAMPLE" id="Axis_02_AccTime" type="ACCUMULATED_TIME" nativeUnits="HOUR" units="SECOND" name="[s] Tempo utilizzo"/>
<DataItem category="SAMPLE" id="Axis_02_DistDone" type="LENGTH" nativeUnits="COUNT" units="COUNT" name="[m] Distanza totale percorsa"/>
<DataItem category="SAMPLE" id="Axis_02_InvDDone" type="MESSAGE" nativeUnits="COUNT" units="COUNT" name="[#] Numero inversioni"/>
<DataItem category="EVENT" id="Axis_02_Descr" type="MESSAGE" name="Denominazione asse (dinamica)"/>
<DataItem category="EVENT" id="Axis_02_MainProc" type="MESSAGE" name="[#] Processo di appartenenza"/>
<DataItem category="EVENT" id="Axis_02_IsMast" type="MESSAGE" name="[1/0] Master/Slave">
<Constraints>
<Value>1</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_02_MastId" type="MESSAGE" name="[#] ID Asse master">
<Constraints>
<Value>2</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_02_Dir" type="DIRECTION" subType="LINEAR" name="[-/+] Direzione"/>
<DataItem category="CONDITION" id="Axis_02_AlarmCNC" type="SYSTEM" name="Allarmi CN" />
<DataItem category="CONDITION" id="Axis_02_AlarmPLC" type="LOGIC_PROGRAM" name="Allarmi PLC"/>
</DataItems>
</Linear>
<Linear id="Axis_03" name="ASSE 3">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<!--<DataItem category="SAMPLE" id="Axis_03_AccelAct" type="ACCELERATION" nativeUnits="MILLIMETER/SECOND^2" units="MILLIMETER/SECOND^2" name="[mm/s^2] Accelerazione"/>-->
<!--<DataItem category="SAMPLE" id="Axis_03_Battery" type="VOLTAGE" nativeUnits="VOLT" units="VOLT" name="[V] Stato batteria"/>-->
<!--<DataItem category="SAMPLE" id="Temp_03_Value" type="TEMPERATURE" nativeUnits="CELSIUS" units="CELSIUS" name="[°] Sonda temperatura"/>-->
<DataItem category="SAMPLE" id="Axis_03_PosAct" type="POSITION" subType="ACTUAL" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] Quota attuale"/>
<DataItem category="SAMPLE" id="Axis_03_PosTgt" type="POSITION" subType="TARGET" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] Quota target"/>
<!-- <DataItem category="SAMPLE" id="Axis_03_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/> -->
<DataItem category="SAMPLE" id="Axis_03_FeedAct" type="AXIS_FEEDRATE" subType="ACTUAL" units="MILLIMETER/SECOND" name="[mm/min] Feedrate"/>
<DataItem category="SAMPLE" id="Axis_03_FeedOver" type="AXIS_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] Feed Override"/>
<DataItem category="SAMPLE" id="Axis_03_AccTime" type="ACCUMULATED_TIME" nativeUnits="HOUR" units="SECOND" name="[s] Tempo utilizzo"/>
<DataItem category="SAMPLE" id="Axis_03_DistDone" type="LENGTH" nativeUnits="COUNT" units="COUNT" name="[m] Distanza totale percorsa"/>
<DataItem category="SAMPLE" id="Axis_03_InvDDone" type="MESSAGE" nativeUnits="COUNT" units="COUNT" name="[#] Numero inversioni"/>
<DataItem category="EVENT" id="Axis_03_Descr" type="MESSAGE" name="Denominazione asse (dinamica)"/>
<DataItem category="EVENT" id="Axis_03_MainProc" type="MESSAGE" name="[#] Processo di appartenenza"/>
<DataItem category="EVENT" id="Axis_03_IsMast" type="MESSAGE" name="[1/0] Master/Slave">
<Constraints>
<Value>1</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_03_MastId" type="MESSAGE" name="[#] ID Asse master">
<Constraints>
<Value>3</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_03_Dir" type="DIRECTION" subType="LINEAR" name="[-/+] Direzione"/>
<DataItem category="CONDITION" id="Axis_03_AlarmCNC" type="SYSTEM" name="Allarmi CN" />
<DataItem category="CONDITION" id="Axis_03_AlarmPLC" type="LOGIC_PROGRAM" name="Allarmi PLC"/>
</DataItems>
</Linear>
<Rotary id="Axis_04" name="ASSE 4">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<!--<DataItem category="SAMPLE" id="Axis_04_AccelAct" type="ACCELERATION" nativeUnits="MILLIMETER/SECOND^2" units="MILLIMETER/SECOND^2" name="[mm/s^2] Accelerazione"/>-->
<!--<DataItem category="SAMPLE" id="Axis_04_Battery" type="VOLTAGE" nativeUnits="VOLT" units="VOLT" name="[V] Stato batteria"/>-->
<!--<DataItem category="SAMPLE" id="Temp_04_Value" type="TEMPERATURE" nativeUnits="CELSIUS" units="CELSIUS" name="[°] Sonda temperatura"/>-->
<DataItem category="SAMPLE" id="Axis_04_PosAct" type="ANGLE" subType="ACTUAL" nativeUnits="DEGREE" units="DEGREE" name="[°] Quota attuale"/>
<DataItem category="SAMPLE" id="Axis_04_PosTgt" type="ANGLE" subType="TARGET" nativeUnits="DEGREE" units="DEGREE" name="[°] Quota target"/>
<!-- <DataItem category="SAMPLE" id="Axis_04_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/> -->
<DataItem category="SAMPLE" id="Axis_04_FeedAct" type="ROTARY_VELOCITY" subType="ACTUAL" nativeUnits="REVOLUTION/MINUTE" units="REVOLUTION/MINUTE" name="[°/min] Feedrate"/>
<DataItem category="SAMPLE" id="Axis_04_FeedOver" type="ROTARY_VELOCITY" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] Feed Override"/>
<DataItem category="SAMPLE" id="Axis_04_AccTime" type="ACCUMULATED_TIME" nativeUnits="HOUR" units="SECOND" name="[s] Tempo utilizzo"/>
<DataItem category="SAMPLE" id="Axis_04_DistDone" type="LENGTH" nativeUnits="COUNT" units="COUNT" name="[m] Distanza totale percorsa"/>
<DataItem category="SAMPLE" id="Axis_04_InvDDone" type="MESSAGE" nativeUnits="COUNT" units="COUNT" name="[#] Numero inversioni"/>
<DataItem category="EVENT" id="Axis_04_Descr" type="MESSAGE" name="Denominazione asse (dinamica)"/>
<DataItem category="EVENT" id="Axis_04_MainProc" type="MESSAGE" name="[#] Processo di appartenenza"/>
<DataItem category="EVENT" id="Axis_04_IsMast" type="MESSAGE" name="[0/1] Slave/Master">
<Constraints>
<Value>1</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_04_MastId" type="MESSAGE" name="[#] ID Asse master">
<Constraints>
<Value>4</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_04_Dir" type="DIRECTION" subType="LINEAR" name="[-/+] Direzione"/>
<DataItem category="CONDITION" id="Axis_04_AlarmCNC" type="SYSTEM" name="Allarmi CN" />
<DataItem category="CONDITION" id="Axis_04_AlarmPLC" type="LOGIC_PROGRAM" name="Allarmi PLC"/>
</DataItems>
</Rotary>
<Rotary id="Axis_05" name="ASSE 5">
<DataItems>
<!--<DataItem category="SAMPLE" id="Axis_05_AccelAct" type="ANGULAR_ACCELERATION" nativeUnits="DEGREE/SECOND^2" units="DEGREE/SECOND^2" name="[°/s^2] Accelerazione"/>-->
<!--<DataItem category="SAMPLE" id="Axis_05_Battery" type="VOLTAGE" nativeUnits="VOLT" units="VOLT" name="[V] Stato batteria"/>-->
<!--<DataItem category="SAMPLE" id="Temp_05_Value" type="TEMPERATURE" nativeUnits="CELSIUS" units="CELSIUS" name="[°] Sonda temperatura"/>-->
<DataItem category="SAMPLE" id="Axis_05_PosAct" type="ANGLE" subType="ACTUAL" nativeUnits="DEGREE" units="DEGREE" name="[°] Quota attuale"/>
<DataItem category="SAMPLE" id="Axis_05_PosTgt" type="ANGLE" subType="TARGET" nativeUnits="DEGREE" units="DEGREE" name="[°] Quota target"/>
<!-- <DataItem category="SAMPLE" id="Axis_05_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/> -->
<DataItem category="SAMPLE" id="Axis_05_FeedAct" type="ROTARY_VELOCITY" subType="ACTUAL" nativeUnits="REVOLUTION/MINUTE" units="REVOLUTION/MINUTE" name="[°/min] Feedrate"/>
<DataItem category="SAMPLE" id="Axis_05_FeedOver" type="ROTARY_VELOCITY" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] Feed Override"/>
<DataItem category="SAMPLE" id="Axis_05_AccTime" type="ACCUMULATED_TIME" nativeUnits="HOUR" units="SECOND" name="[s] Tempo utilizzo"/>
<DataItem category="SAMPLE" id="Axis_05_DistDone" type="LENGTH" nativeUnits="COUNT" units="COUNT" name="[rev] Rivoluzioni"/>
<DataItem category="SAMPLE" id="Axis_05_InvDDone" type="MESSAGE" nativeUnits="COUNT" units="COUNT" name="[#] Numero inversioni"/>
<DataItem category="EVENT" id="Axis_05_Descr" type="MESSAGE" name="Denominazione asse (dinamica)"/>
<DataItem category="EVENT" id="Axis_05_MainProc" type="MESSAGE" name="[#] Processo di appartenenza"/>
<DataItem category="EVENT" id="Axis_05_IsMast" type="MESSAGE" name="[1/0] Master/Slave">
<Constraints>
<Value>1</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_05_MastId" type="MESSAGE" name="[#] ID Asse master">
<Constraints>
<Value>5</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_05_Dir" type="DIRECTION" subType="ROTARY" name="[-/+] Direzione"/>
<DataItem category="CONDITION" id="Axis_05_AlarmCNC" type="SYSTEM" name="Allarmi CN" />
<DataItem category="CONDITION" id="Axis_05_AlarmPLC" type="LOGIC_PROGRAM" name="Allarmi PLC"/>
</DataItems>
</Rotary>
<Linear id="Axis_06" name="ASSE 6">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<!--<DataItem category="SAMPLE" id="Axis_06_AccelAct" type="ACCELERATION" nativeUnits="MILLIMETER/SECOND^2" units="MILLIMETER/SECOND^2" name="[mm/s^2] Accelerazione"/>-->
<!--<DataItem category="SAMPLE" id="Axis_06_Battery" type="VOLTAGE" nativeUnits="VOLT" units="VOLT" name="[V] Stato batteria"/>-->
<!--<DataItem category="SAMPLE" id="Temp_06_Value" type="TEMPERATURE" nativeUnits="CELSIUS" units="CELSIUS" name="[°] Sonda temperatura"/>-->
<DataItem category="SAMPLE" id="Axis_06_PosAct" type="POSITION" subType="ACTUAL" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] Quota attuale"/>
<DataItem category="SAMPLE" id="Axis_06_PosTgt" type="POSITION" subType="TARGET" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] Quota target"/>
<!-- <DataItem category="SAMPLE" id="Axis_06_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/> -->
<DataItem category="SAMPLE" id="Axis_06_FeedAct" type="AXIS_FEEDRATE" subType="ACTUAL" units="MILLIMETER/SECOND" name="[mm/min] Feedrate"/>
<DataItem category="SAMPLE" id="Axis_06_FeedOver" type="AXIS_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] Feed Override"/>
<DataItem category="SAMPLE" id="Axis_06_AccTime" type="ACCUMULATED_TIME" nativeUnits="HOUR" units="SECOND" name="[s] Tempo utilizzo"/>
<DataItem category="SAMPLE" id="Axis_06_DistDone" type="LENGTH" nativeUnits="COUNT" units="COUNT" name="[m] Distanza totale percorsa"/>
<DataItem category="SAMPLE" id="Axis_06_InvDDone" type="MESSAGE" nativeUnits="COUNT" units="COUNT" name="[#] Numero inversioni"/>
<DataItem category="EVENT" id="Axis_06_Descr" type="MESSAGE" name="Denominazione asse (dinamica)"/>
<DataItem category="EVENT" id="Axis_06_MainProc" type="MESSAGE" name="[#] Processo di appartenenza"/>
<DataItem category="EVENT" id="Axis_06_IsMast" type="MESSAGE" name="[1/0] Master/Slave">
<Constraints>
<Value>1</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_06_MastId" type="MESSAGE" name="[#] ID Asse master">
<Constraints>
<Value>6</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_06_Dir" type="DIRECTION" subType="LINEAR" name="[-/+] Direzione"/>
<DataItem category="CONDITION" id="Axis_06_AlarmCNC" type="SYSTEM" name="Allarmi CN" />
<DataItem category="CONDITION" id="Axis_06_AlarmPLC" type="LOGIC_PROGRAM" name="Allarmi PLC"/>
</DataItems>
</Linear>
<Linear id="Axis_07" name="ASSE 7">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<!--<DataItem category="SAMPLE" id="Axis_07_AccelAct" type="ACCELERATION" nativeUnits="MILLIMETER/SECOND^2" units="MILLIMETER/SECOND^2" name="[mm/s^2] Accelerazione"/>-->
<!--<DataItem category="SAMPLE" id="Axis_07_Battery" type="VOLTAGE" nativeUnits="VOLT" units="VOLT" name="[V] Stato batteria"/>-->
<!--<DataItem category="SAMPLE" id="Temp_07_Value" type="TEMPERATURE" nativeUnits="CELSIUS" units="CELSIUS" name="[°] Sonda temperatura"/>-->
<DataItem category="SAMPLE" id="Axis_07_PosAct" type="POSITION" subType="ACTUAL" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] Quota attuale"/>
<DataItem category="SAMPLE" id="Axis_07_PosTgt" type="POSITION" subType="TARGET" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] Quota target"/>
<!-- <DataItem category="SAMPLE" id="Axis_07_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/> -->
<DataItem category="SAMPLE" id="Axis_07_FeedAct" type="AXIS_FEEDRATE" subType="ACTUAL" units="MILLIMETER/SECOND" name="[mm/min] Feedrate"/>
<DataItem category="SAMPLE" id="Axis_07_FeedOver" type="AXIS_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] Feed Override"/>
<DataItem category="SAMPLE" id="Axis_07_AccTime" type="ACCUMULATED_TIME" nativeUnits="HOUR" units="SECOND" name="[s] Tempo utilizzo"/>
<DataItem category="SAMPLE" id="Axis_07_DistDone" type="LENGTH" nativeUnits="COUNT" units="COUNT" name="[m] Distanza totale percorsa"/>
<DataItem category="SAMPLE" id="Axis_07_InvDDone" type="MESSAGE" nativeUnits="COUNT" units="COUNT" name="[#] Numero inversioni"/>
<DataItem category="EVENT" id="Axis_07_Descr" type="MESSAGE" name="Denominazione asse (dinamica)"/>
<DataItem category="EVENT" id="Axis_07_MainProc" type="MESSAGE" name="[#] Processo di appartenenza"/>
<DataItem category="EVENT" id="Axis_07_IsMast" type="MESSAGE" name="[1/0] Master/Slave">
<Constraints>
<Value>1</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_07_MastId" type="MESSAGE" name="[#] ID Asse master">
<Constraints>
<Value>7</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_07_Dir" type="DIRECTION" subType="LINEAR" name="[-/+] Direzione"/>
<DataItem category="CONDITION" id="Axis_07_AlarmCNC" type="SYSTEM" name="Allarmi CN" />
<DataItem category="CONDITION" id="Axis_07_AlarmPLC" type="LOGIC_PROGRAM" name="Allarmi PLC"/>
</DataItems>
</Linear>
<Linear id="Axis_08" name="ASSE 8">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<!--<DataItem category="SAMPLE" id="Axis_08_AccelAct" type="ACCELERATION" nativeUnits="MILLIMETER/SECOND^2" units="MILLIMETER/SECOND^2" name="[mm/s^2] Accelerazione"/>-->
<!--<DataItem category="SAMPLE" id="Axis_08_Battery" type="VOLTAGE" nativeUnits="VOLT" units="VOLT" name="[V] Stato batteria"/>-->
<!--<DataItem category="SAMPLE" id="Temp_08_Value" type="TEMPERATURE" nativeUnits="CELSIUS" units="CELSIUS" name="[°] Sonda temperatura"/>-->
<DataItem category="SAMPLE" id="Axis_08_PosAct" type="POSITION" subType="ACTUAL" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] Quota attuale"/>
<DataItem category="SAMPLE" id="Axis_08_PosTgt" type="POSITION" subType="TARGET" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] Quota target"/>
<!-- <DataItem category="SAMPLE" id="Axis_08_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/> -->
<DataItem category="SAMPLE" id="Axis_08_FeedAct" type="AXIS_FEEDRATE" subType="ACTUAL" units="MILLIMETER/SECOND" name="[mm/min] Feedrate"/>
<DataItem category="SAMPLE" id="Axis_08_FeedOver" type="AXIS_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] Feed Override"/>
<DataItem category="SAMPLE" id="Axis_08_AccTime" type="ACCUMULATED_TIME" nativeUnits="HOUR" units="SECOND" name="[s] Tempo utilizzo"/>
<DataItem category="SAMPLE" id="Axis_08_DistDone" type="LENGTH" nativeUnits="COUNT" units="COUNT" name="[m] Distanza totale percorsa"/>
<DataItem category="SAMPLE" id="Axis_08_InvDDone" type="MESSAGE" nativeUnits="COUNT" units="COUNT" name="[#] Numero inversioni"/>
<DataItem category="EVENT" id="Axis_08_Descr" type="MESSAGE" name="Denominazione asse (dinamica)"/>
<DataItem category="EVENT" id="Axis_08_MainProc" type="MESSAGE" name="[#] Processo di appartenenza"/>
<DataItem category="EVENT" id="Axis_08_IsMast" type="MESSAGE" name="[1/0] Master/Slave">
<Constraints>
<Value>1</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_08_MastId" type="MESSAGE" name="[#] ID Asse master">
<Constraints>
<Value>8</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_08_Dir" type="DIRECTION" subType="LINEAR" name="[-/+] Direzione"/>
<DataItem category="CONDITION" id="Axis_08_AlarmCNC" type="SYSTEM" name="Allarmi CN" />
<DataItem category="CONDITION" id="Axis_08_AlarmPLC" type="LOGIC_PROGRAM" name="Allarmi PLC"/>
</DataItems>
</Linear>
<Rotary id="Axis_09" name="ASSE 9">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<!--<DataItem category="SAMPLE" id="Axis_09_AccelAct" type="ACCELERATION" nativeUnits="MILLIMETER/SECOND^2" units="MILLIMETER/SECOND^2" name="[mm/s^2] Accelerazione"/>-->
<!--<DataItem category="SAMPLE" id="Axis_09_Battery" type="VOLTAGE" nativeUnits="VOLT" units="VOLT" name="[V] Stato batteria"/>-->
<!--<DataItem category="SAMPLE" id="Temp_09_Value" type="TEMPERATURE" nativeUnits="CELSIUS" units="CELSIUS" name="[°] Sonda temperatura"/>-->
<DataItem category="SAMPLE" id="Axis_09_PosAct" type="ANGLE" subType="ACTUAL" nativeUnits="DEGREE" units="DEGREE" name="[°] Quota attuale"/>
<DataItem category="SAMPLE" id="Axis_09_PosTgt" type="ANGLE" subType="TARGET" nativeUnits="DEGREE" units="DEGREE" name="[°] Quota target"/>
<!-- <DataItem category="SAMPLE" id="Axis_09_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/> -->
<DataItem category="SAMPLE" id="Axis_09_FeedAct" type="ROTARY_VELOCITY" subType="ACTUAL" nativeUnits="REVOLUTION/MINUTE" units="REVOLUTION/MINUTE" name="[°/min] Feedrate"/>
<DataItem category="SAMPLE" id="Axis_09_FeedOver" type="ROTARY_VELOCITY" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] Feed Override"/>
<DataItem category="SAMPLE" id="Axis_09_AccTime" type="ACCUMULATED_TIME" nativeUnits="HOUR" units="SECOND" name="[s] Tempo utilizzo"/>
<DataItem category="SAMPLE" id="Axis_09_DistDone" type="LENGTH" nativeUnits="COUNT" units="COUNT" name="[m] Distanza totale percorsa"/>
<DataItem category="SAMPLE" id="Axis_09_InvDDone" type="MESSAGE" nativeUnits="COUNT" units="COUNT" name="[#] Numero inversioni"/>
<DataItem category="EVENT" id="Axis_09_Descr" type="MESSAGE" name="Denominazione asse (dinamica)"/>
<DataItem category="EVENT" id="Axis_09_MainProc" type="MESSAGE" name="[#] Processo di appartenenza"/>
<DataItem category="EVENT" id="Axis_09_IsMast" type="MESSAGE" name="[0/1] Slave/Master">
<Constraints>
<Value>1</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_09_MastId" type="MESSAGE" name="[#] ID Asse master">
<Constraints>
<Value>9</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_09_Dir" type="DIRECTION" subType="LINEAR" name="[-/+] Direzione"/>
<DataItem category="CONDITION" id="Axis_09_AlarmCNC" type="SYSTEM" name="Allarmi CN" />
<DataItem category="CONDITION" id="Axis_09_AlarmPLC" type="LOGIC_PROGRAM" name="Allarmi PLC"/>
</DataItems>
</Rotary>
<Rotary id="Axis_10" name="ASSE 10">
<DataItems>
<!--<DataItem category="SAMPLE" id="Axis_10_AccelAct" type="ANGULAR_ACCELERATION" nativeUnits="DEGREE/SECOND^2" units="DEGREE/SECOND^2" name="[°/s^2] Accelerazione"/>-->
<!--<DataItem category="SAMPLE" id="Axis_10_Battery" type="VOLTAGE" nativeUnits="VOLT" units="VOLT" name="[V] Stato batteria"/>-->
<!--<DataItem category="SAMPLE" id="Temp_10_Value" type="TEMPERATURE" nativeUnits="CELSIUS" units="CELSIUS" name="[°] Sonda temperatura"/>-->
<DataItem category="SAMPLE" id="Axis_10_PosAct" type="ANGLE" subType="ACTUAL" nativeUnits="DEGREE" units="DEGREE" name="[°] Quota attuale"/>
<DataItem category="SAMPLE" id="Axis_10_PosTgt" type="ANGLE" subType="TARGET" nativeUnits="DEGREE" units="DEGREE" name="[°] Quota target"/>
<!-- <DataItem category="SAMPLE" id="Axis_10_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/> -->
<DataItem category="SAMPLE" id="Axis_10_FeedAct" type="ROTARY_VELOCITY" subType="ACTUAL" nativeUnits="REVOLUTION/MINUTE" units="REVOLUTION/MINUTE" name="[°/min] Feedrate"/>
<DataItem category="SAMPLE" id="Axis_10_FeedOver" type="ROTARY_VELOCITY" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] Feed Override"/>
<DataItem category="SAMPLE" id="Axis_10_AccTime" type="ACCUMULATED_TIME" nativeUnits="HOUR" units="SECOND" name="[s] Tempo utilizzo"/>
<DataItem category="SAMPLE" id="Axis_10_DistDone" type="LENGTH" nativeUnits="COUNT" units="COUNT" name="[rev] Rivoluzioni"/>
<DataItem category="SAMPLE" id="Axis_10_InvDDone" type="MESSAGE" nativeUnits="COUNT" units="COUNT" name="[#] Numero inversioni"/>
<DataItem category="EVENT" id="Axis_10_Descr" type="MESSAGE" name="Denominazione asse (dinamica)"/>
<DataItem category="EVENT" id="Axis_10_MainProc" type="MESSAGE" name="[#] Processo di appartenenza"/>
<DataItem category="EVENT" id="Axis_10_IsMast" type="MESSAGE" name="[1/0] Master/Slave">
<Constraints>
<Value>1</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_10_MastId" type="MESSAGE" name="[#] ID Asse master">
<Constraints>
<Value>10</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_10_Dir" type="DIRECTION" subType="ROTARY" name="[-/+] Direzione"/>
<DataItem category="CONDITION" id="Axis_10_AlarmCNC" type="SYSTEM" name="Allarmi CN" />
<DataItem category="CONDITION" id="Axis_10_AlarmPLC" type="LOGIC_PROGRAM" name="Allarmi PLC"/>
</DataItems>
</Rotary>
<Rotary id="Axis_11" name="ASSE 11">
<DataItems>
<!--<DataItem category="SAMPLE" id="Axis_11_AccelAct" type="ANGULAR_ACCELERATION" nativeUnits="DEGREE/SECOND^2" units="DEGREE/SECOND^2" name="[°/s^2] Accelerazione"/>-->
<!--<DataItem category="SAMPLE" id="Axis_11_Battery" type="VOLTAGE" nativeUnits="VOLT" units="VOLT" name="[V] Stato batteria"/>-->
<!--<DataItem category="SAMPLE" id="Temp_11_Value" type="TEMPERATURE" nativeUnits="CELSIUS" units="CELSIUS" name="[°] Sonda temperatura"/>-->
<DataItem category="SAMPLE" id="Axis_11_PosAct" type="ANGLE" subType="ACTUAL" nativeUnits="DEGREE" units="DEGREE" name="[°] Quota attuale"/>
<DataItem category="SAMPLE" id="Axis_11_PosTgt" type="ANGLE" subType="TARGET" nativeUnits="DEGREE" units="DEGREE" name="[°] Quota target"/>
<!-- <DataItem category="SAMPLE" id="Axis_11_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/> -->
<DataItem category="SAMPLE" id="Axis_11_FeedAct" type="ROTARY_VELOCITY" subType="ACTUAL" nativeUnits="REVOLUTION/MINUTE" units="REVOLUTION/MINUTE" name="[°/min] Feedrate"/>
<DataItem category="SAMPLE" id="Axis_11_FeedOver" type="ROTARY_VELOCITY" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] Feed Override"/>
<DataItem category="SAMPLE" id="Axis_11_AccTime" type="ACCUMULATED_TIME" nativeUnits="HOUR" units="SECOND" name="[s] Tempo utilizzo"/>
<DataItem category="SAMPLE" id="Axis_11_DistDone" type="LENGTH" nativeUnits="COUNT" units="COUNT" name="[rev] Rivoluzioni"/>
<DataItem category="SAMPLE" id="Axis_11_InvDDone" type="MESSAGE" nativeUnits="COUNT" units="COUNT" name="[#] Numero inversioni"/>
<DataItem category="EVENT" id="Axis_11_Descr" type="MESSAGE" nname="Denominazione asse (dinamica)"/>
<DataItem category="EVENT" id="Axis_11_MainProc" type="MESSAGE" name="[#] Processo di appartenenza"/>
<DataItem category="EVENT" id="Axis_11_IsMast" type="MESSAGE" name="[1/0] Master/Slave">
<Constraints>
<Value>1</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_11_MastId" type="MESSAGE" name="[#] ID Asse master">
<Constraints>
<Value>20</Value>
</Constraints>
</DataItem>
<DataItem category="EVENT" id="Axis_11_Dir" type="DIRECTION" subType="ROTARY" name="[-/+] Direzione"/>
<DataItem category="CONDITION" id="Axis_11_AlarmCNC" type="SYSTEM" name="Allarmi CN" />
<DataItem category="CONDITION" id="Axis_11_AlarmPLC" type="LOGIC_PROGRAM" name="Allarmi PLC"/>
</DataItems>
</Rotary>
</Components>
</Axes>
<Controller id="cn1" name="Controller">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<DataItem category="EVENT" id="MESSAGE" type="MESSAGE" name="Segnalazioni"/>
<DataItem category="EVENT" id="E_STOP" type="EMERGENCY_STOP" name="Stato emergenze"/>
</DataItems>
<Components>
<Path id="Path_01" name="Processo 01">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<DataItem category="EVENT" id="Path_01_Type" type="MESSAGE" name="Lavoro/Asservimento"/>
<DataItem category="EVENT" id="Path_01_ActiveAxes" type="ACTIVE_AXES" name="Assi attivi"/>
<DataItem category="EVENT" id="Path_01_CodG_Act" type="MESSAGE" name="Codici G"/>
<DataItem category="EVENT" id="Path_01_SubMode" type="MESSAGE" name="Modo secondario"/>
<DataItem category="EVENT" id="Path_01_PartId" type="PART_ID" name="Pezzo corrente"/>
<DataItem category="EVENT" id="Path_01_PZ_TOT" type="PART_COUNT" name="Pezzi prodotti"/>
<DataItem category="EVENT" id="Path_01_Cod_M" type="MESSAGE" name="Codici M"/>
<DataItem category="EVENT" id="Path_01_Cod_S" type="MESSAGE" name="Codici S"/>
<DataItem category="EVENT" id="Path_01_Cod_T" type="MESSAGE" name="Codici T"/>
<DataItem category="EVENT" id="Path_01_RUN_MODE" type="CONTROLLER_MODE" name="Modo operativo"/>
<DataItem category="EVENT" id="Path_01_EXE_MODE" type="EXECUTION" name="Stato esecuzione"/>
<DataItem category="EVENT" id="Path_01_CurrProg" type="PROGRAM" name="Programma corrente"/>
<DataItem category="EVENT" id="Path_01_CurrProg_RowNum" type="LINE" name="Riga attuale"/>
<DataItem category="SAMPLE" id="Path_01_FeedRate" type="PATH_FEEDRATE" subType="ACTUAL" nativeUnits="MILLIMETER/SECOND" units="MILLIMETER/SECOND" name="[mm/min] Feedrate"/>
<DataItem category="SAMPLE" id="Path_01_FeedOverr" type="PATH_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] WORK Override"/>
<DataItem category="SAMPLE" id="Path_01_RapidOverr" type="PATH_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] RAPID Override"/>
<!-- <DataItem category="SAMPLE" id="Path_01_PosActX" type="PATH_POSITION" subType="ACTUAL" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] UNITA' OPERATRICE: Posizione X"/> -->
<!-- <DataItem category="SAMPLE" id="Path_01_PosActY" type="PATH_POSITION" subType="ACTUAL" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] UNITA' OPERATRICE: Posizione Y"/> -->
<!-- <DataItem category="SAMPLE" id="Path_01_PosActZ" type="PATH_POSITION" subType="ACTUAL" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] UNITA' OPERATRICE: Posizione Z"/> -->
<!-- <DataItem category="SAMPLE" id="Path_01_PosActI" type="ANGLE" subType="ACTUAL" nativeUnits="DEGREE" units="DEGREE" name="[°] UNITA' OPERATRICE: Angolo I"/> -->
<!-- <DataItem category="SAMPLE" id="Path_01_PosActJ" type="ANGLE" subType="ACTUAL" nativeUnits="DEGREE" units="DEGREE" name="[°] UNITA' OPERATRICE: Angolo J"/> -->
<!-- <DataItem category="SAMPLE" id="Path_01_PosActK" type="ANGLE" subType="ACTUAL" nativeUnits="DEGREE" units="DEGREE" name="[°] UNITA' OPERATRICE: Angolo K"/> -->
<DataItem category="CONDITION" id="Path_01_AlarmCNC" type="SYSTEM" Name="Allarmi CN"/>
<DataItem category="CONDITION" id="Path_01_AlarmPLC" type="LOGIC_PROGRAM" Name="Allarmi PLC"/>
</DataItems>
</Path>
<Path id="Path_02" name="Processo 02">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<DataItem category="EVENT" id="Path_02_Type" type="MESSAGE" name="Lavoro/Asservimento"/>
<DataItem category="EVENT" id="Path_02_ActiveAxes" type="ACTIVE_AXES" name="Assi attivi"/>
<DataItem category="EVENT" id="Path_02_CodG_Act" type="MESSAGE" name="Codici G"/>
<DataItem category="EVENT" id="Path_02_SubMode" type="MESSAGE" name="Modo secondario"/>
<DataItem category="EVENT" id="Path_02_PartId" type="PART_ID" name="Pezzo corrente"/>
<DataItem category="EVENT" id="Path_02_PZ_TOT" type="PART_COUNT" name="Pezzi prodotti"/>
<DataItem category="EVENT" id="Path_02_Cod_M" type="MESSAGE" name="Codici M"/>
<DataItem category="EVENT" id="Path_02_Cod_S" type="MESSAGE" name="Codici S"/>
<DataItem category="EVENT" id="Path_02_Cod_T" type="MESSAGE" name="Codici T"/>
<DataItem category="EVENT" id="Path_02_RUN_MODE" type="CONTROLLER_MODE" name="Modo operativo"/>
<DataItem category="EVENT" id="Path_02_EXE_MODE" type="EXECUTION" name="Stato esecuzione"/>
<DataItem category="EVENT" id="Path_02_CurrProg" type="PROGRAM" name="Programma corrente"/>
<DataItem category="EVENT" id="Path_02_CurrProg_RowNum" type="LINE" name="Riga attuale"/>
<DataItem category="SAMPLE" id="Path_02_FeedRate" type="PATH_FEEDRATE" subType="ACTUAL" nativeUnits="MILLIMETER/SECOND" units="MILLIMETER/SECOND" name="[mm/min] Feedrate"/>
<DataItem category="SAMPLE" id="Path_02_FeedOverr" type="PATH_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] WORK Override"/>
<DataItem category="SAMPLE" id="Path_02_RapidOverr" type="PATH_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] RAPID Override"/>
<!-- <DataItem category="SAMPLE" id="Path_02_PosActX" type="PATH_POSITION" subType="ACTUAL" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] UNITA' OPERATRICE: Posizione X"/> -->
<!-- <DataItem category="SAMPLE" id="Path_02_PosActY" type="PATH_POSITION" subType="ACTUAL" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] UNITA' OPERATRICE: Posizione Y"/> -->
<!-- <DataItem category="SAMPLE" id="Path_02_PosActZ" type="PATH_POSITION" subType="ACTUAL" nativeUnits="MILLIMETER" units="MILLIMETER" name="[mm] UNITA' OPERATRICE: Posizione Z"/> -->
<!-- <DataItem category="SAMPLE" id="Path_02_PosActI" type="ANGLE" subType="ACTUAL" nativeUnits="DEGREE" units="DEGREE" name="[°] UNITA' OPERATRICE: Angolo I"/> -->
<!-- <DataItem category="SAMPLE" id="Path_02_PosActJ" type="ANGLE" subType="ACTUAL" nativeUnits="DEGREE" units="DEGREE" name="[°] UNITA' OPERATRICE: Angolo J"/> -->
<!-- <DataItem category="SAMPLE" id="Path_02_PosActK" type="ANGLE" subType="ACTUAL" nativeUnits="DEGREE" units="DEGREE" name="[°] UNITA' OPERATRICE: Angolo K"/> -->
<DataItem category="CONDITION" id="Path_02_AlarmCNC" type="SYSTEM" Name="Allarmi CN"/>
<DataItem category="CONDITION" id="Path_02_AlarmPLC" type="LOGIC_PROGRAM" Name="Allarmi PLC"/>
</DataItems>
</Path>
<!-- probabilmente da ri-spostare sotto PATH... -->
<Actuator id="UniOp_01" name ="Mandrino 1 Testa 1">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<DataItem category="EVENT" id="UnOp_01_Type" type="MESSAGE" name="Tipologia testa">
<Constraints>
<Value>RX4</Value>
</Constraints>
</DataItem>
<DataItem category="SAMPLE" id="UnOp_01_Speed" type="PATH_FEEDRATE" subType="ACTUAL" nativeUnits="MILLIMETER/SECOND" units="MILLIMETER/SECOND" name="[RPM] SPEED Attuale"/>
<DataItem category="SAMPLE" id="UnOp_01_SpeedOverr" type="PATH_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] SPEED Override"/>
<DataItem category="EVENT" id="UnOp_01_ToolId" type="TOOL_ASSET_ID" name="ID Utensile in mandrino"/>
<DataItem category="EVENT" id="UnOp_01_NumCU" type="COUNT" units="COUNT" name="[#] Cambi Utensile effettuati"/>
<DataItem category="EVENT" id="UnOp_01_Status" type="ACTUATOR_STATE" name="Stato Mandrino 1"/>
<DataItem category="EVENT" id="UnOp_01_VitaRes" type="COUNT" units="COUNT" name="Vita residua utensile in mandrino"/>
<DataItem category ="EVENT" id="UnOp_01_VitaResType" type="MESSAGE" name="Tipo vita residua utensile in mandrino"/>
<DataItem category="SAMPLE" id="UnOp_01_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/>
<DataItem category="SAMPLE" id="UnOp_01_AccTime" type="COUNT" name="[krev] Rivoluzioni"/>
</DataItems>
</Actuator>
<Actuator id="UniOp_02" name ="Mandrino 2 Testa 1">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<DataItem category="EVENT" id="UnOp_02_Type" type="MESSAGE" name="Tipologia testa">
<Constraints>
<Value>RX4</Value>
</Constraints>
</DataItem>
<DataItem category="SAMPLE" id="UnOp_02_Speed" type="PATH_FEEDRATE" subType="ACTUAL" nativeUnits="MILLIMETER/SECOND" units="MILLIMETER/SECOND" name="[RPM] SPEED Attuale"/>
<DataItem category="SAMPLE" id="UnOp_02_SpeedOverr" type="PATH_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] SPEED Override"/>
<DataItem category="EVENT" id="UnOp_02_ToolId" type="TOOL_ASSET_ID" name="ID Utensile in mandrino"/>
<DataItem category="EVENT" id="UnOp_02_NumCU" type="COUNT" units="COUNT" name="[#] Cambi Utensile effettuati"/>
<DataItem category="EVENT" id="UnOp_02_Status" type="ACTUATOR_STATE" name="Stato Mandrino 1"/>
<DataItem category="EVENT" id="UnOp_02_VitaRes" type="COUNT" units="COUNT" name="Vita residua utensile in mandrino"/>
<DataItem category ="EVENT" id="UnOp_02_VitaResType" type="MESSAGE" name="Tipo vita residua utensile in mandrino"/>
<DataItem category="SAMPLE" id="UnOp_02_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/>
<DataItem category="SAMPLE" id="UnOp_02_AccTime" type="COUNT" name="[krev] Rivoluzioni"/>
</DataItems>
</Actuator>
<Actuator id="UniOp_03" name ="Mandrino 3 Testa 1">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<DataItem category="EVENT" id="UnOp_03_Type" type="MESSAGE" name="Tipologia testa">
<Constraints>
<Value>RX4</Value>
</Constraints>
</DataItem>
<DataItem category="SAMPLE" id="UnOp_03_Speed" type="PATH_FEEDRATE" subType="ACTUAL" nativeUnits="MILLIMETER/SECOND" units="MILLIMETER/SECOND" name="[RPM] SPEED Attuale"/>
<DataItem category="SAMPLE" id="UnOp_03_SpeedOverr" type="PATH_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] SPEED Override"/>
<DataItem category="EVENT" id="UnOp_03_ToolId" type="TOOL_ASSET_ID" name="ID Utensile in mandrino"/>
<DataItem category="EVENT" id="UnOp_03_NumCU" type="COUNT" units="COUNT" name="[#] Cambi Utensile effettuati"/>
<DataItem category="EVENT" id="UnOp_03_Status" type="ACTUATOR_STATE" name="Stato Mandrino 1"/>
<DataItem category="EVENT" id="UnOp_03_VitaRes" type="COUNT" units="COUNT" name="Vita residua utensile in mandrino"/>
<DataItem category ="EVENT" id="UnOp_03_VitaResType" type="MESSAGE" name="Tipo vita residua utensile in mandrino"/>
<DataItem category="SAMPLE" id="UnOp_03_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/>
<DataItem category="SAMPLE" id="UnOp_03_AccTime" type="COUNT" name="[krev] Rivoluzioni"/>
</DataItems>
</Actuator>
<Actuator id="UniOp_04" name ="Mandrino 4 Testa 1">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<DataItem category="EVENT" id="UnOp_04_Type" type="MESSAGE" name="Tipologia testa">
<Constraints>
<Value>RX4</Value>
</Constraints>
</DataItem>
<DataItem category="SAMPLE" id="UnOp_04_Speed" type="PATH_FEEDRATE" subType="ACTUAL" nativeUnits="MILLIMETER/SECOND" units="MILLIMETER/SECOND" name="[RPM] SPEED Attuale"/>
<DataItem category="SAMPLE" id="UnOp_04_SpeedOverr" type="PATH_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] SPEED Override"/>
<DataItem category="EVENT" id="UnOp_04_ToolId" type="TOOL_ASSET_ID" name="ID Utensile in mandrino"/>
<DataItem category="EVENT" id="UnOp_04_NumCU" type="COUNT" units="COUNT" name="[#] Cambi Utensile effettuati"/>
<DataItem category="EVENT" id="UnOp_04_Status" type="ACTUATOR_STATE" name="Stato Mandrino 1"/>
<DataItem category="EVENT" id="UnOp_04_VitaRes" type="COUNT" units="COUNT" name="Vita residua utensile in mandrino"/>
<DataItem category ="EVENT" id="UnOp_04_VitaResType" type="MESSAGE" name="Tipo vita residua utensile in mandrino"/>
<DataItem category="SAMPLE" id="UnOp_04_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/>
<DataItem category="SAMPLE" id="UnOp_04_AccTime" type="COUNT" name="[krev] Rivoluzioni"/>
</DataItems>
</Actuator>
<Actuator id="UniOp_05" name ="Mandrino 1 Testa 2">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<DataItem category="EVENT" id="UnOp_05_Type" type="MESSAGE" name="Tipologia testa">
<Constraints>
<Value>RX4</Value>
</Constraints>
</DataItem>
<DataItem category="SAMPLE" id="UnOp_05_Speed" type="PATH_FEEDRATE" subType="ACTUAL" nativeUnits="MILLIMETER/SECOND" units="MILLIMETER/SECOND" name="[RPM] SPEED Attuale"/>
<DataItem category="SAMPLE" id="UnOp_05_SpeedOverr" type="PATH_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] SPEED Override"/>
<DataItem category="EVENT" id="UnOp_05_ToolId" type="TOOL_ASSET_ID" name="ID Utensile in mandrino"/>
<DataItem category="EVENT" id="UnOp_05_NumCU" type="COUNT" units="COUNT" name="[#] Cambi Utensile effettuati"/>
<DataItem category="EVENT" id="UnOp_05_Status" type="ACTUATOR_STATE" name="Stato Mandrino 1"/>
<DataItem category="EVENT" id="UnOp_05_VitaRes" type="COUNT" units="COUNT" name="Vita residua utensile in mandrino"/>
<DataItem category ="EVENT" id="UnOp_05_VitaResType" type="MESSAGE" name="Tipo vita residua utensile in mandrino"/>
<DataItem category="SAMPLE" id="UnOp_05_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/>
<DataItem category="SAMPLE" id="UnOp_05_AccTime" type="COUNT" name="[krev] Rivoluzioni"/>
</DataItems>
</Actuator>
<Actuator id="UniOp_06" name ="Mandrino 2 Testa 2">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<DataItem category="EVENT" id="UnOp_06_Type" type="MESSAGE" name="Tipologia testa">
<Constraints>
<Value>RX4</Value>
</Constraints>
</DataItem>
<DataItem category="SAMPLE" id="UnOp_06_Speed" type="PATH_FEEDRATE" subType="ACTUAL" nativeUnits="MILLIMETER/SECOND" units="MILLIMETER/SECOND" name="[RPM] SPEED Attuale"/>
<DataItem category="SAMPLE" id="UnOp_06_SpeedOverr" type="PATH_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] SPEED Override"/>
<DataItem category="EVENT" id="UnOp_06_ToolId" type="TOOL_ASSET_ID" name="ID Utensile in mandrino"/>
<DataItem category="EVENT" id="UnOp_06_NumCU" type="COUNT" units="COUNT" name="[#] Cambi Utensile effettuati"/>
<DataItem category="EVENT" id="UnOp_06_Status" type="ACTUATOR_STATE" name="Stato Mandrino 1"/>
<DataItem category="EVENT" id="UnOp_06_VitaRes" type="COUNT" units="COUNT" name="Vita residua utensile in mandrino"/>
<DataItem category ="EVENT" id="UnOp_06_VitaResType" type="MESSAGE" name="Tipo vita residua utensile in mandrino"/>
<DataItem category="SAMPLE" id="UnOp_06_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/>
<DataItem category="SAMPLE" id="UnOp_06_AccTime" type="COUNT" name="[krev] Rivoluzioni"/>
</DataItems>
</Actuator>
<Actuator id="UniOp_07" name ="Mandrino 3 Testa 2">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<DataItem category="EVENT" id="UnOp_07_Type" type="MESSAGE" name="Tipologia testa">
<Constraints>
<Value>RX4</Value>
</Constraints>
</DataItem>
<DataItem category="SAMPLE" id="UnOp_07_Speed" type="PATH_FEEDRATE" subType="ACTUAL" nativeUnits="MILLIMETER/SECOND" units="MILLIMETER/SECOND" name="[RPM] SPEED Attuale"/>
<DataItem category="SAMPLE" id="UnOp_07_SpeedOverr" type="PATH_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] SPEED Override"/>
<DataItem category="EVENT" id="UnOp_07_ToolId" type="TOOL_ASSET_ID" name="ID Utensile in mandrino"/>
<DataItem category="EVENT" id="UnOp_07_NumCU" type="COUNT" units="COUNT" name="[#] Cambi Utensile effettuati"/>
<DataItem category="EVENT" id="UnOp_07_Status" type="ACTUATOR_STATE" name="Stato Mandrino 1"/>
<DataItem category="EVENT" id="UnOp_07_VitaRes" type="COUNT" units="COUNT" name="Vita residua utensile in mandrino"/>
<DataItem category ="EVENT" id="UnOp_07_VitaResType" type="MESSAGE" name="Tipo vita residua utensile in mandrino"/>
<DataItem category="SAMPLE" id="UnOp_07_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/>
<DataItem category="SAMPLE" id="UnOp_07_AccTime" type="COUNT" name="[krev] Rivoluzioni"/>
</DataItems>
</Actuator>
<Actuator id="UniOp_08" name ="Mandrino 4 Testa 2">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<DataItem category="EVENT" id="UnOp_08_Type" type="MESSAGE" name="Tipologia testa">
<Constraints>
<Value>RX4</Value>
</Constraints>
</DataItem>
<DataItem category="SAMPLE" id="UnOp_08_Speed" type="PATH_FEEDRATE" subType="ACTUAL" nativeUnits="MILLIMETER/SECOND" units="MILLIMETER/SECOND" name="[RPM] SPEED Attuale"/>
<DataItem category="SAMPLE" id="UnOp_08_SpeedOverr" type="PATH_FEEDRATE" subType="OVERRIDE" nativeUnits="PERCENT" units="PERCENT" name="[%] SPEED Override"/>
<DataItem category="EVENT" id="UnOp_08_ToolId" type="TOOL_ASSET_ID" name="ID Utensile in mandrino"/>
<DataItem category="EVENT" id="UnOp_08_NumCU" type="COUNT" units="COUNT" name="[#] Cambi Utensile effettuati"/>
<DataItem category="EVENT" id="UnOp_08_Status" type="ACTUATOR_STATE" name="Stato Mandrino 1"/>
<DataItem category="EVENT" id="UnOp_08_VitaRes" type="COUNT" units="COUNT" name="Vita residua utensile in mandrino"/>
<DataItem category ="EVENT" id="UnOp_08_VitaResType" type="MESSAGE" name="Tipo vita residua utensile in mandrino"/>
<DataItem category="SAMPLE" id="UnOp_08_Load" type="LOAD" nativeUnits="PERCENT" units="PERCENT" name="[%] Carico"/>
<DataItem category="SAMPLE" id="UnOp_08_AccTime" type="COUNT" name="[krev] Rivoluzioni"/>
</DataItems>
</Actuator>
</Components>
</Controller>
<Systems id="systems" name="Impianti ed attuatori">
<!-- <DataItems>
<DataItem category="EVENT" id="ST_Paratia_Presente" type="ACTUATOR_STATE" name="Paratia Presente"/>
</DataItems> -->
<Components>
<Electric id="el" name="Elettrico">
<DataItems>
</DataItems>
</Electric>
<Hydraulic id="hsys" name="Idraulico">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<!--<DataItem category="CONDITION" id="hlow" type="LEVEL"/>-->
<!--<DataItem category="CONDITION" id="hpres" type="PRESSURE"/>-->
<!--<DataItem category="CONDITION" id="htemp" type="TEMPERATURE"/>-->
</DataItems>
</Hydraulic>
<Pneumatic id="PneumSys" name="Pneumatica Tavole">
<Actuator id="VacPump_01" name ="Pompa vuoto 1">
<DataItems>
<DataItem category="EVENT" id="VacPump_01_Status" type="ACTUATOR_STATE" name="Stato" />
<DataItem category="SAMPLE" id="VacPump_01_WrkTime" type="ACCUMULATED_TIME" name="[s] Tempo utilizzo"/>
</DataItems>
</Actuator>
<Actuator id="VacAct_01" name ="Valvola disattivazione vuoto 1">
<DataItems>
<DataItem category="EVENT" id="VacAct_01_Count" type="COUNT" nativeUnits="COUNT" units="COUNT" name="[#] Commutazioni"/>
</DataItems>
</Actuator>
<Actuator id="VacPump_02" name ="Pompa vuoto 2">
<DataItems>
<DataItem category="EVENT" id="VacPump_02_Status" type="ACTUATOR_STATE" name="Stato" />
<DataItem category="SAMPLE" id="VacPump_02_WrkTime" type="ACCUMULATED_TIME" name="[s] Tempo utilizzo"/>
</DataItems>
</Actuator>
<Actuator id="VacAct_02" name ="Valvola disattivazione vuoto 2">
<DataItems>
<DataItem category="EVENT" id="VacAct_02_Count" type="COUNT" nativeUnits="COUNT" units="COUNT" name="[#] Commutazioni"/>
</DataItems>
</Actuator>
<Actuator id="BlocMorseTav1" name="Valvola Bloccaggio Morse Tavola 1">
<DataItems>
<DataItem category="EVENT" id="Counter_001" type="COUNT" nativeUnits="COUNT" units="COUNT" name="[#] Bloccaggio Morse Tavola 1 "/>
</DataItems>
</Actuator>
<Actuator id="BlocMorseTav2" name="Valvola Bloccaggio Morse Tavola 2">
<DataItems>
<DataItem category="EVENT" id="Counter_002" type="COUNT" nativeUnits="COUNT" units="COUNT" name="[#] Bloccaggio Morse Tavola 2 "/>
</DataItems>
</Actuator>
</Pneumatic>
<Lubrication id="LubroSys" name="Lubrificazione">
<Actuator id="Lubro_01" name ="Lubrificazione Assi PONTE 1">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<!-- <DataItem category="EVENT" id="Lubro_01_Num" type="COUNT" nativeUnits="COUNT" units="COUNT" name="[#] Attivazioni"/> -->
<DataItem category="EVENT" id="Lubro_01_Num" type="COUNT" units="COUNT" name="N Attivazioni"/>
</DataItems>
</Actuator>
<Actuator id="Lubro_02" name ="Lubrificazione Assi PONTE 2">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<!-- <DataItem category="EVENT" id="Lubro_01_Num" type="COUNT" nativeUnits="COUNT" units="COUNT" name="[#] Attivazioni"/> -->
<DataItem category="EVENT" id="Lubro_02_Num" type="COUNT" units="COUNT" name="N Attivazioni"/>
</DataItems>
</Actuator>
</Lubrication>
</Components>
</Systems>
<Sensor id="sens1" name="Sensoristica">
<DataItems>
<!--<DataItem category="xxxx" id="xxxx" type="xxxx" subType="xxxx" nativeUnits="xxxx" units="xxxx" name="xxxx" />-->
<!--<DataItem category="SAMPLE" id="Temp_99_Value" type="TEMPERATURE" nativeUnits="CELSIUS" units="CELSIUS" name="[°] Sonda temperatura"/>-->
<!-- <DataItem category="SAMPLE" id="C" type="PRESSURE" nativeUnits="PASCAL" units="PASCAL" name="[Pa] Pressione 1"/> -->
</DataItems>
</Sensor>
</Components>
</Device>
</Devices>
</MTConnectDevices>
Vendored
+223
View File
@@ -0,0 +1,223 @@
pipeline {
// Declarative Pipeline MODE con Scripted Pipeline Syntax entro le chiamate script { }
agent none
environment {
EMAIL_RECIPIENTS = 'samuele@steamware.net'
}
stages {
stage('Checkout') {
agent any
steps {
/* build delle SteamWare libs! */
/*build 'SteamWare/SteamWareLib'*/
/* copio le libs...*/
// step([$class: 'CopyArtifact', fingerprintArtifacts: true, projectName: 'Steamware/SteamWareLib', selector: [$class: 'WorkspaceSelector'], target: '../Steamware/SteamWareLib'])
/* calcolo numero versione... diverso x branch MASTER/DEVELOP */
script {
withEnv(['NEXT_BUILD_NUMBER=293']) {
// env.versionNumber = VersionNumber(versionNumberString : '2.0.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true)
env.versionNumber = VersionNumber(versionNumberString : '2.0.${BUILD_DATE_FORMATTED, "yyMM"}.${BUILDS_ALL_TIME}', projectStartDate : '2006-01-01', skipFailedBuilds: true, overrideBuildsAllTime: '${NEXT_BUILD_NUMBER}')
env.APP_NAME = 'SCMA'
}
}
script {
currentBuild.displayName = "${env.versionNumber}"
if (env.BRANCH_NAME == "develop" || env.BRANCH_NAME.contains("DEMO")) {
currentBuild.description = "TEST ${env.versionNumber}"
}
else {
currentBuild.description = "BUILD ${env.versionNumber}"
}
}
// CAMBIO numero versione + checkout NuGet in file sorgente!!!
bat "e:\\fart.exe VersGen\\VersGen.cs 1.0.0.0 ${env.versionNumber} || EXIT /B 0"
bat "e:\\nuget.exe restore ${WORKSPACE}\\MTC_Adapter\\SCMA.sln"
}
}
stage('Build') {
agent any
steps {
script {
properties([buildDiscarder(logRotator(artifactDaysToKeepStr: '180', artifactNumToKeepStr: '30', daysToKeepStr: '360', numToKeepStr: '30')), pipelineTriggers([])])
// CAMBIO numero versione + checkout NuGet in file sorgente!!!
bat "e:\\fart.exe VersGen\\VersGen.cs 1.0.0.0 ${env.versionNumber} || EXIT /B 0"
bat "e:\\nuget.exe restore ${WORKSPACE}\\MTC_Adapter\\SCMA.sln"
}
script {
/* compilo installers in base al BRANCH del cliente... */
if (env.BRANCH_NAME == "develop" || env.BRANCH_NAME == "master") {
parallel (
DB: {
sleep 1
bat "\"${tool 'MSBuild-15.0'}\" MTC_Adapter/MTC-ADB/MTC-ADB.csproj -target:Build /p:Configuration=Release /p:Platform=\"Any CPU\" /p:OutputPath=bin/ /m"
},
MAIN: {
sleep 0
bat "\"${tool 'MSBuild-15.0'}\" MTC_Adapter/SCMA/SCMA.csproj -target:Build /p:DefineConstants=\"FS30D=1,SIEMENS=1\" /p:Configuration=Release /p:Platform=\"Any CPU\" /p:OutputPath=bin/ /m"
},
failFast: false)
}
else {
echo 'Niente x Build (limitata a develop/master)...'
}
}
}
}
stage('Deploy') {
agent any
steps {
// in primis fix versione e recupero pacchetti...
script {
// CAMBIO numero versione + checkout NuGet in file sorgente!!!
bat "e:\\fart.exe VersGen\\VersGen.cs 1.0.0.0 ${env.versionNumber} || EXIT /B 0"
bat "e:\\nuget.exe restore ${WORKSPACE}\\MTC_Adapter\\SCMA.sln"
}
// poi compilo
script {
// procedo solo se NON si tratta di commit in ramo DOCUMentazione...
if (env.BRANCH_NAME == "master" || env.BRANCH_NAME.contains("develop") || env.BRANCH_NAME.contains("MTC_Only")) {
echo 'Questo BRANCH non necessita di installer...'
}
else
{
if (env.BRANCH_NAME == "MySql") {
// pulizia directory BIN
bat "RD /S /Q \"${WORKSPACE}\\MTC_Adapter\\MTC-ADB\\bin\" || EXIT /B 0"
// BUILD adapter MySql!
bat "\"${tool 'MSBuild-15.0'}\" MTC_Adapter/MTC-ADB/MTC-ADB.csproj -target:Build /p:Configuration=${env.BRANCH_NAME} /p:VisualStudioVersion=15.0 /p:RunCodeAnalysis=false /p:Platform=\"Any CPU\" /p:DebugSymbols=false /p:DebugType=None /p:OutputPath=bin/${env.versionNumber} /m"
}
else {
// pulizia directory BIN
//bat "RD /S /Q \"${WORKSPACE}\\MTC_Adapter\\SCMA\\bin\" || EXIT /B 0"
if (env.BRANCH_NAME == "FANUC") {
env.currConfig='CMS-FANUC'
}
else if (env.BRANCH_NAME == "KVARA") {
env.currConfig='SCM-ESA'
}
else if (env.BRANCH_NAME == "OSAI") {
env.currConfig='CMS-OSAI'
}
else if (env.BRANCH_NAME == "SIEMENS") {
env.currConfig='CMS-SIEMENS'
}
else {
env.currConfig='Release'
}
bat "\"${tool 'MSBuild-15.0'}\" MTC_Adapter/SCMA/SCMA.csproj -target:Build /p:FS30D=1 /p:SIEMENS=1 /p:Configuration=${env.currConfig} /p:DebugSymbols=false /p:DebugType=None /p:OutputPath=bin/${env.versionNumber} /m"
// // Build adapters VERI
// // bat "\"${tool 'MSBuild-15.0'}\" MTC_Adapter/SCMA/SCMA.csproj -target:Build /p:FS30D=1 /p:SIEMENS=1 /p:Configuration=Release /p:Platform=\"Any CPU\" /p:OutputPath=bin/${env.versionNumber} /m"
// // bat "\"${tool 'MSBuild-15.0'}\" MTC_Adapter/SCMA/SCMA.csproj -target:Build /p:DefineConstants=\"FS30D=1,SIEMENS=1\" /p:Configuration=Release /p:Platform=\"Any CPU\" /p:OutputPath=bin/${env.versionNumber} /m"
// // bat "\"${tool 'MSBuild-15.0'}\" MTC_Adapter/SCMA/SCMA.csproj -target:Build /p:FS30D=1 /p:SIEMENS=1 /p:Configuration=${env.BRANCH_NAME} /p:VisualStudioVersion=15.0 /p:RunCodeAnalysis=false /p:Platform=\"Any CPU\" /p:DebugSymbols=false /p:DebugType=None /p:OutputPath=bin/${env.versionNumber} /m"
}
}
}
// ora mi occupo delle operazioni di compressione e copia...
script {
// procedo ove necessario...
if (env.BRANCH_NAME == "master" || env.BRANCH_NAME.contains("develop") || env.BRANCH_NAME.contains("MTC_Only")) {
echo 'Nessuna compressione + copia post deploy x documentazione'
}
else {
// manifest.xml: aggiorno versNumber ed URL del branch di update...
bat "e:\\fart.exe MTC_Adapter\\SCMA\\Resources\\manifest.xml 1.0.0.0 ${env.versionNumber} || EXIT /B 0"
bat "e:\\fart.exe MTC_Adapter\\SCMA\\Resources\\manifest.xml {{BRANCHNAME}} ${env.BRANCH_NAME} || EXIT /B 0"
bat "e:\\fart.exe MTC_Adapter\\SCMA\\Resources\\ChangeLog.html {{CURRENT-REL}} ${env.versionNumber} || EXIT /B 0"
writeFile file: 'changeLog.log', text: "${getChangeString()}"
// copio ed esporto in IIS02 i vari files .xml, .html, .zip
powershell '(Get-Content MTC_Adapter\\SCMA\\Resources\\ChangeLog.html) | ForEach-Object { $_ -replace \"{{LAST-CHANGES}}\", \"${getChangeString()}\" } | Set-Content MTC_Adapter\\SCMA\\Resources\\ChangeLog.html'
bat "xcopy /y MTC_Adapter\\SCMA\\Resources\\manifest.xml c:\\inetpub\\wwwroot\\SWS\\SCMA\\${env.BRANCH_NAME}\\ "
bat "xcopy /y MTC_Adapter\\SCMA\\Resources\\ChangeLog.html c:\\inetpub\\wwwroot\\SWS\\SCMA\\${env.BRANCH_NAME}\\ "
bat "xcopy /y MTC_Adapter\\SCMA\\Resources\\logoSteamware.png c:\\inetpub\\wwwroot\\SWS\\SCMA\\${env.BRANCH_NAME}\\ "
// // elimino files inutili di resources e pubblico
// bat "RD /S /Q MTC_Adapter\\SCMA\\Resources"
// elimino vecchio zip...
bat "RD /S /Q Releases\\${env.BRANCH_NAME}\\ || EXIT /B 0"
if (env.BRANCH_NAME == "MySql") {
// Compressione in .zip dell'installer x MySql...
bat "e:\\7za.exe a -tzip ${WORKSPACE}\\Releases\\${env.BRANCH_NAME}\\SCMA.zip ${WORKSPACE}\\MTC_Adapter\\MTC-ADB\\bin\\${env.versionNumber}\\*"
}
else {
// Compressione in .zip dell'installer x adapter MTC-OPC-UA-RED...
bat "e:\\7za.exe a -tzip ${WORKSPACE}\\Releases\\${env.BRANCH_NAME}\\SCMA.zip ${WORKSPACE}\\MTC_Adapter\\SCMA\\bin\\${env.versionNumber}\\*"
}
// salvo copia della versione in staging...
bat "xcopy /y Releases\\${env.BRANCH_NAME}\\SCMA.zip E:\\Staging\\byProd\\SCMA\\${env.BRANCH_NAME}\\${env.versionNumber}\\ "
// copio in area WebDeploy
bat "xcopy /y Releases\\${env.BRANCH_NAME}\\SCMA.zip c:\\inetpub\\wwwroot\\SWS\\SCMA\\${env.BRANCH_NAME}\\ "
}
}
}
}
}
post {
success {
sendEmail("Successful")
}
failure {
sendEmail("Failed")
}
unstable {
sendEmail("Unstable")
}
}
}
// // Funzione x pubblicazione su server IIS di deploy
// def publishToDeployServer(prjPath, iisPath, packName) {
// echo "Richiesto esecuzione publishToDeployServer con parametri: " + prjPath + " | " + iisPath + " | " + packName
// // inizio copiando files di base da area VersGen...
// bat "xcopy /y VersGen\\ChangeLog.html " + prjPath + "Resources\\ChangeLog.html "
// bat "xcopy /y VersGen\\logoSteamware.png " + prjPath + "Resources\\logoSteamware.png "
// bat "xcopy /y VersGen\\manifest.xml " + prjPath + "Resources\\manifest.xml "
// // manifest.xml: aggiorno versNumber ed URL del branch di update...
// bat "e:\\fart.exe " + prjPath + "Resources\\manifest.xml 1.0.0.0 ${env.versionNumber} || EXIT /B 0"
// bat "e:\\fart.exe " + prjPath + "Resources\\manifest.xml {{BRANCHNAME}} ${env.BRANCH_NAME} || EXIT /B 0"
// bat "e:\\fart.exe " + prjPath + "Resources\\manifest.xml {{PACKNAME}} " + packName + " || EXIT /B 0"
// bat "e:\\fart.exe " + prjPath + "Resources\\ChangeLog.html {{CURRENT-REL}} ${env.versionNumber} || EXIT /B 0"
// writeFile file: prjPath + 'changeLog.log', text: "${getChangeString()}"
// powershell '(Get-Content ' + prjPath + 'Resources\\ChangeLog.html) | ForEach-Object { $_ -replace \"{{LAST-CHANGES}}\", \"${getChangeString()}\" } | Set-Content ' + prjPath + 'Resources\\ChangeLog.html'
// // copio ed esporto in IIS02 i vari files .xml, .html, .zip
// bat "xcopy /y " + prjPath + "Resources\\manifest.xml " + iisPath + packName + "\\${env.BRANCH_NAME}\\ "
// bat "xcopy /y " + prjPath + "Resources\\ChangeLog.html " + iisPath + packName + "\\${env.BRANCH_NAME}\\ "
// bat "xcopy /y " + prjPath + "Resources\\logoSteamware.png " + iisPath + packName + "\\${env.BRANCH_NAME}\\ "
// // salvo copia della versione...
// bat "xcopy /y " + prjPath + "\\ReleaseClienti\\${env.BRANCH_NAME}\\* E:\\Staging\\byProd\\MP\\${env.BRANCH_NAME}\\" + packName + "\\${env.versionNumber}\\ "
// // copio x AutoUpdate deploy
// bat "xcopy /y " + prjPath + "\\ReleaseClienti\\${env.BRANCH_NAME}\\" + packName + ".zip " + iisPath + packName + "\\${env.BRANCH_NAME}\\ "
// }
@NonCPS
// Funzione x recupero changeLog
def getChangeString() {
MAX_MSG_LEN = 100
def changeString = ""
echo "Gathering SCM changes"
def changeLogSets = currentBuild.changeSets
for (int i = 0; i < changeLogSets.size(); i++) {
def entries = changeLogSets[i].items
for (int j = 0; j < entries.length; j++) {
def entry = entries[j]
truncated_msg = entry.msg.take(MAX_MSG_LEN)
changeString += " - ${truncated_msg} [${entry.author}]\n"
}
}
if (!changeString) {
changeString = " - Nessuna Modifica"
}
return changeString
}
// Funzione x invio email
def sendEmail(status) {
mail (
to: "$EMAIL_RECIPIENTS",
subject: "Build $BUILD_NUMBER - " + status + " ($JOB_NAME)",
body: "Modifiche:\n " + getChangeString() + "\n\n Verifica console output: $BUILD_URL/console" + "\n")
}
Binary file not shown.
+24 -6
View File
@@ -21,10 +21,11 @@
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>CMSCncLib.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<DefineConstants>FS30D=1</DefineConstants>
<DefineConstants>FS30D=1,SIEMENS=1</DefineConstants>
<UseVSHostingProcess>true</UseVSHostingProcess>
<PlatformTarget>AnyCPU</PlatformTarget>
<Prefer32Bit>false</Prefer32Bit>
<WarningLevel>0</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
@@ -34,8 +35,10 @@
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>CMSCncLib.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<DefineConstants>FS30D=1</DefineConstants>
<DefineConstants>FS30D=1,SIEMENS=1</DefineConstants>
<Prefer32Bit>false</Prefer32Bit>
<WarningLevel>0</WarningLevel>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
@@ -58,8 +61,9 @@
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<DefineConstants>FS30D=1</DefineConstants>
<DefineConstants>FS30D=1,SIEMENS=1</DefineConstants>
<Prefer32Bit>false</Prefer32Bit>
<WarningLevel>0</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'SCM-ESA|AnyCPU' ">
<DefineTrace>true</DefineTrace>
@@ -70,32 +74,41 @@
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<DefineConstants>FS30D=1</DefineConstants>
<DefineConstants>FS30D=1,SIEMENS=1</DefineConstants>
<Prefer32Bit>false</Prefer32Bit>
<WarningLevel>0</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CMS-SIEMENS|AnyCPU'">
<DefineTrace>true</DefineTrace>
<OutputPath>bin\CMS-SIEMENS\</OutputPath>
<DefineConstants>FS30D=1</DefineConstants>
<DefineConstants>FS30D=1,SIEMENS=1</DefineConstants>
<DocumentationFile>CMSCncLib.xml</DocumentationFile>
<Optimize>true</Optimize>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
<WarningLevel>0</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'CMS-OSAI|AnyCPU'">
<DefineTrace>true</DefineTrace>
<OutputPath>bin\CMS-OSAI\</OutputPath>
<DefineConstants>FS30D=1</DefineConstants>
<DefineConstants>FS30D=1,SIEMENS=1</DefineConstants>
<DocumentationFile>CMSCncLib.xml</DocumentationFile>
<Optimize>true</Optimize>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>AnyCPU</PlatformTarget>
<CodeAnalysisRuleSet>MinimumRecommendedRules.ruleset</CodeAnalysisRuleSet>
<Prefer32Bit>false</Prefer32Bit>
<WarningLevel>0</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="Siemens.Sinumerik.Operate.Services, Version=4.7.3.2, Culture=neutral, PublicKeyToken=bdd90fa02fd1c4ee, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>ExtLib\Siemens.Sinumerik.Operate.Services.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Drawing" />
@@ -126,6 +139,7 @@
<Compile Include="CNC\CNC.OSAI\CNC.OSAI.vb" />
<Compile Include="CNC\CNC.OSAI\CNC.OSAI_SOAP.vb" />
<Compile Include="CNC\CNC.Runtime.vb" />
<Compile Include="CNC\CNC.SIEMENS\CNC.SIEMENS.vb" />
<Compile Include="CNC\CNC\CNC.CNC.vb" />
<Compile Include="Config\Config.Options.vb" />
<Compile Include="Config\Config.Settings.vb" />
@@ -624,6 +638,10 @@
</None>
</ItemGroup>
<ItemGroup />
<ItemGroup>
<Content Include="ExtLib\Siemens.Sinumerik.Operate.Services.dll" />
<Content Include="ExtLib\Siemens.Sinumerik.Operate.Services.Wrapper.dll" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+42 -71
View File
@@ -1,72 +1,43 @@
Imports CMSCncLib.App.Runtime
Imports CMSCncLib.CNC
Imports CMSCncLib.Tools
Namespace CNC
Public Class Runtime
Public Shared NC As CMSCncLib.CNC.CNC
Public Shared Sub CreateNC(tipoNC As CNC.NcType, ipTarget As String)
'************ Istanzio l'oggetto NC *****************
Try
Select Case tipoNC
Case NC_FANUC
'CMSCncLib.App.Runtime.Log.WI("TRY creating NC CNC.NC", "TypeNC=" & Config.Settings.Settings.TypeNC.ToString, CLog.Lev.Principal)
Dim ipFanuc As String
Dim portIpFanuc As String
Dim CncScreenHssb As String
' SIMULATORE
' IP LOOPBACK: 192.168.211.5/255.255.255.0
'ipFanuc = "192.168.211.5"
' PRODUZIONE
' IP ETH: 192.168.139.201/255.255.255.0
'ipFanuc = "192.168.139.1"
' imposto IP da chiamata
ipFanuc = ipTarget
portIpFanuc = "8193"
CncScreenHssb = "0"
NC = New FANUC(0, ipFanuc, portIpFanuc, CncScreenHssb)
Case NC_OSAI
'If Config.Settings.Settings.OsaiCommType = 1 Then 'SOAP
NC = New OSAI_OPEN(ipTarget)
'Else 'DCOM
' Dim DotNet As Boolean
' If OSAI.GetWinnbi(DotNet) Then
' NC = New OSAI(Config.Settings.Settings.NcName)
' Else
' Log.WE("Error on GetWinnbi or WINNBI are not installed", "Install Osai WINNBI before run this software", True)
' End If
'End If
Case NC_SIEMENS
' Try
' NC = New SIEMENS
' Catch ex As CmsNcException
' 'NC.frmMain_ref.ExitApp()
' 'frmMain.ExitApp()
' End
' End Try
End Select
'CMSCncLib.App.Runtime.Log.WI("OK crating NC CNC.NC", , CLog.Lev.Principal)
Catch ex As Exception
'CMSCncLib.App.Runtime.Log.WE("ERR crating NC CNC.NC", ex.Message, True)
End Try
End Sub
End Class
Namespace CNC
Public Class Runtime
Public Shared NC As CMSCncLib.CNC.CNC
Public Shared Sub CreateNC(tipoNC As CNC.NcType, ipTarget As String)
'************ Istanzio l'oggetto NC *****************
Dim exStr As String
Try
Select Case tipoNC
Case NC_FANUC
Dim ipFanuc As String
Dim portIpFanuc As String
Dim CncScreenHssb As String
' imposto IP da chiamata
ipFanuc = ipTarget
portIpFanuc = "8193"
CncScreenHssb = "0"
NC = New FANUC(0, ipFanuc, portIpFanuc, CncScreenHssb)
Case NC_OSAI
NC = New OSAI_OPEN(ipTarget)
#If SIEMENS Then
Case NC_SIEMENS
NC = New SIEMENS
#End If
End Select
Catch ex As Exception
exStr = ex.Message
End Try
End Sub
End Class
End Namespace
File diff suppressed because it is too large Load Diff
-24
View File
@@ -207,30 +207,6 @@ Namespace CNC
Public Overridable Sub CloseCnc()
End Sub
''' <summary>
''' Riduce a icona la finestra CNC
''' </summary>
Public Overridable Sub MinimizeCnc()
End Sub
''' <summary>
''' Mostra a dimensioni normali la finestra CNC
''' </summary>
Public Overridable Sub NormalizeCnc()
End Sub
''' <summary>
''' Setta il focus sulla finestra CNC
''' </summary>
Public Overridable Sub SetCncFocus()
End Sub
''' <summary>
''' Setta il focus sulla finestra CNC
''' </summary>
Public Overridable Sub MoveCnc()
End Sub
End Class
+294 -300
View File
@@ -1,300 +1,294 @@
Imports System.ComponentModel
Imports System.IO
Imports CMSCncLib.App.Runtime
Imports System.Security
Namespace Config
Class Options
Public Shared CurrentOptions As Options
Public Shared sPathFile As String
Private _Machine_Enabled As Boolean
''' <summary>Maintenance Machine</summary>
Public ReadOnly Property Machine_Enabled() As Boolean
Get
Return Me._Machine_Enabled
End Get
End Property
Private _Maintenance_Enabled As Boolean
''' <summary>Opzione Maintenance</summary>
Public ReadOnly Property Maintenance_Enabled() As Boolean
Get
Return Me._Maintenance_Enabled
End Get
End Property
Private _OpPanel_Enabled As Boolean
''' <summary>Opzione OpPanel</summary>
Public ReadOnly Property OpPanel_Enabled() As Boolean
Get
Return Me._OpPanel_Enabled
End Get
End Property
Private _Launch_Enabled As Boolean
''' <summary>Opzione Launch</summary>
Public ReadOnly Property Launch_Enabled() As Boolean
Get
Return Me._Launch_Enabled
End Get
End Property
Private _TcpSocket_Enabled As Boolean
''' <summary>Opzione TcpSocket</summary>
Public ReadOnly Property TcpSocket_Enabled() As Boolean
Get
Return Me._TcpSocket_Enabled
End Get
End Property
Private _ToolTable_Enabled As Boolean
''' <summary>Opzione ToolTable</summary>
Public ReadOnly Property ToolTable_Enabled() As Boolean
Get
Return Me._ToolTable_Enabled
End Get
End Property
Private _ToolTable_Famiglie As Boolean
''' <summary>Opzione Famiglie</summary>
Public ReadOnly Property ToolTable_Famiglie() As Boolean
Get
Return Me._ToolTable_Famiglie
End Get
End Property
Private _ToolTable_Vita As Boolean
''' <summary>Opzione Vita</summary>
Public ReadOnly Property ToolTable_Vita() As Boolean
Get
Return (Me._ToolTable_Vita_S Or Me._ToolTable_Vita_N Or Me._ToolTable_Vita_m)
End Get
End Property
Private _ToolTable_Vita_S As Boolean
''' <summary>Opzione Vita a Tempo</summary>
Public ReadOnly Property ToolTable_Vita_S() As Boolean
Get
Return Me._ToolTable_Vita_S
End Get
End Property
Private _ToolTable_Vita_N As Boolean
''' <summary>Opzione Vita a Cicli o Colpi</summary>
Public ReadOnly Property ToolTable_Vita_N() As Boolean
Get
Return Me._ToolTable_Vita_N
End Get
End Property
Private _ToolTable_Vita_M As Boolean
''' <summary>Opzione Vita a Profilo</summary>
Public ReadOnly Property ToolTable_Vita_M() As Boolean
Get
Return Me._ToolTable_Vita_M
End Get
End Property
Private _ToolTable_AttrezzaggioAutomatico As Boolean
''' <summary>Opzione Attrezzaggio Automatico</summary>
Public ReadOnly Property ToolTable_AttrezzaggioAutomatico() As Boolean
Get
Return Me._ToolTable_AttrezzaggioAutomatico
End Get
End Property
Private _ToolTable_PercorsoAutoadattativo As Boolean
''' <summary>Opzione Percorso Autoadattativo</summary>
Public ReadOnly Property ToolTable_PercorsoAutoadattativo() As Boolean
Get
Return Me._ToolTable_PercorsoAutoadattativo
End Get
End Property
Private _ToolTable_Multiprofilo As Boolean
''' <summary>Opzione Multiprofilo</summary>
Public ReadOnly Property ToolTable_Multiprofilo() As Boolean
Get
Return Me._ToolTable_Multiprofilo
End Get
End Property
Private _ToolTable_CompensazioneDinamica As Boolean
''' <summary>Opzione Compensazione Dinamica</summary>
Public ReadOnly Property ToolTable_CompensazioneDinamica() As Boolean
Get
Return Me._ToolTable_CompensazioneDinamica
End Get
End Property
Private _ToolTable_Offset As Boolean
''' <summary>Opzione Offset</summary>
Public ReadOnly Property ToolTable_Offset() As Boolean
Get
Return Me._ToolTable_Offset
End Get
End Property
Private _ToolTable_FeedMax As Boolean
''' <summary>Opzione FeedMax</summary>
Public ReadOnly Property ToolTable_FeedMax() As Boolean
Get
Return Me._ToolTable_FeedMax
End Get
End Property
Private _ToolTable_Gamme As Boolean
''' <summary>Opzione Gamme</summary>
Public ReadOnly Property ToolTable_Gamme() As Boolean
Get
Return Me._ToolTable_Gamme
End Get
End Property
Private _ToolTable_Manine As Boolean
''' <summary>Opzione Manine</summary>
Public ReadOnly Property ToolTable_Manine() As Boolean
Get
Return Me._ToolTable_Manine
End Get
End Property
Private _ToolTable_MaxToolsManaged As Integer
''' <summary>Massimo numero di utensili gestibili</summary>
Public ReadOnly Property ToolTable_MaxToolsManaged() As Integer
Get
Return Me._ToolTable_MaxToolsManaged
End Get
End Property
Private _ToolTable_Inch As Boolean
''' <summary>Opzione gestione in Pollici</summary>
Public ReadOnly Property ToolTable_Inch() As Boolean
Get
Return Me._ToolTable_Inch
End Get
End Property
Private _ToolTable_Diameter As Boolean
''' <summary>Opzione gestione Diametro</summary>
Public ReadOnly Property ToolTable_Diameter() As Boolean
Get
Return Me._ToolTable_Diameter
End Get
End Property
Private _ToolTable_AttrezzaggioInRun As Boolean
''' <summary>Opzione modifica con macchina in RUN</summary>
Public ReadOnly Property ToolTable_AttrezzaggioInRun() As Boolean
Get
Return Me._ToolTable_AttrezzaggioInRun
End Get
End Property
Private _ToolTable_AttrezzaggioAssistito As Boolean
''' <summary>Opzione Attrezzaggio magazzini inaccessibili tramite macchina</summary>
Public ReadOnly Property ToolTable_AttrezzaggioAssistito() As Boolean
Get
Return Me._ToolTable_AttrezzaggioAssistito
End Get
End Property
Private _ToolTable_SharedDB As Boolean
''' <summary>Opzione magazzino utensili condiviso tra più macchine</summary>
Public ReadOnly Property ToolTable_SharedDB() As Boolean
Get
Return Me._ToolTable_SharedDB
End Get
End Property
Private _ToolTable_AllowRemote As Boolean
''' <summary>Opzione AllowRemote Tool Table</summary>
Public ReadOnly Property ToolTable_AllowRemote() As Boolean
Get
Return Me._ToolTable_AllowRemote
End Get
End Property
Public Shared Sub CreateOptions(ByVal sPathF As String)
If CurrentOptions Is Nothing Then
CurrentOptions = New Options
End If
' Memorizzo il percorso del file INI
sPathFile = sPathF
CurrentOptions.LoadOptions()
End Sub
'carica le opzioni da file
Private Sub LoadOptions()
''leggo la matricola dal cn
''se non è possibile disabilito tutto e chiedo che venga attivata la connessione
''se leggo 0 avviso che la metricola deve essere popolata
''leggo il codice dal file
''valore = decodifica(valoreletto, matricola, passwordpubblica)
Dim szFileIni As String
Dim Ini As App.Native.Ini
' imposto il nome del file
szFileIni = sPathFile & "\" & My.Application.Info.AssemblyName & ".ini"
' verifico che esista il file
If My.Computer.FileSystem.FileExists(szFileIni) Then
'istanzio la classe di gestione del file
Ini = New App.Native.Ini(szFileIni)
'leggo i settaggi dal file
Me._Machine_Enabled = Ini.GetBoolean("OPTIONS", "MACHINE_ENABLED", 0)
Me._Maintenance_Enabled = Ini.GetBoolean("OPTIONS", "MAINTENANCE_ENABLED", 0)
Me._OpPanel_Enabled = Ini.GetBoolean("OPTIONS", "OPPANEL_ENABLED", 0)
Me._Launch_Enabled = Ini.GetBoolean("OPTIONS", "LAUNCH_ENABLED", 0)
Me._TcpSocket_Enabled = Ini.GetBoolean("OPTIONS", "TCPSOCKET_ENABLED", 0)
Me._ToolTable_Enabled = Ini.GetBoolean("OPTIONS", "TOOLTABLE_ENABLED", 0)
Me._ToolTable_Famiglie = Ini.GetBoolean("OPTIONS", "TOOLTABLE_FAMIGLIE", 0)
Me._ToolTable_Vita_S = Ini.GetBoolean("OPTIONS", "TOOLTABLE_VITA_S", 0)
Me._ToolTable_Vita_N = Ini.GetBoolean("OPTIONS", "TOOLTABLE_VITA_N", 0)
Me._ToolTable_Vita_M = Ini.GetBoolean("OPTIONS", "TOOLTABLE_VITA_M", 0)
Me._ToolTable_Multiprofilo = Ini.GetBoolean("OPTIONS", "TOOLTABLE_MULTIPROFILO", 0)
Me._ToolTable_AttrezzaggioAutomatico = Ini.GetBoolean("OPTIONS", "TOOLTABLE_ATTREZZAGGIOAUTOMATICO", 0)
Me._ToolTable_PercorsoAutoadattativo = Ini.GetBoolean("OPTIONS", "TOOLTABLE_PERCORSOAUTOADATTATIVO", 0)
Me._ToolTable_CompensazioneDinamica = Ini.GetBoolean("OPTIONS", "TOOLTABLE_COMPENSAZIONEDINAMICA", 0)
Me._ToolTable_Offset = Ini.GetBoolean("OPTIONS", "TOOLTABLE_OFFSET", 0)
Me._ToolTable_FeedMax = Ini.GetBoolean("OPTIONS", "TOOLTABLE_FEEDMAX", 0)
Me._ToolTable_Gamme = Ini.GetBoolean("OPTIONS", "TOOLTABLE_GAMME", 0)
Me._ToolTable_Manine = Ini.GetBoolean("OPTIONS", "TOOLTABLE_MANINE", 0)
'Me._ToolTable_GeometryManagement = Ini.GetInteger("OPTIONS", "TOOLTABLE_GEOMETRYMANAGEMENT", 0)
Me._ToolTable_MaxToolsManaged = Ini.GetInteger("OPTIONS", "TOOLTABLE_MAXTOOLSMANAGED", 0)
Me._ToolTable_Inch = Ini.GetBoolean("OPTIONS", "TOOLTABLE_INCH", 0)
Me._ToolTable_Diameter = IIf(CNC.Runtime.NC.Type = CNC.CNC.NcType.OSAI, True, False) 'Ini.GetBoolean("OPTIONS", "TOOLTABLE_DIAMETER", 0)
Me._ToolTable_AttrezzaggioInRun = Ini.GetBoolean("OPTIONS", "TOOLTABLE_ATTREZZAGGIO_IN_RUN", 0)
Me._ToolTable_AttrezzaggioAssistito = Ini.GetBoolean("OPTIONS", "TOOLTABLE_ATTREZZAGGIO_ASSISTITO", 0)
' Se è attiva l'opzione ToolTable_Remote, l'AllowRemote e SharedDB sono ignorati
If Config.Settings.Settings.ToolTable_Remote Then
Me._ToolTable_AllowRemote = False
Me._ToolTable_SharedDB = False
Else
Me._ToolTable_AllowRemote = Ini.GetBoolean("OPTIONS", "TOOLTABLE_ALLOWREMOTE", 0)
Me._ToolTable_SharedDB = Ini.GetBoolean("OPTIONS", "TOOLTABLE_SHAREDDB", 0)
End If
Else
'CMSCncLib.App.Runtime.Log.WW("ERR LoadOptions", String.Format("File {0} not found", szFileIni), True)
End If
End Sub
'verifica che le opzioni sul cn siano coerenti, se no le corregge
Private Sub CheckOptions()
''leggo le opzioni dal cn
''verifico che siano uguali a quelle del file, se no modifico il cn e avviso l'utente della modifica
End Sub
End Class
End Namespace
Namespace Config
Class Options
Public Shared CurrentOptions As Options
Public Shared sPathFile As String
Private _Machine_Enabled As Boolean
''' <summary>Maintenance Machine</summary>
Public ReadOnly Property Machine_Enabled() As Boolean
Get
Return Me._Machine_Enabled
End Get
End Property
Private _Maintenance_Enabled As Boolean
''' <summary>Opzione Maintenance</summary>
Public ReadOnly Property Maintenance_Enabled() As Boolean
Get
Return Me._Maintenance_Enabled
End Get
End Property
Private _OpPanel_Enabled As Boolean
''' <summary>Opzione OpPanel</summary>
Public ReadOnly Property OpPanel_Enabled() As Boolean
Get
Return Me._OpPanel_Enabled
End Get
End Property
Private _Launch_Enabled As Boolean
''' <summary>Opzione Launch</summary>
Public ReadOnly Property Launch_Enabled() As Boolean
Get
Return Me._Launch_Enabled
End Get
End Property
Private _TcpSocket_Enabled As Boolean
''' <summary>Opzione TcpSocket</summary>
Public ReadOnly Property TcpSocket_Enabled() As Boolean
Get
Return Me._TcpSocket_Enabled
End Get
End Property
Private _ToolTable_Enabled As Boolean
''' <summary>Opzione ToolTable</summary>
Public ReadOnly Property ToolTable_Enabled() As Boolean
Get
Return Me._ToolTable_Enabled
End Get
End Property
Private _ToolTable_Famiglie As Boolean
''' <summary>Opzione Famiglie</summary>
Public ReadOnly Property ToolTable_Famiglie() As Boolean
Get
Return Me._ToolTable_Famiglie
End Get
End Property
Private _ToolTable_Vita As Boolean
''' <summary>Opzione Vita</summary>
Public ReadOnly Property ToolTable_Vita() As Boolean
Get
Return (Me._ToolTable_Vita_S Or Me._ToolTable_Vita_N Or Me._ToolTable_Vita_M)
End Get
End Property
Private _ToolTable_Vita_S As Boolean
''' <summary>Opzione Vita a Tempo</summary>
Public ReadOnly Property ToolTable_Vita_S() As Boolean
Get
Return Me._ToolTable_Vita_S
End Get
End Property
Private _ToolTable_Vita_N As Boolean
''' <summary>Opzione Vita a Cicli o Colpi</summary>
Public ReadOnly Property ToolTable_Vita_N() As Boolean
Get
Return Me._ToolTable_Vita_N
End Get
End Property
Private _ToolTable_Vita_M As Boolean
''' <summary>Opzione Vita a Profilo</summary>
Public ReadOnly Property ToolTable_Vita_M() As Boolean
Get
Return Me._ToolTable_Vita_M
End Get
End Property
Private _ToolTable_AttrezzaggioAutomatico As Boolean
''' <summary>Opzione Attrezzaggio Automatico</summary>
Public ReadOnly Property ToolTable_AttrezzaggioAutomatico() As Boolean
Get
Return Me._ToolTable_AttrezzaggioAutomatico
End Get
End Property
Private _ToolTable_PercorsoAutoadattativo As Boolean
''' <summary>Opzione Percorso Autoadattativo</summary>
Public ReadOnly Property ToolTable_PercorsoAutoadattativo() As Boolean
Get
Return Me._ToolTable_PercorsoAutoadattativo
End Get
End Property
Private _ToolTable_Multiprofilo As Boolean
''' <summary>Opzione Multiprofilo</summary>
Public ReadOnly Property ToolTable_Multiprofilo() As Boolean
Get
Return Me._ToolTable_Multiprofilo
End Get
End Property
Private _ToolTable_CompensazioneDinamica As Boolean
''' <summary>Opzione Compensazione Dinamica</summary>
Public ReadOnly Property ToolTable_CompensazioneDinamica() As Boolean
Get
Return Me._ToolTable_CompensazioneDinamica
End Get
End Property
Private _ToolTable_Offset As Boolean
''' <summary>Opzione Offset</summary>
Public ReadOnly Property ToolTable_Offset() As Boolean
Get
Return Me._ToolTable_Offset
End Get
End Property
Private _ToolTable_FeedMax As Boolean
''' <summary>Opzione FeedMax</summary>
Public ReadOnly Property ToolTable_FeedMax() As Boolean
Get
Return Me._ToolTable_FeedMax
End Get
End Property
Private _ToolTable_Gamme As Boolean
''' <summary>Opzione Gamme</summary>
Public ReadOnly Property ToolTable_Gamme() As Boolean
Get
Return Me._ToolTable_Gamme
End Get
End Property
Private _ToolTable_Manine As Boolean
''' <summary>Opzione Manine</summary>
Public ReadOnly Property ToolTable_Manine() As Boolean
Get
Return Me._ToolTable_Manine
End Get
End Property
Private _ToolTable_MaxToolsManaged As Integer
''' <summary>Massimo numero di utensili gestibili</summary>
Public ReadOnly Property ToolTable_MaxToolsManaged() As Integer
Get
Return Me._ToolTable_MaxToolsManaged
End Get
End Property
Private _ToolTable_Inch As Boolean
''' <summary>Opzione gestione in Pollici</summary>
Public ReadOnly Property ToolTable_Inch() As Boolean
Get
Return Me._ToolTable_Inch
End Get
End Property
Private _ToolTable_Diameter As Boolean
''' <summary>Opzione gestione Diametro</summary>
Public ReadOnly Property ToolTable_Diameter() As Boolean
Get
Return Me._ToolTable_Diameter
End Get
End Property
Private _ToolTable_AttrezzaggioInRun As Boolean
''' <summary>Opzione modifica con macchina in RUN</summary>
Public ReadOnly Property ToolTable_AttrezzaggioInRun() As Boolean
Get
Return Me._ToolTable_AttrezzaggioInRun
End Get
End Property
Private _ToolTable_AttrezzaggioAssistito As Boolean
''' <summary>Opzione Attrezzaggio magazzini inaccessibili tramite macchina</summary>
Public ReadOnly Property ToolTable_AttrezzaggioAssistito() As Boolean
Get
Return Me._ToolTable_AttrezzaggioAssistito
End Get
End Property
Private _ToolTable_SharedDB As Boolean
''' <summary>Opzione magazzino utensili condiviso tra più macchine</summary>
Public ReadOnly Property ToolTable_SharedDB() As Boolean
Get
Return Me._ToolTable_SharedDB
End Get
End Property
Private _ToolTable_AllowRemote As Boolean
''' <summary>Opzione AllowRemote Tool Table</summary>
Public ReadOnly Property ToolTable_AllowRemote() As Boolean
Get
Return Me._ToolTable_AllowRemote
End Get
End Property
Public Shared Sub CreateOptions(ByVal sPathF As String)
If CurrentOptions Is Nothing Then
CurrentOptions = New Options
End If
' Memorizzo il percorso del file INI
sPathFile = sPathF
CurrentOptions.LoadOptions()
End Sub
'carica le opzioni da file
Private Sub LoadOptions()
''leggo la matricola dal cn
''se non è possibile disabilito tutto e chiedo che venga attivata la connessione
''se leggo 0 avviso che la metricola deve essere popolata
''leggo il codice dal file
''valore = decodifica(valoreletto, matricola, passwordpubblica)
Dim szFileIni As String
Dim Ini As App.Native.Ini
' imposto il nome del file
szFileIni = sPathFile & "\" & My.Application.Info.AssemblyName & ".ini"
' verifico che esista il file
If My.Computer.FileSystem.FileExists(szFileIni) Then
'istanzio la classe di gestione del file
Ini = New App.Native.Ini(szFileIni)
'leggo i settaggi dal file
Me._Machine_Enabled = Ini.GetBoolean("OPTIONS", "MACHINE_ENABLED", 0)
Me._Maintenance_Enabled = Ini.GetBoolean("OPTIONS", "MAINTENANCE_ENABLED", 0)
Me._OpPanel_Enabled = Ini.GetBoolean("OPTIONS", "OPPANEL_ENABLED", 0)
Me._Launch_Enabled = Ini.GetBoolean("OPTIONS", "LAUNCH_ENABLED", 0)
Me._TcpSocket_Enabled = Ini.GetBoolean("OPTIONS", "TCPSOCKET_ENABLED", 0)
Me._ToolTable_Enabled = Ini.GetBoolean("OPTIONS", "TOOLTABLE_ENABLED", 0)
Me._ToolTable_Famiglie = Ini.GetBoolean("OPTIONS", "TOOLTABLE_FAMIGLIE", 0)
Me._ToolTable_Vita_S = Ini.GetBoolean("OPTIONS", "TOOLTABLE_VITA_S", 0)
Me._ToolTable_Vita_N = Ini.GetBoolean("OPTIONS", "TOOLTABLE_VITA_N", 0)
Me._ToolTable_Vita_M = Ini.GetBoolean("OPTIONS", "TOOLTABLE_VITA_M", 0)
Me._ToolTable_Multiprofilo = Ini.GetBoolean("OPTIONS", "TOOLTABLE_MULTIPROFILO", 0)
Me._ToolTable_AttrezzaggioAutomatico = Ini.GetBoolean("OPTIONS", "TOOLTABLE_ATTREZZAGGIOAUTOMATICO", 0)
Me._ToolTable_PercorsoAutoadattativo = Ini.GetBoolean("OPTIONS", "TOOLTABLE_PERCORSOAUTOADATTATIVO", 0)
Me._ToolTable_CompensazioneDinamica = Ini.GetBoolean("OPTIONS", "TOOLTABLE_COMPENSAZIONEDINAMICA", 0)
Me._ToolTable_Offset = Ini.GetBoolean("OPTIONS", "TOOLTABLE_OFFSET", 0)
Me._ToolTable_FeedMax = Ini.GetBoolean("OPTIONS", "TOOLTABLE_FEEDMAX", 0)
Me._ToolTable_Gamme = Ini.GetBoolean("OPTIONS", "TOOLTABLE_GAMME", 0)
Me._ToolTable_Manine = Ini.GetBoolean("OPTIONS", "TOOLTABLE_MANINE", 0)
'Me._ToolTable_GeometryManagement = Ini.GetInteger("OPTIONS", "TOOLTABLE_GEOMETRYMANAGEMENT", 0)
Me._ToolTable_MaxToolsManaged = Ini.GetInteger("OPTIONS", "TOOLTABLE_MAXTOOLSMANAGED", 0)
Me._ToolTable_Inch = Ini.GetBoolean("OPTIONS", "TOOLTABLE_INCH", 0)
Me._ToolTable_Diameter = IIf(CNC.Runtime.NC.Type = CNC.CNC.NcType.OSAI, True, False) 'Ini.GetBoolean("OPTIONS", "TOOLTABLE_DIAMETER", 0)
Me._ToolTable_AttrezzaggioInRun = Ini.GetBoolean("OPTIONS", "TOOLTABLE_ATTREZZAGGIO_IN_RUN", 0)
Me._ToolTable_AttrezzaggioAssistito = Ini.GetBoolean("OPTIONS", "TOOLTABLE_ATTREZZAGGIO_ASSISTITO", 0)
' Se è attiva l'opzione ToolTable_Remote, l'AllowRemote e SharedDB sono ignorati
If Config.Settings.Settings.ToolTable_Remote Then
Me._ToolTable_AllowRemote = False
Me._ToolTable_SharedDB = False
Else
Me._ToolTable_AllowRemote = Ini.GetBoolean("OPTIONS", "TOOLTABLE_ALLOWREMOTE", 0)
Me._ToolTable_SharedDB = Ini.GetBoolean("OPTIONS", "TOOLTABLE_SHAREDDB", 0)
End If
Else
'CMSCncLib.App.Runtime.Log.WW("ERR LoadOptions", String.Format("File {0} not found", szFileIni), True)
End If
End Sub
'verifica che le opzioni sul cn siano coerenti, se no le corregge
Private Sub CheckOptions()
''leggo le opzioni dal cn
''verifico che siano uguali a quelle del file, se no modifico il cn e avviso l'utente della modifica
End Sub
End Class
End Namespace
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+6 -3
View File
@@ -52,12 +52,15 @@
<HintPath>..\packages\MySql.Data.6.9.9\lib\net45\MySql.Data.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.5\lib\net45\NLog.dll</HintPath>
<Private>True</Private>
<HintPath>..\packages\NLog.4.5.8\lib\net45\NLog.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Transactions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
@@ -117,7 +120,7 @@
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<Content Include="NLog.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<None Include="dump\build.bat" />
<None Include="dump\dump.obj" />
+1 -1
View File
@@ -53,4 +53,4 @@
-->
<logger name="*" minlevel="Debug" writeTo="f" />
</rules>
</nlog>
</nlog>
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="MySql.Data" version="6.9.9" targetFramework="net452" />
<package id="NLog" version="4.4.5" targetFramework="net452" />
<package id="NLog.Config" version="4.4.5" targetFramework="net452" />
<package id="NLog.Schema" version="4.4.5" targetFramework="net452" />
<package id="NLog" version="4.5.8" targetFramework="net452" />
<package id="NLog.Config" version="4.5.8" targetFramework="net452" />
<package id="NLog.Schema" version="4.5.8" targetFramework="net452" />
<package id="PrettyBin" version="1.1.0" targetFramework="net452" />
<package id="SlowCheetah" version="2.5.48" targetFramework="net452" />
</packages>
+13 -4
View File
@@ -30,13 +30,24 @@
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="AForge, Version=2.2.5.0, Culture=neutral, PublicKeyToken=c1db6ff4eaa06aeb, processorArchitecture=MSIL">
<HintPath>..\packages\AForge.2.2.5\lib\AForge.dll</HintPath>
</Reference>
<Reference Include="AForge.Math, Version=2.2.5.0, Culture=neutral, PublicKeyToken=abba2e25397ee8c9, processorArchitecture=MSIL">
<HintPath>..\packages\AForge.Math.2.2.5\lib\AForge.Math.dll</HintPath>
</Reference>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.4.4\lib\net45\NLog.dll</HintPath>
<HintPath>..\packages\NLog.4.5.8\lib\net45\NLog.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
<Reference Include="System.configuration" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.Numerics" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Transactions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
@@ -50,9 +61,7 @@
<Compile Include="baseUtils.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="NLog.config">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</Content>
<None Include="NLog.config" />
<None Include="NLog.xsd">
<SubType>Designer</SubType>
</None>
+523 -315
View File
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
+5 -3
View File
@@ -1,6 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="NLog" version="4.4.4" targetFramework="net452" />
<package id="NLog.Config" version="4.4.4" targetFramework="net452" />
<package id="NLog.Schema" version="4.4.4" targetFramework="net452" />
<package id="AForge" version="2.2.5" targetFramework="net452" />
<package id="AForge.Math" version="2.2.5" targetFramework="net452" />
<package id="NLog" version="4.5.8" targetFramework="net452" />
<package id="NLog.Config" version="4.5.8" targetFramework="net452" />
<package id="NLog.Schema" version="4.5.8" targetFramework="net452" />
</packages>
-407
View File
@@ -1,407 +0,0 @@
using MTC;
using System;
using System.Collections.Generic;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
namespace MTC_Adapter
{
#region -- AdapterConf Class --
/// <summary>
/// This Configuration class is basically just a set of
/// properties with a couple of static methods to manage
/// the serialization to and deserialization from a
/// simple XML file.
///
/// ref: http://www.cambiaresearch.com/articles/33/how-can-i-easily-manage-an-xml-configuration-file-in-dotnet
/// </summary>
[Serializable]
public class AdapterConf
{
string sNomeAdapt;
int nVers;
double tContOreMaccOn;
double tContOreMaccLav;
int[] _ContGiriElettrom;
float[] _ContKmMovAssi;
tipoAdapter etipoAdapt;
element[] _VacuumPump;
element[] _VacuumAct;
element[] _Lubro;
element[] _Cooler;
element[] _Press;
element[] _Temp;
element[] _Path;
element[] _UnOp;
element[] _Axis;
element[] _MemArea;
/// <summary>
/// init conf adapter
/// </summary>
public AdapterConf()
{
sNomeAdapt = "";
etipoAdapt = tipoAdapter.DEMO;
}
public int nVacuumPump
{
get
{
int answ = 0;
if (VacuumPump != null)
{
try
{
answ = Convert.ToInt32(VacuumPump.Length);
}
catch
{ }
}
return answ;
}
}
public int nVacuumAct
{
get
{
int answ = 0;
if (VacuumAct != null)
{
try
{
answ = Convert.ToInt32(VacuumAct.Length);
}
catch
{ }
}
return answ;
}
}
public int nLubro
{
get
{
int answ = 0;
if (Lubro != null)
{
try
{
answ = Convert.ToInt32(Lubro.Length);
}
catch
{ }
}
return answ;
}
}
public int nCooler
{
get
{
int answ = 0;
if (Cooler != null)
{
try
{
answ = Convert.ToInt32(Cooler.Length);
}
catch
{ }
}
return answ;
}
}
public int nPress
{
get
{
int answ = 0;
if (Press != null)
{
try
{
answ = Convert.ToInt32(Press.Length);
}
catch
{ }
}
return answ;
}
}
public int nTemp
{
get
{
int answ = 0;
if (Temp != null)
{
try
{
answ = Convert.ToInt32(Temp.Length);
}
catch
{ }
}
return answ;
}
}
public int nPath
{
get
{
int answ = 0;
if (Path != null)
{
try
{
answ = Convert.ToInt32(Path.Length);
}
catch
{ }
}
return answ;
}
}
public int nUnOp
{
get
{
int answ = 0;
if (UnOp != null)
{
try
{
answ = Convert.ToInt32(UnOp.Length);
}
catch
{ }
}
return answ;
}
}
public int nAxis
{
get
{
int answ = 0;
if (Axis != null)
{
try
{
answ = Convert.ToInt32(Axis.Length);
}
catch
{ }
}
return answ;
}
}
public int nMemArea
{
get
{
int answ = 0;
if (MemArea != null)
{
try
{
answ = Convert.ToInt32(MemArea.Length);
}
catch
{ }
}
return answ;
}
}
/// <summary>
/// Serializzazione XML dell'oggetto conf dell'adapter
/// </summary>
/// <param name="file"></param>
/// <param name="c"></param>
public static void Serialize(string file, AdapterConf c)
{
// prima provo a creare il file vuoto...
if (!File.Exists(file))
{
string dirPath = file.Substring(0, file.LastIndexOf('\\'));
// verifico directory
if (!Directory.Exists(dirPath))
{
Directory.CreateDirectory(dirPath);
}
}
// salvo effettivamente file...
System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(c.GetType());
StreamWriter writer = File.CreateText(file);
xs.Serialize(writer, c);
writer.Flush();
writer.Close();
}
/// <summary>
/// deserializzazione oggetto conf adapter
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
public static AdapterConf Deserialize(string file)
{
XmlSerializer xs = new XmlSerializer(typeof(AdapterConf));
StreamReader reader = File.OpenText(file);
AdapterConf c = (AdapterConf)xs.Deserialize(reader);
reader.Close();
return c;
}
/// <summary>
/// restitusice forma XML grezza del file
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
public static string rawXml(string file)
{
string answ = "";
System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(AdapterConf));
StreamReader reader = File.OpenText(file);
answ = reader.ReadToEnd();
reader.Close();
return answ;
}
public int Version
{
get { return nVers; }
set { nVers = value; }
}
public string NomeAdapt
{
get { return sNomeAdapt; }
set { sNomeAdapt = value; }
}
public tipoAdapter TipoAdapt
{
get { return etipoAdapt; }
set { etipoAdapt = value; }
}
public double ContOreMaccOn
{
get { return tContOreMaccOn; }
set { tContOreMaccOn = value; }
}
public double ContOreMaccLav
{
get { return tContOreMaccLav; }
set { tContOreMaccLav = value; }
}
public int[] ContGiriElettrom
{
get { return _ContGiriElettrom; }
set { _ContGiriElettrom = value; }
}
public float[] ContKmMovAssi
{
get { return _ContKmMovAssi; }
set { _ContKmMovAssi = value; }
}
public element[] VacuumPump
{
get { return _VacuumPump; }
set { _VacuumPump = value; }
}
public element[] VacuumAct
{
get { return _VacuumAct; }
set { _VacuumAct = value; }
}
public element[] Lubro
{
get { return _Lubro; }
set { _Lubro = value; }
}
public element[] Cooler
{
get { return _Cooler; }
set { _Cooler = value; }
}
public element[] Press
{
get { return _Press; }
set { _Press = value; }
}
public element[] Temp
{
get { return _Temp; }
set { _Temp = value; }
}
public element[] Path
{
get { return _Path; }
set { _Path = value; }
}
public element[] UnOp
{
get { return _UnOp; }
set { _UnOp = value; }
}
public element[] Axis
{
get { return _Axis; }
set { _Axis = value; }
}
public element[] MemArea
{
get { return _MemArea; }
set { _MemArea = value; }
}
}
[Serializable]
[XmlType(TypeName = "dataRef")]
public struct DataRefItem<K, V>
{
public K Key { get; set; }
public V Value { get; set; }
public DataRefItem(K k, V v) : this() { Key = k; Value = v; }
}
/// <summary>
/// classe elemento base in cui salvare i dati di conf x recupero dati adapters
/// </summary>
public class element
{
/// <summary>
/// identificativo univoco x classe di elemento
/// </summary>
public string ident;
/// <summary>
/// Elenco riferimento dati x recupero (es posizioni memoria separate da #)
/// </summary>
public List<DataRefItem<string, string>> dataRefList;
/// <summary>
/// init empty
/// </summary>
public element()
{
ident = "";
dataRefList = new List<DataRefItem<string, string>>();
}
/// <summary>
/// init element con dati
/// </summary>
/// <param name="Idx">Identificativo univoco</param>
/// <param name="DataRef">Parametri x recupero dati in forma dictionary</param>
public element(string Idx, List<DataRefItem<string, string>> DataRef)
{
ident = Idx;
dataRefList = DataRef;
}
}
#endregion
}
-174
View File
@@ -1,174 +0,0 @@
using MTC;
using MTConnect;
using System;
namespace MTC_Adapter
{
public class AdapterDemo : AdapterGeneric
{
public Condition mTemp = new Condition("temp");
public Condition mFillLevel = new Condition("cool_low", true);
/// <summary>
/// estende l'init della classe base...
/// </summary>
/// <param name="caller"></param>
/// <param name="adpConf"></param>
public AdapterDemo(MainForm caller, AdapterConf adpConf) : base(caller, adpConf)
{
if (utils.CRB("verbose")) lg.Info("Start init Adapter DEMO");
// IMPLICITO: carica da metodo base tutte le specifiche del conf...
// aggiungo specifiche del demo: allarmi gestiti a buttons!!!
mAdapter.AddDataItem(mTemp);
mAdapter.AddDataItem(mFillLevel);
}
public override void startAdapter(int port)
{
base.startAdapter(port);
// aggiungo altre condizioni specifiche...
mTemp.Normal();
mFillLevel.Normal();
}
public override void getSlowChangingData()
{
// serve?!?
base.getSlowChangingData();
mOperator.Value = parentForm.datiProd.Operator;
// recupero SEMPRE dati ulteriori: status ON/OFF, clock, ...
mStatus.Value = parentForm.datiProd.Status;
mAccTime.Value = parentForm.datiProd.AccTime;
mClock.Value = DateTime.Now.Date.ToFileTimeUtc();
mPower.Value = parentForm.datiProd.Power;
}
public override void getStrobeAndAckStatus()
{
base.getStrobeAndAckStatus();
// controllo bool allarmi...
if (parentForm.datiProd.EmrStop)
{
mEStop.Value = "TRIGGERED";
}
else
{
mEStop.Value = "ARMED";
}
// imposto func mode...
mFunctionalMode.Value = parentForm.datiProd.FuncMode;
// se ho un messaggio...
if(parentForm.datiProd.MessageText.Length>0)
{
mMessage.Code = parentForm.datiProd.MessageCode;
mMessage.Value = parentForm.datiProd.MessageText;
}
}
public override void getConfigParam()
{
base.getConfigParam();
}
public override void processStrobe()
{
base.processStrobe();
// qui forzo la gestione di update dei path & co...
getPath();
getUnOp();
getAxis();
}
/// <summary>
/// non fa nulla perché recupera allarmi in vettore al singolo cambio...
/// </summary>
/// <param name="Alarm2Refresh"></param>
/// <param name="giveAck"></param>
public override void refreshAlarmState(StFlag32 Alarm2Refresh, bool giveAck)
{
base.refreshAlarmState(Alarm2Refresh, giveAck);
}
public override void getPath()
{
base.getPath();
PathData PtData = parentForm.CurrPath;
if(PtData.PathSel>=0)
{
vettPath[PtData.PathSel].mPathFeed.Value = PtData.PathFeedrate;
vettPath[PtData.PathSel].mPathFeedOver.Value = PtData.PathFeedrateOver;
vettPath[PtData.PathSel].mPathRapidOver.Value = PtData.PathRapidOver;
vettPath[PtData.PathSel].mPathPosActX.Value = PtData.PathPosAct.x;
vettPath[PtData.PathSel].mPathPosActY.Value = PtData.PathPosAct.y;
vettPath[PtData.PathSel].mPathPosActZ.Value = PtData.PathPosAct.z;
vettPath[PtData.PathSel].mPathPosActI.Value = PtData.PathPosAct.i;
vettPath[PtData.PathSel].mPathPosActJ.Value = PtData.PathPosAct.j;
vettPath[PtData.PathSel].mPathPosActK.Value = PtData.PathPosAct.k;
// aggiunta x revisione 2016.05.05
vettPath[PtData.PathSel].mPathType.Value = PtData.PathType;
vettPath[PtData.PathSel].mPathPartId.Value = PtData.PartId;
vettPath[PtData.PathSel].mPathPartCount.Value = PtData.pzTot;
vettPath[PtData.PathSel].mPathRunMode.Value = PtData.RunMode;
vettPath[PtData.PathSel].mPathExeMode.Value = PtData.ExeMode;
vettPath[PtData.PathSel].mPathCurrProg.Value = PtData.ProgramName;
vettPath[PtData.PathSel].mPathCurrProgRowNum.Value = PtData.ProgrRow;
vettPath[PtData.PathSel].mPathActiveAxes.Value = PtData.ActiveAxes;
}
}
public override void getUnOp()
{
base.getUnOp();
UnOpData uoData = parentForm.CurrUnOp;
if (uoData.UnOpSel >= 0)
{
vettUnOp[uoData.UnOpSel].mUnOpToolId.Value = uoData.UnOpToolId;
vettUnOp[uoData.UnOpSel].mUnOpNumCU.Value = uoData.UnOpNumCU;
vettUnOp[uoData.UnOpSel].mUnOpStatus.Value = uoData.UnOpStatus;
vettUnOp[uoData.UnOpSel].mUnOpVitaRes.Value = uoData.UnOpVitaRes;
vettUnOp[uoData.UnOpSel].mUnOpSpeed.Value = uoData.UnOpSpeed;
vettUnOp[uoData.UnOpSel].mUnOpLoad.Value = uoData.UnOpLoad;
vettUnOp[uoData.UnOpSel].mUnOpAccTime.Value = uoData.UnOpAccTime;
}
}
public override void getAxis()
{
base.getAxis();
AxisData AxData = parentForm.CurrAxis;
if (AxData.AxisSel >= 0)
{
// USO asse selezionato + dati visualizzati e di conseguenza aggiorno...
vettAxis[AxData.AxisSel].mAxMainProc.Value = AxData.AxisMainProc;
vettAxis[AxData.AxisSel].mAxIsMaster.Value = AxData.AxisIsMaster;
vettAxis[AxData.AxisSel].mAxMastId.Value = AxData.AxisMastId;
//vettAxis[AxData.AxisSel].mAxType.Value = AxData.AxisType;
vettAxis[AxData.AxisSel].mAxDir.Value = AxData.AxisDir;
vettAxis[AxData.AxisSel].mAxLoad.Value = AxData.AxisLoad;
vettAxis[AxData.AxisSel].mAxPosAct.Value = AxData.AxisPosAct;
vettAxis[AxData.AxisSel].mAxPosTgt.Value = AxData.AxisPosTgt;
vettAxis[AxData.AxisSel].mAxFeedAct.Value = AxData.AxisFeedAct;
vettAxis[AxData.AxisSel].mAxFeedOver.Value = AxData.AxisFeedOver;
vettAxis[AxData.AxisSel].mAxAccelAct.Value = AxData.AxisAccel;
vettAxis[AxData.AxisSel].mAxAccTime.Value = AxData.AxisAccTime;
vettAxis[AxData.AxisSel].mAxBattery.Value = AxData.AxisBattery;
}
}
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,421 +0,0 @@
# 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
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
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]
@@ -1,654 +0,0 @@
# Commenti con "#", elenco tipo COD_NUM|GRUPPO|LEVEL|DESCRIZIONE completa
000001|CNC|FAULT|[1] Atteso carattere [
000002|CNC|FAULT|[2] Numero Registro Errato
000003|CNC|FAULT|[3] Funzione non valida
000004|CNC|FAULT|[4] Parametrica: carattere non valido
000005|CNC|FAULT|[5] IF: Atteso carattere =
000006|CNC|FAULT|[6] JSR: Livello Annidamento Subroutine Errato
000007|CNC|FAULT|[7] RET: Annidamento Subroutine Errato
000008|CNC|FAULT|[8] Funzione non disponibile
000009|CNC|FAULT|[9] Troppe funzioni M consecutive
000010|CNC|FAULT|[10] Raggio senza G2/G3
000011|CNC|FAULT|[11] Raggio Inconsistente
000012|CNC|FAULT|[12] Errore inizializzazione canale
000013|CNC|FAULT|[13] Canale in stallo (deadlock)
000014|CNC|FAULT|[14] Ciclo Fisso non esistente
000015|CNC|FAULT|[15] Troppi livelli di parentesi (
000016|CNC|FAULT|[16] Assegnamento: atteso carattere =
000017|CNC|FAULT|[17] Atteso carattere CR
000018|CNC|FAULT|[18] Modo operativo cambiato
000019|CNC|FAULT|[19] JMP: Numero Blocco non trovato
000020|CNC|FAULT|[20] Programma non trovato
000021|CNC|FAULT|[21] Errore da procedura esterna
000022|CNC|FAULT|[22] Quota Fuori Limite
000023|CNC|FAULT|[23] Asse non configurato
000024|CNC|FAULT|[24] Mandrino non configurato
000025|CNC|FAULT|[25] Piano Selezionato Errato
000026|CNC|FAULT|[26] Asse non Disponibile
000027|CNC|FAULT|[27] Passo Maschiatura Nullo
000028|CNC|FAULT|[28] Asse in Allarme
000029|CNC|FAULT|[29] Feed Nulla
000030|CNC|FAULT|[30] Raggio Utensile Nullo
000031|CNC|FAULT|[31] Simbolo % non trovato
000032|CNC|FAULT|[32] Cambio Piano o Lato con CUT Attiva
000033|CNC|FAULT|[33] Mandrino senza Encoder
000034|CNC|FAULT|[34] Indirizzo senza numero
000035|CNC|FAULT|[35] SQRT: Argomento negativo
000036|CNC|FAULT|[36] TAN: Valore Infinito
000037|CNC|FAULT|[37] ASIN, ACOS: Argomento fuori range
000038|CNC|FAULT|[38] Divisione per zero
000039|CNC|FAULT|[39] Indirizzo non usato
000040|CNC|FAULT|[40] Numero senza indirizzo
000041|CNC|FAULT|[41] Parametro su indirizzo G
000042|CNC|FAULT|[42] Programma senza M2-M30
000043|CNC|FAULT|[43] Interpolazione con assi incompatibili
000044|CNC|FAULT|[44] Velocità mandrino troppo elevata
000045|CNC|FAULT|[45] Vel Asse Z > Vel Max Canale
000046|CNC|FAULT|[46] Correzione Tornio G18
000047|CNC|FAULT|[47] Tipo Geometria Utensile non gestita
000048|CNC|FAULT|[48] Coda Trasmissione Esaurita
000049|CNC|FAULT|[49] Coda Pacchetti Liberi Esaurita
000050|CNC|FAULT|[50] Raggio profilo minore Raggio Utensile
000051|CNC|FAULT|[51] Punto Finale Arco inconsistente
000052|CNC|FAULT|[52] Il Percorso non puo' essere seguito
000053|CNC|FAULT|[53] Segmento nullo
000054|CNC|FAULT|[54] Angolo nullo
000055|CNC|FAULT|[55] Operazione Illegale
000056|CNC|FAULT|[56] Intersezione tra segmenti o archi
000057|CNC|FAULT|[57] Attacco Profilo non permesso: usare G0
000058|CNC|FAULT|[58] Sovrataglio su Segmento Lineare
000059|CNC|FAULT|[59] Sovrataglio su Arco di Circonferenza
000060|CNC|FAULT|[60] Atteso carattere ]
000061|CNC|FAULT|[61] Valore troppo elevato
000062|CNC|FAULT|[62] Errore accesso file
000063|CNC|FAULT|[63] Descrittore Utensile Errato
000064|CNC|FAULT|[64] Troppi parametri
000065|CNC|FAULT|[65] Troppi caratteri nei campi stringa
000066|CNC|FAULT|[66] Atteso oggetto dopo ^
000067|CNC|FAULT|[67] Assegnazione a registro inesistente
000068|CNC|FAULT|[68] Argomento inesistente
000069|CNC|FAULT|[69] Codice SPC non riconosciuto
000070|CNC|FAULT|[70] Violazione semantica blocco APND
000071|CNC|FAULT|[71] Per spiegazioni vedere il Manuale
000072|CNC|FAULT|[72] CFC: Subroutine non trovata
000073|CNC|FAULT|[73] CFC: Parametri errati
000074|CNC|FAULT|[74] CFC: Errore di gestione risorse
000075|CNC|FAULT|[75] CFC: Nessuna risorsa
000076|CNC|FAULT|[76] CFC: Errore di chiusura
000077|CNC|FAULT|[77] CFC: Non specificato
000078|CNC|FAULT|[78] CFC: <DEBUG 1>
000079|CNC|FAULT|[79] CFC: (Per spiegazioni vedere il Manuale)
000080|CNC|FAULT|[80] CFC: Task eseguito correttamente
000081|CNC|FAULT|[81] CVB: Codice operativo sconosciuto
000082|CNC|FAULT|[82] CVB: Errore di gestione risorse
000083|CNC|FAULT|[83] CVB: Nessuna risorsa
000084|CNC|FAULT|[84] CVB: Errore di chiusura
000085|CNC|FAULT|[85] CVB: Pipe interrotta
000086|CNC|FAULT|[86] CVB: Ripristinato da stallo/Fine file inattesa
000087|CNC|FAULT|[87] CVB: Non specificato
000088|CNC|FAULT|[88] CVB: <DEBUG 1>
000089|CNC|FAULT|[89] CVB: (Per le spiegazioni vedere il Manuale)
000090|CNC|FAULT|[90] CVB: Task eseguito correttamente
000093|CNC|FAULT|[93] APIO: Nessuna risorsa
000094|CNC|FAULT|[94] APIO: Errore di chiusura
000095|CNC|FAULT|[95] APIO: Non specificato
000096|CNC|FAULT|[96] APIO: <DEBUG 1>
000097|CNC|FAULT|[97] APIO: (Per spiegazioni vedere il Manuale)
000098|CNC|FAULT|[98] APIO: Task eseguito correttamente
000099|CNC|FAULT|[99] XCL: Codice operativo sconosciuto
000100|CNC|FAULT|[100] XCL: Errore di gestione risorse
000101|CNC|FAULT|[101] XCL: Nessuna risorsa
000102|CNC|FAULT|[102] XCL: Errore di chiusura
000103|CNC|FAULT|[103] XCL: Pipe interrotta
000104|CNC|FAULT|[104] XCL: Ripristinato da stallo/Fine file inattesa
000105|CNC|FAULT|[105] XCL: Non specificato
000106|CNC|FAULT|[106] XCL: <DEBUG 1>
000107|CNC|FAULT|[107] XCL: (Per le spiegazioni vedere il Manuale)
000108|CNC|FAULT|[108] XCL: Compito eseguito correttamente
000109|CNC|FAULT|[109] XAM: Codice operativo sconosciuto
000110|CNC|FAULT|[110] XAM: Errore di gestione risorse
000111|CNC|FAULT|[111] XAM: Nessuna risorsa
000112|CNC|FAULT|[112] XAM: Errore di chiusura
000113|CNC|FAULT|[113] XAM: Pipe interrotta
000114|CNC|FAULT|[114] XAM: Ripristinato da stallo/Fine file inattesa
000115|CNC|FAULT|[115] XAM: Non specificato
000116|CNC|FAULT|[116] XAM: <DEBUG 1>
000117|CNC|FAULT|[117] XAM: (Per le spiegazioni vedere il Manuale)
000118|CNC|FAULT|[118] XAM: Task eseguito correttamente
000119|CNC|FAULT|[119] RETR: Codice operativo sconosciuto
000120|CNC|FAULT|[120] RETR: Errore di gestione risorse
000121|CNC|FAULT|[121] RETR: Nessuna risorsa
000122|CNC|FAULT|[122] RETR: Errore di chiusura
000123|CNC|FAULT|[123] RETR: Pipe interrotta
000124|CNC|FAULT|[124] RETR: Ripristinato da stallo/Fine file inattesa
000125|CNC|FAULT|[125] RETR: Non specificato
000126|CNC|FAULT|[126] RETR: <DEBUG 1>
000127|CNC|FAULT|[127] RETR: (Per le spiegazioni vedere il Manuale)
000128|CNC|FAULT|[128] RETR: Task eseguito correttamente
000129|CNC|FAULT|[129] PG2: Codice operativo sconosciuto
000130|CNC|FAULT|[130] PG2: Errore di gestione risorse
000131|CNC|FAULT|[131] PG2: Nessuna risorsa
000132|CNC|FAULT|[132] PG2: Errore di chiusura
000133|CNC|FAULT|[133] PG2: Pipe interrotta
000134|CNC|FAULT|[134] PG2: Ripristinato da stallo/Fine file inattesa
000135|CNC|FAULT|[135] PG2: Non specificato
000136|CNC|FAULT|[136] PG2: <DEBUG 1>
000137|CNC|FAULT|[137] PG2: (Per le spiegazioni vedere il Manuale)
000138|CNC|FAULT|[138] PG2: Task eseguito correttamente
000139|CNC|FAULT|[139] WARP: Codice operativo sconosciuto
000140|CNC|FAULT|[140] WARP: Errore di gestione risorse
000141|CNC|FAULT|[141] WARP: Nessuna risorsa
000142|CNC|FAULT|[142] WARP: Errore di chiusura
000143|CNC|FAULT|[143] WARP: Pipe interrotta
000144|CNC|FAULT|[144] WARP: Ripristinato da stallo/Fine file inattesa
000145|CNC|FAULT|[145] WARP: Non specificato
000146|CNC|FAULT|[146] WARP: <DEBUG 1>
000147|CNC|FAULT|[147] WARP: (Per le spiegazioni vedere il Manuale)
000148|CNC|FAULT|[148] WARP: Task eseguito correttamente
000149|CNC|FAULT|[149] PAG: Codice operativo sconosciuto
000150|CNC|FAULT|[150] PAG: Errore di gestione risorse
000151|CNC|FAULT|[151] PAG: Nessuna risorsa
000152|CNC|FAULT|[152] PAG: Errore di chiusura
000153|CNC|FAULT|[153] PAG: Pipe interrotta
000154|CNC|FAULT|[154] PAG: Ripristinato da stallo/Fine file inattesa
000155|CNC|FAULT|[155] PAG: Non specificato
000156|CNC|FAULT|[156] PAG: <DEBUG 1>
000157|CNC|FAULT|[157] PAG: (Per le spiegazioni vedere il Manuale)
000158|CNC|FAULT|[158] PAG: Task eseguito correttamente
000159|CNC|FAULT|[159] Codice di errore sconosciuto
000160|CNC|FAULT|[160] Asse X Quota Fuori Limite
000161|CNC|FAULT|[161] Asse Y Quota Fuori Limite
000162|CNC|FAULT|[162] Asse Z Quota Fuori Limite
000163|CNC|FAULT|[163] Asse U Quota Fuori Limite
000164|CNC|FAULT|[164] Asse V Quota Fuori Limite
000165|CNC|FAULT|[165] Asse W Quota Fuori Limite
000166|CNC|FAULT|[166] Asse A Quota Fuori Limite
000167|CNC|FAULT|[167] Asse B Quota Fuori Limite
000168|CNC|FAULT|[168] Asse C Quota Fuori Limite
000170|CNC|FAULT|[170] Errore definizione variabile record [simbolo]
000171|CNC|FAULT|[171] Errore assegnazione variabile record [simbolo]
000172|CNC|FAULT|[172] Errore definizione variabile record [var defcn]
000173|CNC|FAULT|[173] Errore assegnazione variabile record [var defcn]
000174|CNC|FAULT|[174] Errore definizione variabile record [INPUT]
000175|CNC|FAULT|[175] Impossibile assegnare registro di input
000176|CNC|FAULT|[176] Errore definizione variabile record [OUT]
000177|CNC|FAULT|[177] Errore assegnazione variabile record [OUT]
000178|CNC|FAULT|[178] Errore definizione variabile record [registro logico]
000179|CNC|FAULT|[179] Errore definizione variabile record [variabile automatica]
000180|CNC|FAULT|[180] Atteso valore da assegnare a variabile record
000181|CNC|FAULT|[181] Array oltre il massimo consentito
000182|CNC|FAULT|[182] Simbolo giá definito
000183|CNC|FAULT|[183] Impossibile inizializzare gli Array
000184|CNC|FAULT|[184] Errore inizializzazione variabile
000185|CNC|FAULT|[185] Errore sintattico definizione parametrica
000186|CNC|FAULT|[186] Tipo di dato incompatibile
000187|CNC|FAULT|[187] Impossibile definire altri simboli
000188|CNC|FAULT|[188] Simbolo non definito
000189|CNC|FAULT|[189] Errore assegnamento stringa
000190|CNC|FAULT|[190] Errore assegnamento numerico
000191|CNC|FAULT|[191] Simbolo inesistente
000192|CNC|FAULT|[192] Errore definizione variabile record [registro logico]
000193|CNC|FAULT|[193] Atteso simbolo parametrica
000194|CNC|FAULT|[194] Errore accesso registro in defcn
000195|CNC|FAULT|[195] Superato numero massimo di variabili simboliche
000197|CNC|FAULT|[197] Out of memory/Memory not awarded
000199|CNC|FAULT|[199] Errore di inizializzazione
000200|CNC|FAULT|[200] <DEBUG: TCO: Codice operativo sconosciuto>
000201|CNC|FAULT|[201] <DEBUG: TCO: Errore di gestione risorse>
000202|CNC|FAULT|[202] <DEBUG: TCO: Nessuna risorsa>
000203|CNC|FAULT|[203] <DEBUG: TCO: Errore di chiusura>
000204|CNC|FAULT|[204] <DEBUG: TCO: Pipe interrotta>
000205|CNC|FAULT|[205] <DEBUG: TCO: Ripristinato da stallo/Fine file inattesa>
000206|CNC|FAULT|[206] <DEBUG: TCO: Non specificato>
000207|CNC|FAULT|[207] <DEBUG: TCO: <DEBUG 1>>
000208|CNC|FAULT|[208] <DEBUG: TCO: (Per le spiegazioni vedere il Manuale)>
000209|CNC|FAULT|[209] <DEBUG: TCO: Task eseguito correttamente>
000210|CNC|FAULT|[210] XCL: Violazione Semantica Blocco APND
000211|CNC|FAULT|[211] XAM: Violazione Semantica Blocco APND
000212|CNC|FAULT|[212] <DEBUG: PMI: Codice operativo non valido>
000213|CNC|FAULT|[213] <DEBUG: PMI: Paratetri vettore di I/O errati>
000214|CNC|FAULT|[214] <DEBUG: PMI: Ricevuto segnale di terminazione>
000215|CNC|FAULT|[215] <DEBUG: PMI: Errore di inizializzazione>
000216|CNC|FAULT|[216] <DEBUG: PMI: Errore di chiusura>
000217|CNC|FAULT|[217] <DEBUG: PMI: Non specificato>
000218|CNC|FAULT|[218] <DEBUG: PMI: (Per le spiegazioni vedere il Manuale)>
000219|CNC|FAULT|[219] <DEBUG: PMI: Task eseguito correttamente>
000220|CNC|FAULT|[220] Dati Tagliente non trovati
000221|CNC|FAULT|[221] Cinematica non supportata
000222|CNC|FAULT|[222] Errato orientamento entità TWI
000223|CNC|FAULT|[223] Orientamento utensile non definito
000224|CNC|FAULT|[224] TCP non trovato
000225|CNC|FAULT|[225] Trasformazione THD non supportata
000226|CNC|FAULT|[226] Impossibile selezionare tagliente, IJK assenti
000227|CNC|FAULT|[227] Violazione tagliente
000228|CNC|FAULT|[228] XCL: Vedi manuale
000229|CNC|FAULT|[229] Orientamento utensile impossibile
000230|CNC|FAULT|[230] Driver assi polari non supportato
000231|CNC|FAULT|[231] Beccheggio incoerente
000232|CNC|FAULT|[232] Imbardata incoerente
000233|CNC|FAULT|[233] Modalità ICDSID non supportata
000234|CNC|FAULT|[234] Relazione ambigua tra tagliente e lavorazione
000235|CNC|FAULT|[235] Richiesto blocco di movimento dopo G00
000236|CNC|FAULT|[236] Troppi blocchi non di movimento
000237|CNC|FAULT|[237] Sequenza assi di percorso non gestita
000238|CNC|FAULT|[238] Errore interno XCL
000240|CNC|FAULT|[240] Overflow buffer DLE
000241|CNC|FAULT|[241] Deceleration Look-Ahead: Troppi blocchi non di movimento
000242|CNC|FAULT|[242] Formato non riconosciuto da DLE
000243|CNC|FAULT|[243] La Pipe interna di DLE é interrotta
000244|CNC|FAULT|[244] Errore interno DLE
000245|CNC|FAULT|[245] DLE: (Per le spiegazioni vedere il Manuale)
000250|CNC|FAULT|[250] TCO: Violazione Semantica Blocco APND
000251|CNC|FAULT|[251] PG2: Violazione Semantica Blocco APND
000256|CNC|FAULT|[256] Orientamento utensile non definito con ICDSID
000257|CNC|FAULT|[257] Vettore di superficie non definito con ICDSID
000258|CNC|FAULT|[258] Beccheggio utensile incompatibile con la lavorazione
000259|CNC|FAULT|[259] Imbardata utensile indeterminata con PADSID attivo
000260|CNC|FAULT|[260] Modalità PADSID non supportata
000261|CNC|FAULT|[261] Modalità PADCHK non supportata
000262|CNC|FAULT|[262] Discontinuità superficie troppo elevata
000263|CNC|FAULT|[263] Avanzamento nel materiale incompatibile con l'utensile
000265|CNC|FAULT|[265] Codice TWI troppo elevato
000266|CNC|FAULT|[266] Codice THD troppo elevato
000267|CNC|FAULT|[267] Codice D troppo elevato
000270|CNC|FAULT|[270] Richiesto idoneo orientamento utensile con xSCMOD
000271|CNC|FAULT|[271] Richiesto idoneo vettore di superficie con xSCMOD
000272|CNC|FAULT|[272] Orientamento utensile non definito con xSCMOD
000273|CNC|FAULT|[273] Vettore di superficie non definito con xSCMOD
000274|CNC|FAULT|[274] Soli blocchi G1 consentiti con xSCMOD
000275|CNC|FAULT|[275] Lunghezza blocco in testa incompatibile con ESCMOD
000276|CNC|FAULT|[276] Lunghezza unico blocco incompatibile con xSCMOD
000277|CNC|FAULT|[277] Lunghezza blocco in coda incompatibile con XSCMOD
000282|CNC|FAULT|[282] PAG: Implementation restriction
000283|CNC|FAULT|[283] PAG: Not enough data
000284|CNC|FAULT|[284] PAG: Ambiguous data
000285|CNC|FAULT|[285] PAG: Undetermined solution
000286|CNC|FAULT|[286] PAG: No solution found
000287|CNC|FAULT|[287] PAG: Invalid feed command
000290|CNC|FAULT|[290] <DEBUG: PMI: Estensione utente non inizializzata>
000292|CNC|FAULT|[292] Speed Mandrino < Speed Min
000400|CNC|FAULT|[400] Superato numero massimo strutture di controllo
000401|CNC|FAULT|[401] IF () THEN non sono sullo stesso blocco
000402|CNC|FAULT|[402] BREAK non inserito in struttura di controllo
000403|CNC|FAULT|[403] ELSE senza IF/THEN
000404|CNC|FAULT|[404] Due ELSE consecutivi
000405|CNC|FAULT|[405] Disallineamento strutture di controllo
000406|CNC|FAULT|[406] ENDW, ENDFOR,REPEAT non devono essere seguiti da codice
000407|CNC|FAULT|[407] UNTIL senza REPEAT
000408|CNC|FAULT|[408] FOR senza valore limite
000409|CNC|FAULT|[409] RPT/BREAK: errore salto fuori dal ciclo
000412|CNC|FAULT|[412] Errore accesso dati ricerca blocco in DEFCN
000413|CNC|FAULT|[413] Procedura Overstore: blocchi di movimentazione non ammessi
000420|CNC|FAULT|[420] Errore di condivisione file
000421|CNC|FAULT|[421] Memoria insufficiente per aprire il file
000422|CNC|FAULT|[422] Errore sconosciuto sul file
000424|CNC|FAULT|[424] Vita utensile esaurita
000513|CNC|FAULT|[513] <DEBUG: Errore accesso dati limiti assi>
000514|CNC|FAULT|[514] <DEBUG: Errore interno>
000522|CNC|FAULT|[522] Asse X Quota Fuori Limite
000523|CNC|FAULT|[523] Asse Y Quota Fuori Limite
000524|CNC|FAULT|[524] Asse Z Quota Fuori Limite
000525|CNC|FAULT|[525] Asse U Quota Fuori Limite
000526|CNC|FAULT|[526] Asse V Quota Fuori Limite
000527|CNC|FAULT|[527] Asse W Quota Fuori Limite
000528|CNC|FAULT|[528] Asse A Quota Fuori Limite
000529|CNC|FAULT|[529] Asse B Quota Fuori Limite
000530|CNC|FAULT|[530] Asse C Quota Fuori Limite
000549|CNC|FAULT|[549] <DEBUG: Errore sulla pipe di uscita della grafica>
000550|CNC|FAULT|[550] <DEBUG: Chiamata alle TMAPI non implementata>
000554|CNC|FAULT|[554] <DEBUG: Connessione al server grafico gia' stabilita>
000555|CNC|FAULT|[555] <DEBUG: Impossibile registrarsi presso il server grafico>
000556|CNC|FAULT|[556] <DEBUG: Nessuna connessione stabilita col server grafico>
000557|CNC|FAULT|[557] <DEBUG: Il server grafico ha interrotto le attivita'>
000560|CNC|FAULT|[560] <DEBUG: L'evento di chiusura e' stato segnalato dal Kernel>
000564|CNC|FAULT|[564] <DEBUG: Non c'e' abbastanza memoria per inizializzare TMAPI>
000565|CNC|FAULT|[565] <DEBUG: Non e' stato possibile liberare tutte le risorse>
000566|CNC|FAULT|[566] <DEBUG: Non specificato>
000569|CNC|FAULT|[569] <DEBUG: Vedere il manuale>
000609|CNC|FAULT|[609] <DEBUG: Configurazione di assi non gestita>
000610|CNC|FAULT|[610] <DEBUG: La prestazione non e' implementata>
000612|CNC|FAULT|[612] <DEBUG: GRAPH Multitool setup has bad freecells>
000613|CNC|FAULT|[613] <DEBUG: GRAPH Multitool setup has NO freecells>
000625|CNC|FAULT|[625] <DEBUG: Errore nella lettura della configurazione del server grafico>
000641|CNC|FAULT|[641] <DEBUG: Fallita scrittura di dati packed>
000642|CNC|FAULT|[642] <DEBUG: Errato tipo di destinazione per dato packed>
000643|CNC|FAULT|[643] <DEBUG: Errato tipo di sorgente per dato packed>
000644|CNC|FAULT|[644] <DEBUG: Impossibile arrotondare il valore del dato packed>
000649|CNC|FAULT|[649] <DEBUG: Fallita scrittura di dati unpacked>
000650|CNC|FAULT|[650] <DEBUG: Errato tipo di destinazione per dato unpacked>
000657|CNC|FAULT|[657] <DEBUG: Semantica errata>
000658|CNC|FAULT|[658] <DEBUG: Comando sconosciuto>
000659|CNC|FAULT|[659] Codice SPC non riconosciuto
000673|CNC|FAULT|[673] <DEBUG: Errore accesso dati CED, THD o TWI>
000674|CNC|FAULT|[674] Memoria insufficiente per il tool caching
000682|CNC|FAULT|[682] Cinematica non supportata
000692|CNC|FAULT|[692] Codice TWI troppo elevato
000693|CNC|FAULT|[693] Codice THD troppo elevato
000694|CNC|FAULT|[694] Codice D troppo elevato
000695|CNC|FAULT|[695] Driver assi polari non supportato
000714|CNC|FAULT|[714] Cinematica non supportata
000715|CNC|FAULT|[715] Errato orientamento entità TWI
000716|CNC|FAULT|[716] Orientamento utensile non definito
000717|CNC|FAULT|[717] TCP non trovato
000718|CNC|FAULT|[718] Trasformazione THD non supportata
000719|CNC|FAULT|[719] Impossibile selezionare tagliente, IJK assenti
000720|CNC|FAULT|[720] Violazione tagliente
000724|CNC|FAULT|[724] <DEBUG: Vedere il manuale>
000738|CNC|FAULT|[738] <DEBUG: Errore pipe di ingresso esec. passante>
000743|CNC|FAULT|[743] <DEBUG: Il server della esec. passante ha interrotto le attivita'>
000746|CNC|FAULT|[746] <DEBUG: Troppi file non remoti aperti in esec. passante>
000749|CNC|FAULT|[749] Salto ad etichetta impossibile in esecuzione passante
000750|CNC|FAULT|[750] <DEBUG: Errore nella lettura della configurazione in esec. passante>
000751|CNC|FAULT|[751] Linea troppo lunga in esecuzione passante
001001|CNC|FAULT|[1001] PLC IN BLOCCO
001002|CNC|FAULT|[1002] ERRORE CARICAMENTO PLC
001003|CNC|FAULT|[1003] PLC LENTO TIMEOUT
001005|CNC|FAULT|[1005] PLC VELOCE TIMEOUT
001006|CNC|FAULT|[1006] CN IN BLOCCO
001007|CNC|FAULT|[1007] CONFIGURAZIONE NULLA
001008|CNC|FAULT|[1008] DATI MACCHINA ERRATI
001033|CNC|FAULT|[1033] Errore I/O: CRC
001034|CNC|FAULT|[1034] Errore I/O: TIMEOUT
001035|CNC|FAULT|[1035] Errore I/O: NACK
001036|CNC|FAULT|[1036] Errore I/O: INVALID ID
001039|CNC|FAULT|[1039] Errore I/O: RX not READY
001040|CNC|FAULT|[1040] Errore I/O: ERRORE GENERICO
001041|CNC|FAULT|[1041] Errore I/O: ALIMENTAZIONE NODO KO
001042|CNC|FAULT|[1042] Errore I/O: USCITA IN PROTEZIONE
001043|CNC|FAULT|[1043] Errore I/O: MANCA 24 VOLT
001044|CNC|FAULT|[1044] Errore I/O: ADC BUSY
001047|CNC|FAULT|[1047] Errore I/O: SCHEDA NON PRESENTE
001049|CNC|FAULT|[1049] V+12 FUORI SOGLIA
001050|CNC|FAULT|[1050] V-12 FUORI SOGLIA
001051|CNC|FAULT|[1051] V ENCODER FUORI SOGLIA
001052|CNC|FAULT|[1052] V BATTERIA FUORI SOGLIA
001056|CNC|FAULT|[1056] TEMPERATURA FUORI SOGLIA
001057|CNC|FAULT|[1057] CN HARDWARE ERROR: BOARD OR NODE ERROR
001058|CNC|FAULT|[1058] X:F.C. Avanti
001059|CNC|FAULT|[1059] X:F.C. Indietro
001060|CNC|FAULT|[1060] X:F.C. Software
001061|CNC|FAULT|[1061] X:Allarme Asse: Richiesta esterna
001062|CNC|FAULT|[1062] X:Errore Taratura
001063|CNC|FAULT|[1063] X:Asse non definito
001064|CNC|FAULT|[1064] X:Asse non presente e fly
001065|CNC|FAULT|[1065] X:Errore Tolleranza
001066|CNC|FAULT|[1066] X:Errore d'inseguimento
001067|CNC|FAULT|[1067] X:Errore Offset
001068|CNC|FAULT|[1068] X:Richiesta Allarme I/O di controllo
001069|CNC|FAULT|[1069] X:Interfaccia DAC o Encoder mancante
001070|CNC|FAULT|[1070] X:Mancanza conteggio Encoder
001071|CNC|FAULT|[1071] X:Asse in collisione
001072|CNC|FAULT|[1072] X:Gamma non presente
001073|CNC|FAULT|[1073] X:Encoder non collegato
001074|CNC|FAULT|[1074] X:Asse non disponibile
001075|CNC|FAULT|[1075] X:Allarme Servodrive Digitale
001076|CNC|FAULT|[1076] X:Disallineamento assi Gantry
001077|CNC|FAULT|[1077] X:Allarme Protocollo CanOpen
001078|CNC|FAULT|[1078] X:Drive in Allarme
001079|CNC|FAULT|[1079] X:Errore Comando
001080|CNC|FAULT|[1080] X:Reserved
001081|CNC|FAULT|[1081] X:Reserved
001082|CNC|FAULT|[1082] X:Reserved
001083|CNC|FAULT|[1083] X:Reserved
001084|CNC|FAULT|[1084] X:Reserved
001085|CNC|FAULT|[1085] X:Azionamento digitale non pronto
001086|CNC|FAULT|[1086] X:Dati non validi
001087|CNC|FAULT|[1087] X:Pacchetto dati corrotto errore di BCC
001088|CNC|FAULT|[1088] X:Rumore sulla linea di comunicazione con l'azionamento
001089|CNC|FAULT|[1089] X:Timeout comunicazione con azionamento digitale
001090|CNC|FAULT|[1090] Y:F.C. Avanti
001091|CNC|FAULT|[1091] Y:F.C. Indietro
001092|CNC|FAULT|[1092] Y:F.C. Software
001093|CNC|FAULT|[1093] Y:Allarme Asse: Richiesta esterna
001094|CNC|FAULT|[1094] Y:Errore Taratura
001095|CNC|FAULT|[1095] Y:Asse non definito
001096|CNC|FAULT|[1096] Y:Asse non presente e fly
001097|CNC|FAULT|[1097] Y:Errore Tolleranza
001098|CNC|FAULT|[1098] Y:Errore d'inseguimento
001099|CNC|FAULT|[1099] Y:Errore Offset
001100|CNC|FAULT|[1100] Y:Richiesta Allarme I/O di controllo
001101|CNC|FAULT|[1101] Y:Interfaccia DAC o Encoder mancante
001102|CNC|FAULT|[1102] Y:Mancanza conteggio Encoder
001103|CNC|FAULT|[1103] Y:Asse in collisione
001104|CNC|FAULT|[1104] Y:Gamma non presente
001105|CNC|FAULT|[1105] Y:Encoder non collegato
001106|CNC|FAULT|[1106] Y:Asse non disponibile
001107|CNC|FAULT|[1107] Y:Allarme Servodrive Digitale
001108|CNC|FAULT|[1108] Y:Disallineamento assi Gantry
001109|CNC|FAULT|[1109] Y:Allarme Protocollo CanOpen
001110|CNC|FAULT|[1110] Y:Drive in Allarme
001111|CNC|FAULT|[1111] Y:Errore Comando
001112|CNC|FAULT|[1112] Y:Reserved
001113|CNC|FAULT|[1113] Y:Reserved
001114|CNC|FAULT|[1114] Y:Reserved
001115|CNC|FAULT|[1115] Y:Reserved
001116|CNC|FAULT|[1116] Y:Reserved
001117|CNC|FAULT|[1117] Y:Azionamento digitale non pronto
001118|CNC|FAULT|[1118] Y:Dati non validi
001119|CNC|FAULT|[1119] Y:Pacchetto dati corrotto errore di BCC
001120|CNC|FAULT|[1120] Y:Rumore sulla linea di comunicazione con l'azionamento
001121|CNC|FAULT|[1121] Y:Timeout comunicazione con azionamento digitale
001122|CNC|FAULT|[1122] Z:F.C. Avanti
001123|CNC|FAULT|[1123] Z:F.C. Indietro
001124|CNC|FAULT|[1124] Z:F.C. Software
001125|CNC|FAULT|[1125] Z:Allarme Asse: Richiesta esterna
001126|CNC|FAULT|[1126] Z:Errore Taratura
001127|CNC|FAULT|[1127] Z:Asse non definito
001128|CNC|FAULT|[1128] Z:Asse non presente e fly
001129|CNC|FAULT|[1129] Z:Errore Tolleranza
001130|CNC|FAULT|[1130] Z:Errore d'inseguimento
001131|CNC|FAULT|[1131] Z:Errore Offset
001132|CNC|FAULT|[1132] Z:Richiesta Allarme I/O di controllo
001133|CNC|FAULT|[1133] Z:Interfaccia DAC o Encoder mancante
001134|CNC|FAULT|[1134] Z:Mancanza conteggio Encoder
001135|CNC|FAULT|[1135] Z:Asse in collisione
001136|CNC|FAULT|[1136] Z:Gamma non presente
001137|CNC|FAULT|[1137] Z:Encoder non collegato
001138|CNC|FAULT|[1138] Z:Asse non disponibile
001139|CNC|FAULT|[1139] Z:Allarme Servodrive Digitale
001140|CNC|FAULT|[1140] Z:Disallineamento assi Gantry
001141|CNC|FAULT|[1141] Z:Allarme Protocollo CanOpen
001142|CNC|FAULT|[1142] Z:Drive in Allarme
001143|CNC|FAULT|[1143] Z:Errore Comando
001144|CNC|FAULT|[1144] Z:Reserved
001145|CNC|FAULT|[1145] Z:Reserved
001146|CNC|FAULT|[1146] Z:Reserved
001147|CNC|FAULT|[1147] Z:Reserved
001148|CNC|FAULT|[1148] Z:Reserved
001149|CNC|FAULT|[1149] Z:Azionamento digitale non pronto
001150|CNC|FAULT|[1150] Z:Dati non validi
001151|CNC|FAULT|[1151] Z:Pacchetto dati corrotto errore di BCC
001152|CNC|FAULT|[1152] Z:Rumore sulla linea di comunicazione con l'azionamento
001153|CNC|FAULT|[1153] Z:Timeout comunicazione con azionamento digitale
001154|CNC|FAULT|[1154] U:F.C. Avanti
001155|CNC|FAULT|[1155] U:F.C. Indietro
001156|CNC|FAULT|[1156] U:F.C. Software
001157|CNC|FAULT|[1157] U:Allarme Asse: Richiesta esterna
001158|CNC|FAULT|[1158] U:Errore Taratura
001159|CNC|FAULT|[1159] U:Asse non definito
001160|CNC|FAULT|[1160] U:Asse non presente e fly
001161|CNC|FAULT|[1161] U:Errore Tolleranza
001162|CNC|FAULT|[1162] U:Errore d'inseguimento
001163|CNC|FAULT|[1163] U:Errore Offset
001164|CNC|FAULT|[1164] U:Richiesta Allarme I/O di controllo
001165|CNC|FAULT|[1165] U:Interfaccia DAC o Encoder mancante
001166|CNC|FAULT|[1166] U:Mancanza conteggio Encoder
001167|CNC|FAULT|[1167] U:Asse in collisione
001168|CNC|FAULT|[1168] U:Gamma non presente
001169|CNC|FAULT|[1169] U:Encoder non collegato
001170|CNC|FAULT|[1170] U:Asse non disponibile
001171|CNC|FAULT|[1171] U:Allarme Servodrive Digitale
001172|CNC|FAULT|[1172] U:Disallineamento assi Gantry
001173|CNC|FAULT|[1173] U:Allarme Protocollo CanOpen
001174|CNC|FAULT|[1174] U:Drive in Allarme
001175|CNC|FAULT|[1175] U:Errore Comando
001176|CNC|FAULT|[1176] U:Reserved
001177|CNC|FAULT|[1177] U:Reserved
001178|CNC|FAULT|[1178] U:Reserved
001179|CNC|FAULT|[1179] U:Reserved
001180|CNC|FAULT|[1180] U:Reserved
001181|CNC|FAULT|[1181] U:Azionamento digitale non pronto
001182|CNC|FAULT|[1182] U:Dati non validi
001183|CNC|FAULT|[1183] U:Pacchetto dati corrotto errore di BCC
001184|CNC|FAULT|[1184] U:Rumore sulla linea di comunicazione con l'azionamento
001185|CNC|FAULT|[1185] U:Timeout comunicazione con azionamento digitale
001186|CNC|FAULT|[1186] V:F.C. Avanti
001187|CNC|FAULT|[1187] V:F.C. Indietro
001188|CNC|FAULT|[1188] V:F.C. Software
001189|CNC|FAULT|[1189] V:Allarme Asse: Richiesta esterna
001190|CNC|FAULT|[1190] V:Errore Taratura
001191|CNC|FAULT|[1191] V:Asse non definito
001192|CNC|FAULT|[1192] V:Asse non presente e fly
001193|CNC|FAULT|[1193] V:Errore Tolleranza
001194|CNC|FAULT|[1194] V:Errore d'inseguimento
001195|CNC|FAULT|[1195] V:Errore Offset
001196|CNC|FAULT|[1196] V:Richiesta Allarme I/O di controllo
001197|CNC|FAULT|[1197] V:Interfaccia DAC o Encoder mancante
001198|CNC|FAULT|[1198] V:Mancanza conteggio Encoder
001199|CNC|FAULT|[1199] V:Asse in collisione
001200|CNC|FAULT|[1200] V:Gamma non presente
001201|CNC|FAULT|[1201] V:Encoder non collegato
001202|CNC|FAULT|[1202] V:Asse non disponibile
001203|CNC|FAULT|[1203] V:Allarme Servodrive Digitale
001204|CNC|FAULT|[1204] V:Disallineamento assi Gantry
001205|CNC|FAULT|[1205] V:Allarme Protocollo CanOpen
001206|CNC|FAULT|[1206] V:Drive in Allarme
001207|CNC|FAULT|[1207] V:Errore Comando
001208|CNC|FAULT|[1208] V:Reserved
001209|CNC|FAULT|[1209] V:Reserved
001210|CNC|FAULT|[1210] V:Reserved
001211|CNC|FAULT|[1211] V:Reserved
001212|CNC|FAULT|[1212] V:Reserved
001213|CNC|FAULT|[1213] V:Azionamento digitale non pronto
001214|CNC|FAULT|[1214] V:Dati non validi
001215|CNC|FAULT|[1215] V:Pacchetto dati corrotto errore di BCC
001216|CNC|FAULT|[1216] V:Rumore sulla linea di comunicazione con l'azionamento
001217|CNC|FAULT|[1217] V:Timeout comunicazione con azionamento digitale
001218|CNC|FAULT|[1218] W:F.C. Avanti
001219|CNC|FAULT|[1219] W:F.C. Indietro
001220|CNC|FAULT|[1220] W:F.C. Software
001221|CNC|FAULT|[1221] W:Allarme Asse: Richiesta esterna
001222|CNC|FAULT|[1222] W:Errore Taratura
001223|CNC|FAULT|[1223] W:Asse non definito
001224|CNC|FAULT|[1224] W:Asse non presente e fly
001225|CNC|FAULT|[1225] W:Errore Tolleranza
001226|CNC|FAULT|[1226] W:Errore d'inseguimento
001227|CNC|FAULT|[1227] W:Errore Offset
001228|CNC|FAULT|[1228] W:Richiesta Allarme I/O di controllo
001229|CNC|FAULT|[1229] W:Interfaccia DAC o Encoder mancante
001230|CNC|FAULT|[1230] W:Mancanza conteggio Encoder
001231|CNC|FAULT|[1231] W:Asse in collisione
001232|CNC|FAULT|[1232] W:Gamma non presente
001233|CNC|FAULT|[1233] W:Encoder non collegato
001234|CNC|FAULT|[1234] W:Asse non disponibile
001235|CNC|FAULT|[1235] W:Allarme Servodrive Digitale
001236|CNC|FAULT|[1236] W:Disallineamento assi Gantry
001237|CNC|FAULT|[1237] W:Allarme Protocollo CanOpen
001238|CNC|FAULT|[1238] W:Drive in Allarme
001239|CNC|FAULT|[1239] W:Errore Comando
001240|CNC|FAULT|[1240] W:Reserved
001241|CNC|FAULT|[1241] W:Reserved
001242|CNC|FAULT|[1242] W:Reserved
001243|CNC|FAULT|[1243] W:Reserved
001244|CNC|FAULT|[1244] W:Reserved
001245|CNC|FAULT|[1245] W:Azionamento digitale non pronto
001246|CNC|FAULT|[1246] W:Dati non validi
001247|CNC|FAULT|[1247] W:Pacchetto dati corrotto errore di BCC
001248|CNC|FAULT|[1248] W:Rumore sulla linea di comunicazione con l'azionamento
001249|CNC|FAULT|[1249] W:Timeout comunicazione con azionamento digitale
001250|CNC|FAULT|[1250] A:F.C. Avanti
001251|CNC|FAULT|[1251] A:F.C. Indietro
001252|CNC|FAULT|[1252] A:F.C. Software
001253|CNC|FAULT|[1253] A:Allarme Asse: Richiesta esterna
001254|CNC|FAULT|[1254] A:Errore Taratura
001255|CNC|FAULT|[1255] A:Asse non definito
001256|CNC|FAULT|[1256] A:Asse non presente e fly
001257|CNC|FAULT|[1257] A:Errore Tolleranza
001258|CNC|FAULT|[1258] A:Errore d'inseguimento
001259|CNC|FAULT|[1259] A:Errore Offset
001260|CNC|FAULT|[1260] A:Richiesta Allarme I/O di controllo
001261|CNC|FAULT|[1261] A:Interfaccia DAC o Encoder mancante
001262|CNC|FAULT|[1262] A:Mancanza conteggio Encoder
001263|CNC|FAULT|[1263] A:Asse in collisione
001264|CNC|FAULT|[1264] A:Gamma non presente
001265|CNC|FAULT|[1265] A:Encoder non collegato
001266|CNC|FAULT|[1266] A:Asse non disponibile
001267|CNC|FAULT|[1267] A:Allarme Servodrive Digitale
001268|CNC|FAULT|[1268] A:Disallineamento assi Gantry
001269|CNC|FAULT|[1269] A:Allarme Protocollo CanOpen
001270|CNC|FAULT|[1270] A:Drive in Allarme
001271|CNC|FAULT|[1271] A:Errore Comando
001272|CNC|FAULT|[1272] A:Reserved
001273|CNC|FAULT|[1273] A:Reserved
001274|CNC|FAULT|[1274] A:Reserved
001275|CNC|FAULT|[1275] A:Reserved
001276|CNC|FAULT|[1276] A:Reserved
001277|CNC|FAULT|[1277] A:Azionamento digitale non pronto
001278|CNC|FAULT|[1278] A:Dati non validi
001279|CNC|FAULT|[1279] A:Pacchetto dati corrotto errore di BCC
001280|CNC|FAULT|[1280] A:Rumore sulla linea di comunicazione con l'azionamento
001281|CNC|FAULT|[1281] A:Timeout comunicazione con azionamento digitale
001282|CNC|FAULT|[1282] B:F.C. Avanti
001283|CNC|FAULT|[1283] B:F.C. Indietro
001284|CNC|FAULT|[1284] B:F.C. Software
001285|CNC|FAULT|[1285] B:Allarme Asse: Richiesta esterna
001286|CNC|FAULT|[1286] B:Errore Taratura
001287|CNC|FAULT|[1287] B:Asse non definito
001288|CNC|FAULT|[1288] B:Asse non presente e fly
001289|CNC|FAULT|[1289] B:Errore Tolleranza
001290|CNC|FAULT|[1290] B:Errore d'inseguimento
001291|CNC|FAULT|[1291] B:Errore Offset
001292|CNC|FAULT|[1292] B:Richiesta Allarme I/O di controllo
001293|CNC|FAULT|[1293] B:Interfaccia DAC o Encoder mancante
001294|CNC|FAULT|[1294] B:Mancanza conteggio Encoder
001295|CNC|FAULT|[1295] B:Asse in collisione
001296|CNC|FAULT|[1296] B:Gamma non presente
001297|CNC|FAULT|[1297] B:Encoder non collegato
001298|CNC|FAULT|[1298] B:Asse non disponibile
001299|CNC|FAULT|[1299] B:Allarme Servodrive Digitale
001300|CNC|FAULT|[1300] B:Disallineamento assi Gantry
001301|CNC|FAULT|[1301] B:Allarme Protocollo CanOpen
001302|CNC|FAULT|[1302] B:Drive in Allarme
001303|CNC|FAULT|[1303] B:Errore Comando
001304|CNC|FAULT|[1304] B:Reserved
001305|CNC|FAULT|[1305] B:Reserved
001306|CNC|FAULT|[1306] B:Reserved
001307|CNC|FAULT|[1307] B:Reserved
001308|CNC|FAULT|[1308] B:Reserved
001309|CNC|FAULT|[1309] B:Azionamento digitale non pronto
001310|CNC|FAULT|[1310] B:Dati non validi
001311|CNC|FAULT|[1311] B:Pacchetto dati corrotto errore di BCC
001312|CNC|FAULT|[1312] B:Rumore sulla linea di comunicazione con l'azionamento
001313|CNC|FAULT|[1313] B:Timeout comunicazione con azionamento digitale
001314|CNC|FAULT|[1314] C:F.C. Avanti
001315|CNC|FAULT|[1315] C:F.C. Indietro
001316|CNC|FAULT|[1316] C:F.C. Software
001317|CNC|FAULT|[1317] C:Allarme Asse: Richiesta esterna
001318|CNC|FAULT|[1318] C:Errore Taratura
001319|CNC|FAULT|[1319] C:Asse non definito
001320|CNC|FAULT|[1320] C:Asse non presente e fly
001321|CNC|FAULT|[1321] C:Errore Tolleranza
001322|CNC|FAULT|[1322] C:Errore d'inseguimento
001323|CNC|FAULT|[1323] C:Errore Offset
001324|CNC|FAULT|[1324] C:Richiesta Allarme I/O di controllo
001325|CNC|FAULT|[1325] C:Interfaccia DAC o Encoder mancante
001326|CNC|FAULT|[1326] C:Mancanza conteggio Encoder
001327|CNC|FAULT|[1327] C:Asse in collisione
001328|CNC|FAULT|[1328] C:Gamma non presente
001329|CNC|FAULT|[1329] C:Encoder non collegato
001330|CNC|FAULT|[1330] C:Asse non disponibile
001331|CNC|FAULT|[1331] C:Allarme Servodrive Digitale
001332|CNC|FAULT|[1332] C:Disallineamento Assi Gantry
001333|CNC|FAULT|[1333] C:Allarme Protocollo CanOpen
001334|CNC|FAULT|[1334] C:Drive Guasto
001335|CNC|FAULT|[1335] C:Errore Comando
001336|CNC|FAULT|[1336] C:Reserved
001337|CNC|FAULT|[1337] C:Reserved
001338|CNC|FAULT|[1338] C:Reserved
001339|CNC|FAULT|[1339] C:Reserved
001340|CNC|FAULT|[1340] C:Reserved
001341|CNC|FAULT|[1341] C:Azionamento digitale non pronto
001342|CNC|FAULT|[1342] C:Dati non validi
001343|CNC|FAULT|[1343] C:Pacchetto dati corrotto errore di BCC
001344|CNC|FAULT|[1344] C:Rumore sulla linea di comunicazione con l'azionamento
001345|CNC|FAULT|[1345] C:Timeout comunicazione con azionamento digitale
Binary file not shown.
-98
View File
@@ -1,98 +0,0 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace MTC_Adapter
{
public static class EnumerationExtensions
{
/// <summary>
/// checks if the value contains the provided type
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="type"></param>
/// <param name="value"></param>
/// <returns></returns>
public static bool Has<T>(this System.Enum type, T value)
{
try
{
return (((int)(object)type & (int)(object)value) == (int)(object)value);
}
catch
{
return false;
}
}
/// <summary>
/// checks if the value is only the provided type
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="type"></param>
/// <param name="value"></param>
/// <returns></returns>
public static bool Is<T>(this System.Enum type, T value)
{
try
{
return (int)(object)type == (int)(object)value;
}
catch
{
return false;
}
}
/// <summary>
/// appends a value
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="type"></param>
/// <param name="value"></param>
/// <returns></returns>
public static T Add<T>(this System.Enum type, T value)
{
try
{
return (T)(object)(((int)(object)type | (int)(object)value));
}
catch (Exception ex)
{
throw new ArgumentException(
string.Format(
"Could not append value from enumerated type '{0}'.",
typeof(T).Name
), ex);
}
}
/// <summary>
/// completely removes the value
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="type"></param>
/// <param name="value"></param>
/// <returns></returns>
public static T Remove<T>(this System.Enum type, T value)
{
try
{
return (T)(object)(((int)(object)type & ~(int)(object)value));
}
catch (Exception ex)
{
throw new ArgumentException(
string.Format(
"Could not remove value from enumerated type '{0}'.",
typeof(T).Name
), ex);
}
}
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

-409
View File
@@ -1,409 +0,0 @@
namespace MTC_Adapter
{
partial class SetupAdapter
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SetupAdapter));
this.txtAdapter = new System.Windows.Forms.TextBox();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.txtFileName = new System.Windows.Forms.TextBox();
this.btnSave = new System.Windows.Forms.Button();
this.btnLoad = new System.Windows.Forms.Button();
this.label3 = new System.Windows.Forms.Label();
this.nVacPump = new System.Windows.Forms.TextBox();
this.label4 = new System.Windows.Forms.Label();
this.nVacAct = new System.Windows.Forms.TextBox();
this.label5 = new System.Windows.Forms.Label();
this.cbTipoAdapt = new System.Windows.Forms.ComboBox();
this.label6 = new System.Windows.Forms.Label();
this.nLubro = new System.Windows.Forms.TextBox();
this.label7 = new System.Windows.Forms.Label();
this.nCooler = new System.Windows.Forms.TextBox();
this.label8 = new System.Windows.Forms.Label();
this.nPress = new System.Windows.Forms.TextBox();
this.label9 = new System.Windows.Forms.Label();
this.nTempe = new System.Windows.Forms.TextBox();
this.label10 = new System.Windows.Forms.Label();
this.nPath = new System.Windows.Forms.TextBox();
this.label11 = new System.Windows.Forms.Label();
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(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(284, 22);
this.txtAdapter.TabIndex = 0;
this.txtAdapter.Text = "CMS_ADAPTER_00";
//
// label1
//
this.label1.AutoSize = true;
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(73, 17);
this.label1.TabIndex = 1;
this.label1.Text = "ADAPTER";
//
// label2
//
this.label2.AutoSize = true;
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(79, 17);
this.label2.TabIndex = 3;
this.label2.Text = "FILE NAME";
//
// txtFileName
//
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(161, 22);
this.txtFileName.TabIndex = 2;
this.txtFileName.Text = "Adapter_ItemList.xml";
//
// btnSave
//
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(268, 47);
this.btnSave.TabIndex = 4;
this.btnSave.Text = "SAVE CONFIGURATION";
this.btnSave.UseVisualStyleBackColor = true;
this.btnSave.Click += new System.EventHandler(this.btnCreateFile_Click);
//
// btnLoad
//
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(268, 47);
this.btnLoad.TabIndex = 5;
this.btnLoad.Text = "LOAD CONFIGURATION";
this.btnLoad.UseVisualStyleBackColor = true;
this.btnLoad.Click += new System.EventHandler(this.btnLoad_Click);
//
// label3
//
this.label3.AutoSize = true;
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(96, 17);
this.label3.TabIndex = 7;
this.label3.Text = "n° VAC PUMP";
//
// nVacPump
//
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(43, 22);
this.nVacPump.TabIndex = 6;
this.nVacPump.Text = "1";
//
// label4
//
this.label4.AutoSize = true;
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(77, 17);
this.label4.TabIndex = 9;
this.label4.Text = "n° VAC Act";
//
// nVacAct
//
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(43, 22);
this.nVacAct.TabIndex = 8;
this.nVacAct.Text = "2";
//
// label5
//
this.label5.AutoSize = true;
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(40, 17);
this.label5.TabIndex = 10;
this.label5.Text = "TIPO";
//
// cbTipoAdapt
//
this.cbTipoAdapt.FormattingEnabled = true;
this.cbTipoAdapt.Items.AddRange(new object[] {
"DEMO",
"ESAGV",
"FANUC",
"SIEMENS"});
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(160, 24);
this.cbTipoAdapt.TabIndex = 11;
//
// label6
//
this.label6.AutoSize = true;
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(74, 17);
this.label6.TabIndex = 13;
this.label6.Text = "n° LUBRO";
//
// nLubro
//
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(43, 22);
this.nLubro.TabIndex = 12;
this.nLubro.Text = "1";
//
// label7
//
this.label7.AutoSize = true;
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(84, 17);
this.label7.TabIndex = 15;
this.label7.Text = "n° COOLER";
//
// nCooler
//
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(43, 22);
this.nCooler.TabIndex = 14;
this.nCooler.Text = "2";
//
// label8
//
this.label8.AutoSize = true;
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(72, 17);
this.label8.TabIndex = 17;
this.label8.Text = "n° PRESS";
//
// nPress
//
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(43, 22);
this.nPress.TabIndex = 16;
this.nPress.Text = "1";
//
// label9
//
this.label9.AutoSize = true;
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(64, 17);
this.label9.TabIndex = 19;
this.label9.Text = "n° TEMP";
//
// nTempe
//
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(43, 22);
this.nTempe.TabIndex = 18;
this.nTempe.Text = "1";
//
// label10
//
this.label10.AutoSize = true;
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(63, 17);
this.label10.TabIndex = 21;
this.label10.Text = "n° PATH";
//
// nPath
//
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(43, 22);
this.nPath.TabIndex = 20;
this.nPath.Text = "1";
//
// label11
//
this.label11.AutoSize = true;
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(68, 17);
this.label11.TabIndex = 23;
this.label11.Text = "n° Un OP";
//
// nUnOp
//
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(43, 22);
this.nUnOp.TabIndex = 22;
this.nUnOp.Text = "1";
//
// label12
//
this.label12.AutoSize = true;
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(52, 17);
this.label12.TabIndex = 25;
this.label12.Text = "n° Assi";
//
// nAssi
//
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(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(8F, 16F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
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);
this.Controls.Add(this.nUnOp);
this.Controls.Add(this.label10);
this.Controls.Add(this.nPath);
this.Controls.Add(this.label9);
this.Controls.Add(this.nTempe);
this.Controls.Add(this.label8);
this.Controls.Add(this.nPress);
this.Controls.Add(this.label7);
this.Controls.Add(this.nCooler);
this.Controls.Add(this.label6);
this.Controls.Add(this.nLubro);
this.Controls.Add(this.cbTipoAdapt);
this.Controls.Add(this.label5);
this.Controls.Add(this.label4);
this.Controls.Add(this.nVacAct);
this.Controls.Add(this.label3);
this.Controls.Add(this.nVacPump);
this.Controls.Add(this.btnLoad);
this.Controls.Add(this.btnSave);
this.Controls.Add(this.label2);
this.Controls.Add(this.txtFileName);
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);
this.PerformLayout();
}
#endregion
private System.Windows.Forms.TextBox txtAdapter;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.TextBox txtFileName;
private System.Windows.Forms.Button btnSave;
private System.Windows.Forms.Button btnLoad;
private System.Windows.Forms.Label label3;
private System.Windows.Forms.TextBox nVacPump;
private System.Windows.Forms.Label label4;
private System.Windows.Forms.TextBox nVacAct;
private System.Windows.Forms.Label label5;
private System.Windows.Forms.ComboBox cbTipoAdapt;
private System.Windows.Forms.Label label6;
private System.Windows.Forms.TextBox nLubro;
private System.Windows.Forms.Label label7;
private System.Windows.Forms.TextBox nCooler;
private System.Windows.Forms.Label label8;
private System.Windows.Forms.TextBox nPress;
private System.Windows.Forms.Label label9;
private System.Windows.Forms.TextBox nTempe;
private System.Windows.Forms.Label label10;
private System.Windows.Forms.TextBox nPath;
private System.Windows.Forms.Label label11;
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;
}
}
-480
View File
@@ -1,480 +0,0 @@
using MTC;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace MTC_Adapter
{
public partial class SetupAdapter : Form
{
public SetupAdapter()
{
InitializeComponent();
// fix icon!
this.Icon = Icon.ExtractAssociatedIcon(defIconFilePath);
}
protected string defIconFilePath
{
get
{
return string.Format(@"{0}\MTCA.ico", utils.resxDir);
}
}
/// <summary>
/// Percorso file completo
/// </summary>
protected string filePath
{
get
{
return string.Format("{0}/{1}", utils.CRS("dataConfPath"), txtFileName.Text);
}
}
protected int numVacPump
{
get
{
int answ = 0;
try
{
answ = Convert.ToInt32(nVacPump.Text);
}
catch
{ }
return answ;
}
set
{
nVacPump.Text = value.ToString();
}
}
protected int numVacAct
{
get
{
int answ = 0;
try
{
answ = Convert.ToInt32(nVacAct.Text);
}
catch
{ }
return answ;
}
set
{
nVacAct.Text = value.ToString();
}
}
protected int numLubro
{
get
{
int answ = 0;
try
{
answ = Convert.ToInt32(nLubro.Text);
}
catch
{ }
return answ;
}
set
{
nLubro.Text = value.ToString();
}
}
protected int numCooler
{
get
{
int answ = 0;
try
{
answ = Convert.ToInt32(nCooler.Text);
}
catch
{ }
return answ;
}
set
{
nCooler.Text = value.ToString();
}
}
protected int numPress
{
get
{
int answ = 0;
try
{
answ = Convert.ToInt32(nPress.Text);
}
catch
{ }
return answ;
}
set
{
nPress.Text = value.ToString();
}
}
protected int numTemp
{
get
{
int answ = 0;
try
{
answ = Convert.ToInt32(nTempe.Text);
}
catch
{ }
return answ;
}
set
{
nTempe.Text = value.ToString();
}
}
protected int numPath
{
get
{
int answ = 0;
try
{
answ = Convert.ToInt32(nPath.Text);
}
catch
{ }
return answ;
}
set
{
nPath.Text = value.ToString();
}
}
protected int numUnOp
{
get
{
int answ = 0;
try
{
answ = Convert.ToInt32(nUnOp.Text);
}
catch
{ }
return answ;
}
set
{
nUnOp.Text = value.ToString();
}
}
protected int numAxis
{
get
{
int answ = 0;
try
{
answ = Convert.ToInt32(nAssi.Text);
}
catch
{ }
return answ;
}
set
{
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();
}
}
protected element[] oAxisLoad { get; set; }
private void btnCreateFile_Click(object sender, EventArgs e)
{
// creo un nuovo file adapter...
AdapterConf c = new AdapterConf();
// nome da txtbox, vers 1
c.NomeAdapt = txtAdapter.Text;
c.Version = 1;
// tipo da selettore
string valTipo = "";
try
{
valTipo = cbTipoAdapt.SelectedItem.ToString().ToUpper();
}
catch
{
valTipo = cbTipoAdapt.SelectedText;
}
switch (valTipo)
{
case "FANUC":
c.TipoAdapt = tipoAdapter.FANUC;
break;
case "SIEMENS":
c.TipoAdapt = tipoAdapter.SIEMENS;
break;
case "HMI-ESA":
case "HMI_ESA":
case "ESAGV":
c.TipoAdapt = tipoAdapter.ESAGV;
break;
case "DEMO":
default:
c.TipoAdapt = tipoAdapter.DEMO;
break;
}
// init lista parametri
List<DataRefItem<string, string>> 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<DataRefItem<string, string>>();
MemArea[i] = new element(string.Format("MemArea_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.MemArea = MemArea;
}
// VAC PUMP
if (numVacPump > 0)
{
// creo elementi richiesti
element[] VacuumPump = new element[numVacPump];
// ciclo x istanziare!
for (int i = 0; i < numVacPump; i++)
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
VacuumPump[i] = new element(string.Format("VacPump_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.VacuumPump = VacuumPump;
}
// VACUUM ACT
if (numVacAct > 0)
{
// creo elementi richiesti
element[] VacuumAct = new element[numVacAct];
// ciclo x istanziare!
for (int i = 0; i < numVacAct; i++)
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
VacuumAct[i] = new element(string.Format("VacAct_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.VacuumAct = VacuumAct;
}
// LUBRO
if (numLubro > 0)
{
// creo elementi richiesti
element[] Lubro = new element[numLubro];
// ciclo x istanziare!
for (int i = 0; i < numLubro; i++)
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
Lubro[i] = new element(string.Format("Lubro_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.Lubro = Lubro;
}
// COOLER
if (numCooler > 0)
{
// creo elementi richiesti
element[] Cooler = new element[numCooler];
// ciclo x istanziare!
for (int i = 0; i < numCooler; i++)
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
Cooler[i] = new element(string.Format("Cooler_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.Cooler = Cooler;
}
// PRESS
if (numPress > 0)
{
// creo elementi richiesti
element[] Press = new element[numPress];
// ciclo x istanziare!
for (int i = 0; i < numPress; i++)
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
Press[i] = new element(string.Format("Press_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.Press = Press;
}
// TEMPERATURE
if (numTemp > 0)
{
// creo elementi richiesti
element[] Temp = new element[numTemp];
// ciclo x istanziare!
for (int i = 0; i < numTemp; i++)
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
Temp[i] = new element(string.Format("Temp_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.Temp = Temp;
}
// PATH
if (numPath > 0)
{
// creo elementi richiesti
element[] Path = new element[numPath];
// ciclo x istanziare!
for (int i = 0; i < numPath; i++)
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
Path[i] = new element(string.Format("Path_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.Path = Path;
}
// UNITA OPERATRICI
if (numUnOp > 0)
{
// creo elementi richiesti
element[] UnOp = new element[numUnOp];
// ciclo x istanziare!
for (int i = 0; i < numUnOp; i++)
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
UnOp[i] = new element(string.Format("UnOp_{0:00}", i + 1), listaDR);
}
// salvo oggetto
c.UnOp = UnOp;
}
// ASSI
if (numAxis > 0)
{
// creo elementi richiesti
element[] newAxis = new element[numAxis];
// ciclo x istanziare!
for (int i = 0; i < numAxis; i++)
{
// inizializzo list x parametri
listaDR = new List<DataRefItem<string, string>>();
// se ho un vettore di assi uso i valori già letti..
if (oAxisLoad != null && oAxisLoad.Length > 0 && i < oAxisLoad.Length)
{
newAxis[i] = oAxisLoad[i];
// se non ho tutto aggiungo...
if (newAxis[i].dataRefList.Count < 2)
{
// copio lista attuale
listaDR = newAxis[i].dataRefList;
// in base a cosa manca aggiunto...
if (listaDR.Count == 0)
{
// aggiungo tutto con valori default
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_Type", i + 1), "LINEAR"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_Grp", i + 1), "00"));
newAxis[i] = new element(string.Format("Axis_{0:00}", i + 1), listaDR);
}
else if (listaDR.Count == 1)
{
// aggiungo solo GRP con valori default, IPOTIZZO di avere solo type...
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_Grp", i + 1), "00"));
newAxis[i] = new element(string.Format("Axis_{0:00}", i + 1), listaDR);
}
}
}
else
{
// altrimenti popolo con valori default
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_Type", i + 1), "LINEAR"));
listaDR.Add(new DataRefItem<string, string>(string.Format("Axis_{0:00}_Grp", i + 1), "00"));
newAxis[i] = new element(string.Format("Axis_{0:00}", i + 1), listaDR);
}
}
// salvo oggetto
c.Axis = newAxis;
}
// Serializzo oggetto conf su file
AdapterConf.Serialize(filePath, c);
}
private void btnLoad_Click(object sender, EventArgs e)
{
// Read the configuration object from a file
AdapterConf objLoad = AdapterConf.Deserialize(filePath);
txtAdapter.Text = objLoad.NomeAdapt;
cbTipoAdapt.SelectedText = objLoad.TipoAdapt.ToString();
//cbTipoAdapt.Refresh();
numVacPump = objLoad.nVacuumPump;
numVacAct = objLoad.nVacuumAct;
numLubro = objLoad.nLubro;
numCooler = objLoad.nCooler;
numPress = objLoad.nPress;
numTemp = objLoad.nTemp;
numPath = objLoad.nPath;
numUnOp = objLoad.nUnOp;
numAxis = objLoad.nAxis;
numMemArea = objLoad.nMemArea;
// salvo assi correnti...
oAxisLoad = objLoad.Axis;
}
}
}
-8
View File
@@ -1,8 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="NLog" version="4.4.4" targetFramework="net452" />
<package id="NLog.Config" version="4.4.4" targetFramework="net452" />
<package id="NLog.Schema" version="4.4.4" targetFramework="net452" />
<package id="PrettyBin" version="1.1.0" targetFramework="net452" />
<package id="SlowCheetah" version="2.5.48" targetFramework="net452" />
</packages>
-49
View File
@@ -1,49 +0,0 @@
using System.Windows.Forms;
using MTC;
namespace MTC_Adapter
{
public class utils : MTC.baseUtils
{
/// <summary>
/// folder archiviazione dati configurazione (DATA\CONF)
/// </summary>
public static string resxDir
{
get
{
return string.Format(@"{0}\{1}", Application.StartupPath, CRS("resxPath"));
}
}
/// <summary>
/// folder archiviazione dati configurazione (DATA\CONF)
/// </summary>
public static string confDir
{
get
{
return string.Format(@"{0}\{1}", Application.StartupPath, CRS("dataConfPath"));
}
}
/// <summary>
/// folder archiviazione dati storici giornalieri (DATA\DAT)
/// </summary>
public static string dataDatDir
{
get
{
return string.Format(@"{0}\{1}", Application.StartupPath, CRS("dataDatPath"));
}
}
/// <summary>
/// folder archiviazione dati (DATA)
/// </summary>
public static string dataDir
{
get
{
return string.Format(@"{0}\{1}", Application.StartupPath, CRS("dataPath"));
}
}
}
}
@@ -0,0 +1,68 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>OPC_UA_REDIS</RootNamespace>
<AssemblyName>OPC-UA-REDIS</AssemblyName>
<TargetFrameworkVersion>v4.6.1</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<ItemGroup>
<Reference Include="NLog, Version=4.0.0.0, Culture=neutral, PublicKeyToken=5120e14c03d0593c, processorArchitecture=MSIL">
<HintPath>..\packages\NLog.4.5.8\lib\net45\NLog.dll</HintPath>
</Reference>
<Reference Include="StackExchange.Redis, Version=1.2.6.0, Culture=neutral, processorArchitecture=MSIL">
<HintPath>..\packages\StackExchange.Redis.1.2.6\lib\net46\StackExchange.Redis.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.Configuration" />
<Reference Include="System.Core" />
<Reference Include="System.IO.Compression" />
<Reference Include="System.Runtime.Serialization" />
<Reference Include="System.ServiceModel" />
<Reference Include="System.Transactions" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Net.Http" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="SOUR-IO.cs" />
</ItemGroup>
<ItemGroup>
<Content Include="NLog.config">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<None Include="NLog.xsd">
<SubType>Designer</SubType>
</None>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
</Project>
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// Le informazioni generali relative a un assembly sono controllate dal seguente
// set di attributi. Modificare i valori di questi attributi per modificare le informazioni
// associate a un assembly.
[assembly: AssemblyTitle("OPC-UA-REDIS")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("OPC-UA-REDIS")]
[assembly: AssemblyCopyright("Copyright © 2018")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// Se si imposta ComVisible su false, i tipi in questo assembly non saranno visibili
// ai componenti COM. Se è necessario accedere a un tipo in questo assembly da
// COM, impostare su true l'attributo ComVisible per tale tipo.
[assembly: ComVisible(false)]
// Se il progetto viene esposto a COM, il GUID seguente verrà utilizzato come ID della libreria dei tipi
[assembly: Guid("5afccd6a-3758-44c8-96ed-84e809fca8a1")]
// Le informazioni sulla versione di un assembly sono costituite dai seguenti quattro valori:
//
// Versione principale
// Versione secondaria
// Numero di build
// Revisione
//
// È possibile specificare tutti i valori oppure impostare valori predefiniti per i numeri relativi alla revisione e alla build
// usando l'asterisco '*' come illustrato di seguito:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
+15
View File
@@ -0,0 +1,15 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace OPC_UA_REDIS
{
/// <summary>
/// Classe utilità per Input/Output su SERVER REDIS
/// </summary>
public class SOUR_IO
{
}
}
+7
View File
@@ -0,0 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="NLog" version="4.5.8" targetFramework="net461" />
<package id="NLog.Config" version="4.5.8" targetFramework="net461" />
<package id="NLog.Schema" version="4.5.8" targetFramework="net461" />
<package id="StackExchange.Redis" version="1.2.6" targetFramework="net461" />
</packages>
@@ -1,21 +1,20 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio 14
VisualStudioVersion = 14.0.25420.1
# Visual Studio 15
VisualStudioVersion = 15.0.26403.7
MinimumVisualStudioVersion = 10.0.40219.1
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
..\..\..\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
Y:\30_Clienti\CMS\CMS-MTC\SetupMTC\AGENT\DATA\CONF_DEMO\Agent_ItemList_ESAKVARA.xml = Y:\30_Clienti\CMS\CMS-MTC\SetupMTC\AGENT\DATA\CONF_DEMO\Agent_ItemList_ESAKVARA.xml
Y:\30_Clienti\CMS\CMS-MTC\SetupMTC\AGENT\DATA\CONF_DEMO\Agent_ItemList_FANUC.xml = Y:\30_Clienti\CMS\CMS-MTC\SetupMTC\AGENT\DATA\CONF_DEMO\Agent_ItemList_FANUC.xml
Y:\30_Clienti\CMS\CMS-MTC\SetupMTC\AGENT\DATA\CONF_DEMO\Agent_ItemList_OSAI.xml = Y:\30_Clienti\CMS\CMS-MTC\SetupMTC\AGENT\DATA\CONF_DEMO\Agent_ItemList_OSAI.xml
..\AgentBin\CMS.xml = ..\AgentBin\CMS.xml
..\AgentBin\SCM.xml = ..\AgentBin\SCM.xml
EndProjectSection
EndProject
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "CMSCncLib", "CMSCncLib\CMSCncLib.vbproj", "{2D769FFD-1122-4276-A115-29246E6D23C5}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MTC-Adapter", "MTC_Adapter\MTC-Adapter.csproj", "{736DF121-11E6-4D46-835D-6560ACF241E4}"
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SCMA", "SCMA\SCMA.csproj", "{736DF121-11E6-4D46-835D-6560ACF241E4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VersGen", "VersGen\VersGen.csproj", "{58E399F3-9D4E-49D3-AB35-9ED536543D50}"
EndProject
@@ -25,6 +24,10 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MTC-ADB", "MTC-ADB\MTC-ADB.
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MTC", "MTC\MTC.csproj", "{EC83D80E-9F3B-4DE9-B16A-CA216543B7EC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetAdapterSDK", "..\..\..\..\GitHub\MTConnect\dot_net_sdk\DotNetAdapterSDK.csproj", "{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "OPC-UA-REDIS", "OPC-UA-REDIS\OPC-UA-REDIS.csproj", "{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
CMS-FANUC|Any CPU = CMS-FANUC|Any CPU
@@ -36,19 +39,6 @@ Global
SCM-ESA|Any CPU = SCM-ESA|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.CMS-FANUC|Any CPU.ActiveCfg = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.CMS-FANUC|Any CPU.Build.0 = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.CMS-OSAI|Any CPU.ActiveCfg = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.CMS-OSAI|Any CPU.Build.0 = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.CMS-SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.MySql|Any CPU.ActiveCfg = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.MySql|Any CPU.Build.0 = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.Release|Any CPU.Build.0 = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.SCM-ESA|Any CPU.ActiveCfg = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.SCM-ESA|Any CPU.Build.0 = Release|Any CPU
{2D769FFD-1122-4276-A115-29246E6D23C5}.CMS-FANUC|Any CPU.ActiveCfg = Release|Any CPU
{2D769FFD-1122-4276-A115-29246E6D23C5}.CMS-FANUC|Any CPU.Build.0 = Release|Any CPU
{2D769FFD-1122-4276-A115-29246E6D23C5}.CMS-OSAI|Any CPU.ActiveCfg = Release|Any CPU
@@ -133,8 +123,39 @@ Global
{EC83D80E-9F3B-4DE9-B16A-CA216543B7EC}.Release|Any CPU.Build.0 = Release|Any CPU
{EC83D80E-9F3B-4DE9-B16A-CA216543B7EC}.SCM-ESA|Any CPU.ActiveCfg = Release|Any CPU
{EC83D80E-9F3B-4DE9-B16A-CA216543B7EC}.SCM-ESA|Any CPU.Build.0 = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.CMS-FANUC|Any CPU.ActiveCfg = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.CMS-FANUC|Any CPU.Build.0 = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.CMS-OSAI|Any CPU.ActiveCfg = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.CMS-OSAI|Any CPU.Build.0 = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.CMS-SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.CMS-SIEMENS|Any CPU.Build.0 = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.MySql|Any CPU.ActiveCfg = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.MySql|Any CPU.Build.0 = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.Release|Any CPU.ActiveCfg = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.Release|Any CPU.Build.0 = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.SCM-ESA|Any CPU.ActiveCfg = Release|Any CPU
{D8D08DBE-B511-4DE0-B5A9-563EBFC60C4F}.SCM-ESA|Any CPU.Build.0 = Release|Any CPU
{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}.CMS-FANUC|Any CPU.ActiveCfg = Release|Any CPU
{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}.CMS-FANUC|Any CPU.Build.0 = Release|Any CPU
{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}.CMS-OSAI|Any CPU.ActiveCfg = Release|Any CPU
{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}.CMS-OSAI|Any CPU.Build.0 = Release|Any CPU
{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}.CMS-SIEMENS|Any CPU.ActiveCfg = Release|Any CPU
{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}.CMS-SIEMENS|Any CPU.Build.0 = Release|Any CPU
{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}.MySql|Any CPU.ActiveCfg = Release|Any CPU
{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}.MySql|Any CPU.Build.0 = Release|Any CPU
{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}.Release|Any CPU.Build.0 = Release|Any CPU
{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}.SCM-ESA|Any CPU.ActiveCfg = Release|Any CPU
{5AFCCD6A-3758-44C8-96ED-84E809FCA8A1}.SCM-ESA|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {C7C9CC69-EF84-4B45-8C42-E5002A954A03}
EndGlobalSection
EndGlobal
+602
View File
@@ -0,0 +1,602 @@
using MTC;
using System;
using System.Collections.Generic;
namespace SCMA.AdapterCom
{
/// <summary>
/// Gateway di comunicazione secondo diversi standard, partendo da oggetti BASE MTC
/// </summary>
public class Gateway
{
#region oggetti base
/// <summary>
/// Protocollo attivo per la comunicazione dell'adapter
/// </summary>
public gwProtocol protocollo;
/// <summary>
/// STOBE allarmi:
/// 1024 bit di strobe degli allarmi attivi (32 word da 4byte/32 bit di flags...)
/// </summary>
public byte[] AlarmFlags;
/// <summary>
/// Oggetto elenco allarmi
/// </summary>
public allarme[] elencoAllarmi;
/// <summary>
/// Porta comunicazione standard oggetto
/// </summary>
public int port;
/// <summary>
/// Stringa di configurazione globale
/// </summary>
public string connConfig;
/// <summary>
/// Flag per indicare se l'obj stia ancora girando
/// </summary>
private bool myRunning = false;
/// <summary>
/// Indicatore public di oggetto running running.
/// </summary>
public bool Running { get { return myRunning; } }
/// <summary>
/// la parte di "mark & sweep" (segnala ed invia) è iniziata e stiamo tracciando le conditions.
/// </summary>
bool myBegun = false;
/// <summary>
/// Elenco di TUTTI i NODI ITEMS gestiti dal gateway (item/variabile)...
/// </summary>
public Dictionary<string, itemNode> itemNodes = new Dictionary<string, itemNode>();
/// <summary>
/// Elenco di TUTTI i NODI CONDITIONS gestiti dal gateway (allarme/condizione)...
/// </summary>
public Dictionary<string, itemNode> conditionNodes = new Dictionary<string, itemNode>();
#endregion
#region gestione globale oggetto
/// <summary>
/// init classe come output su LOGFILE
/// </summary>
public Gateway()
{
port = 0;
connConfig = "";
protocollo = gwProtocol.LOGFILE;
}
/// <summary>
/// Inizia la raccolta dati per confronto modifica da precedente...
/// </summary>
public virtual void beginDataCollect()
{
myBegun = true;
foreach (object di in itemNodes)
{
// inizializza ogni oggetto (in particolare di tipo alarm/conditions x check variazione)
//di.Begin();
}
}
/// <summary>
/// Fa la verifica di cosa sia cambiato ed invia
/// </summary>
public virtual void sendChanged()
{
if (myBegun)
{
foreach (object di in itemNodes)
{
//di.Prepare();
}
}
#if false
// Separate out the data items into those that are on one line and those
// need separate lines.
List<SimpleDataItem> together = new List<SimpleDataItem>();
List<SimpleDataItem> separate = new List<SimpleDataItem>();
foreach (object di in trackItems)
{
List<SimpleDataItem> list = di.ItemList();
if (di.NewLine)
separate.AddRange(list);
else
together.AddRange(list);
}
// Compone all the same line data items onto one line.
string line;
if (timestamp == null)
{
DateTime now = DateTime.UtcNow;
timestamp = now.ToString("yyyy-MM-dd\\THH:mm:ss.fffffffK");
}
if (together.Count > 0)
{
line = timestamp;
foreach (SimpleDataItem di in together)
line += "|" + di.ToString();
line += "\n";
SendToAll(line);
}
// Now write out all the separate lines
if (separate.Count > 0)
{
foreach (SimpleDataItem di in separate)
{
line = timestamp;
line += "|" + di.ToString() + "\n";
SendToAll(line);
}
}
// Flush the output
FlushAll();
#endif
// Cleanup
foreach (object di in itemNodes)
{
// pulizia oggetti
//di.Cleanup();
}
myBegun = false;
}
/// <summary>
/// Imposta TUTTI i data items unavailable
/// </summary>
public virtual void setAllUnavailable()
{
foreach (object di in itemNodes)
{
//// imposta a unavailable
//di.Unavailable();
}
}
/// <summary>
/// AVVIA processo lettura CNC e invio dati a client
/// </summary>
public virtual void start()
{
#if false
if (!mRunning)
{
mListener = new TcpListener(IPAddress.Any, mPort);
mListener.Start();
mListenThread = new Thread(new ThreadStart(ListenForClients));
mListenThread.Start();
}
#endif
}
/// <summary>
/// FERMA processo lettura CNC e invio dati a client
/// </summary>
public virtual void stop()
{
#if false
if (mRunning)
{
mRunning = false;
mListener.Stop();
foreach (Object obj in mClients)
{
Stream client = (Stream)obj;
client.Close();
}
mClients.Clear();
// Wait 5 seconds for the thread to exit.
mListenThread.Join(2000);
// Wait for all client threads to exit.
mActiveClients.Wait(2000);
}
#endif
}
#endregion
#region gestione nodi (dataItems / conditions)
/// <summary>
/// Aggiunge un generico item all'elenco di quelli tracciati INDICANDO IL TYPE
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public virtual void addItemNodeByType(string key, itemType tipo)
{
if (!itemNodes.ContainsKey(key))
{
itemNode currItem = new itemNode(tipo, availStatus.UNAVAILABLE.ToString());
#if false
// di base salvo tipo/valore come KVP nell'item...
Dictionary<itemType, object> currObj = new Dictionary<itemType, object>();
currObj.Add(tipo, "UNAVAILABLE");
#endif
itemNodes.Add(key, currItem);
}
}
/// <summary>
/// Aggiunge un generico item all'elenco di quelli tracciati INDICANDO IL TYPE ed il valore iniziale
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public virtual void addItemNodeAndSet(string key, itemType tipo, object value)
{
addItemNodeByType(key, tipo);
updateItemNodeValue(key, value);
}
/// <summary>
/// Aggiunge un generico item all'elenco di quelli tracciati (NON STRONGLY TYPED!!! occhio!!!)
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public virtual void addItemNode(string key, object value)
{
// se non c'è già elemento lo aggiungo...
if (!itemNodes.ContainsKey(key))
{
// default: event...
itemNode currItem = new itemNode(itemType.Event, value);
itemNodes.Add(key, currItem);
}
}
public virtual void addItemNode(object value)
{
if (!itemNodes.ContainsKey(value.ToString()))
{
// default: event...
itemNode currItem = new itemNode(itemType.Event, value);
itemNodes.Add(value.ToString(), currItem);
}
}
/// <summary>
/// Rimuove TUTTI i data items tracciati
/// </summary>
public virtual void removeAllItemNodes()
{
itemNodes.Clear();
}
/// <summary>
/// Rimuove un item dall'elenco di quelli tracciati
/// </summary>
/// <param name="key"></param>
public virtual void removeItemNode(string key)
{
itemNodes.Remove(key);
}
/// <summary>
/// RESTITUISCE un item da KEY
/// </summary>
/// <param name="key"></param>
public virtual object getItemNode(string key)
{
return itemNodes[key].cObject;
}
/// <summary>
/// AGGIORNA un generico item all'elenco di quelli tracciati (NON STRONGLY TYPED!!! occhio!!!)
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public virtual void updateItemNodeValue(string key, object value)
{
itemNodes[key].cObject = value;
}
/// <summary>
/// AGGIORNA un generico item all'elenco di quelli tracciati (NON STRONGLY TYPED!!! occhio!!!)
/// </summary>
/// <param name="key"></param>
/// <param name="code"></param>
/// <param name="value"></param>
public virtual void updateItemNodeCodeValue(string key, string code, object value)
{
itemNodes[key].cObject = value;
}
/// <summary>
/// Aggiunge un generico item all'elenco di quelli tracciati (NON STRONGLY TYPED!!! occhio!!!)
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public virtual void addConditionNode(string key, object value)
{
// se non c'è già elemento lo aggiungo...
if (!conditionNodes.ContainsKey(key))
{
// default: event...
itemNode currItem = new itemNode(itemType.Condition, value);
conditionNodes.Add(key, currItem);
}
}
/// <summary>
/// Rimuove TUTTI i CONDITION NODES tracciati
/// </summary>
public virtual void removeAllConditionNodes()
{
conditionNodes.Clear();
}
/// <summary>
/// Rimuove un CONDITION NODE dall'elenco di quelli tracciati
/// </summary>
/// <param name="key">chaive</param>
public virtual void removeConditionNode(string key)
{
conditionNodes.Remove(key);
}
#endregion
#region gestione allarmi
/// <summary>
/// processo il vettore LOCALE degli allarmi
/// </summary>
public virtual void processAlarm()
{
if (AlarmFlags != null)
{
// variabili helper
StFlag32 AlarmBlock = 0;
allarme currAllarm;
// controllo TUTTI i bit della variabile COMPLETA degli status allarmi: se ce ne sono di alzati DEVO processare...
for (int i = 0; i < AlarmFlags.Length / 4; i++)
{
// leggo 32bit alla volta...
AlarmBlock = (StFlag32)BitConverter.ToUInt32(AlarmFlags, i * 4);
for (int j = 0; j < 32; j++)
{
// converto! e aggiungo allarmi sollevati al corretto controller allarmi...
if (AlarmBlock.HasFlag((StFlag32)Math.Pow(2, j)))
{
// recupero allarme da oggetto in memoria...
currAllarm = elencoAllarmi[i * 32 + j];
addAlarm(currAllarm);
}
}
}
}
}
/// <summary>
/// SETUP oggetti gestione allarmi
/// </summary>
public virtual void addAlarmNodes()
{
// minimo sempre PLC/CNC
addConditionNode("CNC", "CNC");
addConditionNode("PLC", "PLC");
}
/// <summary>
/// INIT allarmi a normal
/// </summary>
public virtual void initAlarms()
{
}
/// <summary>
/// INIT di un SINGOLO NODO di allarme a normal
/// </summary>
/// <param name="alarmNode"></param>
public virtual void initAlarm(itemNode alarmNode)
{
}
/// <summary>
/// Aggiunta SINGOLO allarme su GENERICO (global) nodo
/// </summary>
/// <param name="currAllarm">Allarme da riportare al nodo</param>
public virtual void addAlarm(allarme currAllarm)
{
#if false
// in base al tipo di allarme decodifico condizione...
Condition.Level livello = Condition.Level.NORMAL;
switch (currAllarm.livello)
{
case "WARNING":
livello = Condition.Level.WARNING;
break;
case "FAULT":
default:
livello = Condition.Level.FAULT;
break;
}
// in base al gruppo decido dove assegnare come CONDITION...
switch (currAllarm.gruppo)
{
case "PLC":
mAlarmPLC.Add(livello, currAllarm.descrizione, currAllarm.codNum, "", "");
break;
case "CNC":
default:
mAlarmCNC.Add(livello, currAllarm.descrizione, currAllarm.codNum, "", "");
break;
}
#endif
}
/// <summary>
/// Aggiunta SINGOLO allarme su SPECIFICO nodo
/// </summary>
/// <param name="alarmNode">Generico nodo di tipo condition</param>
/// <param name="currAllarm">Allarme da riportare al nodo</param>
public virtual void addAlarm(itemNode alarmNode, allarme currAllarm)
{
#if false
// in base al tipo di allarme decodifico condizione...
Condition.Level livello = Condition.Level.NORMAL;
switch (currAllarm.livello)
{
case "WARNING":
livello = Condition.Level.WARNING;
break;
case "FAULT":
default:
livello = Condition.Level.FAULT;
break;
}
// in base al gruppo decido dove assegnare come CONDITION...
switch (currAllarm.gruppo)
{
case "PLC":
mAlarmPLC.Add(livello, currAllarm.descrizione, currAllarm.codNum, "", "");
break;
case "CNC":
default:
mAlarmCNC.Add(livello, currAllarm.descrizione, currAllarm.codNum, "", "");
break;
}
#endif
}
/// <summary>
/// RESTITUISCE un nodo CONDITION da KEY
/// </summary>
/// <param name="key"></param>
public virtual object getAlarmNode(string key)
{
return conditionNodes[key];
}
#endregion
}
/// <summary>
/// Classe item node (tipo/obj)
/// </summary>
public class itemNode
{
/// <summary>
/// Tipo oggetto (per cast)
/// </summary>
public itemType cType;
/// <summary>
/// Object specifico
/// </summary>
public object cObject;
/// <summary>
/// costruttore
/// </summary>
public itemNode()
{ }
/// <summary>
/// costruttore
/// </summary>
/// <param name="_tipo"></param>
/// <param name="_obj"></param>
public itemNode(itemType _tipo, object _obj)
{
cType = _tipo;
cObject = _obj;
}
}
/// <summary>
/// Tipologia protocolli di comunicazione ammessi
/// </summary>
public enum gwProtocol
{
/// <summary>
/// NESSUN protocollo reale --> FILE DUMP sul log...
/// </summary>
LOGFILE,
/// <summary>
/// Protocollo di comunicazione MTConnect
/// </summary>
MTC,
/// <summary>
/// Protocollo di comunicazione SCM.OPC.UA.REDIS.SERVER
/// </summary>
SOURS
}
/// <summary>
/// Tipologia di ITEM
/// </summary>
public enum itemType
{
/// <summary>
/// CONDIZION = ALLARME
/// </summary>
Condition,
/// <summary>
/// Evento = point in time data
/// </summary>
Event,
/// <summary>
/// Messaggio generico
/// </summary>
Message,
/// <summary>
/// Campionamento continuo
/// </summary>
Sample
}
/// <summary>
/// Varibili STATO ATTIVO (es attuatori, sistemi...)
/// </summary>
public enum actStatus
{
/// <summary>
/// Stato inattivo
/// </summary>
INACTIVE = 0,
/// <summary>
/// Stato Attivo
/// </summary>
ACTIVE
}
/// <summary>
/// Varibili STATO OnOff
/// </summary>
public enum onOffStatus
{
/// <summary>
/// Stato OFF
/// </summary>
OFF = 0,
/// <summary>
/// Stato ON
/// </summary>
ON
}
/// <summary>
/// Varibili STATO per EMERGENZA
/// </summary>
public enum emStatus
{
/// <summary>
/// Stato ARMATO
/// </summary>
ARMED = 0,
/// <summary>
/// Stato EMERGENZA PREMUTA
/// </summary>
TRIGGERED
}
/// <summary>
/// Varibili STATO per AVAIL
/// </summary>
public enum availStatus
{
/// <summary>
/// Stato DISPONIBILE
/// </summary>
AVAILABLE = 0,
/// <summary>
/// Stato NON disponibile
/// </summary>
UNAVAILABLE
}
/// <summary>
/// Varibili STATO per AVAIL
/// </summary>
public enum pathType
{
/// <summary>
/// Stato LAVORO
/// </summary>
LAVORO = 0,
/// <summary>
/// Stato ASSERV
/// </summary>
ASSERV
}
}
+287
View File
@@ -0,0 +1,287 @@
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;
//using MTC;
using MTC;
using MTConnect;
namespace SCMA.AdapterCom
{
public class GatewayMTC : Gateway
{
/// <summary>
/// adapter globale MTC
/// </summary>
/// <summary>
public Adapter mAdapter = new Adapter();
#region gestione globale oggetto
/// <summary>
/// wrapper init
/// </summary>
public GatewayMTC()
{
protocollo = gwProtocol.MTC;
}
/// <summary>
/// Wrapper metodo Begin
/// </summary>
public override void beginDataCollect()
{
mAdapter.Begin();
}
/// <summary>
/// Wrapper metodo SendChanged
/// </summary>
public override void sendChanged()
{
mAdapter.SendChanged();
}
/// <summary>
/// Wrapper metodo imposta tutto a UNAVAILABLE
/// </summary>
public override void setAllUnavailable()
{
mAdapter.Unavailable();
}
/// <summary>
/// Wrapper metodo START
/// </summary>
public override void start()
{
mAdapter.Port = port;
mAdapter.Start();
}
/// <summary>
/// Wrapper metodo STOP
/// </summary>
public override void stop()
{
mAdapter.Stop();
}
#endregion
#region gestione nodi (dataItems, conditions)
public override void addItemNodeByType(string key, itemType tipo)
{
if (!itemNodes.ContainsKey(key))
{
// in base al TIPO genero l'oggetto corretto...
DataItem currObj;
switch (tipo)
{
case itemType.Condition:
currObj = new Condition(key);
break;
case itemType.Event:
currObj = new Event(key);
break;
case itemType.Message:
currObj = new Message(key);
break;
case itemType.Sample:
currObj = new Sample(key);
break;
default:
currObj = new DataItem(key);
break;
}
mAdapter.AddDataItem(currObj);
if (tipo == itemType.Condition)
{
addConditionNode(key, currObj);
addItemNode(key, currObj);
}
else
{
addItemNode(key, currObj);
}
}
}
/// Effettua chiamata VERA su adapter MTConnect...
/// </summary>
/// <param name="value"></param>
public override void addItemNode(string key, object value)
{
if (!itemNodes.ContainsKey(key))
{
base.addItemNode(key, value);
// aggiungo ad adapter
mAdapter.AddDataItem((DataItem)value);
}
}
/// <summary>
/// Effettua chiamata VERA su adapter MTConnect...
/// </summary>
/// <param name="value"></param>
public override void addItemNode(object value)
{
DataItem currObj = (DataItem)value;
string key = value.ToString().Replace("|", "");
try
{
key = key.Replace(currObj.Value.ToString(), "");
}
catch
{
}
if (!itemNodes.ContainsKey(key))
{
base.addItemNode(key, value);
// aggiungo ad adapter
mAdapter.AddDataItem((DataItem)value);
}
}
/// <summary>
/// Wrapper metodo rimozione di TUTTI gli ITEMS
/// </summary>
public override void removeAllItemNodes()
{
foreach (var item in itemNodes)
{
// rimuovo da MTC
mAdapter.RemoveDataItem((DataItem)item.Value.cObject);
}
base.removeAllItemNodes();
}
/// <summary>
/// Wrapper metodo rimozione ITEMS
/// </summary>
/// <param name="anItem"></param>
public override void removeItemNode(string key)
{
// rimuovo da MTC
mAdapter.RemoveDataItem((DataItem)itemNodes[key].cObject);
// rimuovo da vett interno
base.removeItemNode(key);
}
public override void updateItemNodeValue(string key, object value)
{
((DataItem)getItemNode(key)).Value = value;
}
public override void updateItemNodeCodeValue(string key, string code, object value)
{
((Message)getItemNode(key)).Code = code;
((Message)getItemNode(key)).Value = value;
}
/// <summary>
/// wrapper aggiunta condizione
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public override void addConditionNode(string key, object value)
{
base.addConditionNode(key, value);
// aggiungo ad adapter
mAdapter.AddDataItem((Condition)value);
}
public override void removeAllConditionNodes()
{
foreach (var item in conditionNodes)
{
// rimuovo da MTC
mAdapter.RemoveDataItem((Condition)item.Value.cObject);
}
base.removeAllConditionNodes();
}
public override void removeConditionNode(string key)
{
// rimuovo da MTC
mAdapter.RemoveDataItem((Condition)conditionNodes[key].cObject);
// rimuovo da vett interno
base.removeConditionNode(key);
}
#endregion
#region gestione allarmi
/// <summary>
/// Speciofica implementazione x formattazione ALLARMI
/// </summary>
/// <param name="currAllarm"></param>
public override void addAlarm(allarme currAllarm)
{
// in base al tipo di allarme decodifico condizione...
Condition.Level livello = Condition.Level.NORMAL;
switch (currAllarm.livello)
{
case "WARNING":
livello = Condition.Level.WARNING;
break;
case "FAULT":
default:
livello = Condition.Level.FAULT;
break;
}
if (conditionNodes.ContainsKey(currAllarm.gruppo))
{
Condition mAlarm = (Condition)conditionNodes[currAllarm.gruppo].cObject;
mAlarm.Add(livello, currAllarm.descrizione, currAllarm.codNum, "", "");
}
}
/// <summary>
/// Speciofica implementazione x formattazione ALLARMI
/// </summary>
/// <param name="currAllarm"></param>
/// <param name="alarmNode">Generico nodo di tipo condition</param>
public override void addAlarm(itemNode alarmNode, allarme currAllarm)
{
// in base al tipo di allarme decodifico condizione...
Condition.Level livello = Condition.Level.NORMAL;
switch (currAllarm.livello)
{
case "WARNING":
livello = Condition.Level.WARNING;
break;
case "FAULT":
default:
livello = Condition.Level.FAULT;
break;
}
Condition mAlarm = (Condition)alarmNode.cObject;
mAlarm.Add(livello, currAllarm.descrizione, currAllarm.codNum, "", "");
}
/// <summary>
/// Wrapper setup obj allarmi
/// </summary>
public override void addAlarmNodes()
{
// registro
Condition newCondNode;
newCondNode = new Condition("CNC");
addConditionNode("CNC", newCondNode);
newCondNode = new Condition("PLC");
addConditionNode("PLC", newCondNode);
}
/// <summary>
/// Wrapper inizializzazione allarmi
/// </summary>
public override void initAlarms()
{
// trasformo i nodi in elenchi conditions e li aggiungo...
foreach (var item in conditionNodes)
{
((Condition)item.Value.cObject).Normal();
}
}
/// <summary>
/// inizializazione allarme a normal
/// </summary>
/// <param name="alarmNode"></param>
public override void initAlarm(itemNode alarmNode)
{
Condition mAlarm = (Condition)alarmNode.cObject;
mAlarm.Normal();
}
#endregion
}
}
@@ -0,0 +1,16 @@
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using System.Threading.Tasks;
namespace SCMA.AdapterCom
{
public class GatewaySOURS : Gateway
{
public GatewaySOURS()
{
protocollo = gwProtocol.SOURS;
}
}
}
+458
View File
@@ -0,0 +1,458 @@
using MTC;
using System;
using System.Collections.Generic;
using System.IO;
using System.Xml.Serialization;
namespace SCMA
{
#region -- AdapterConf Class --
/// <summary>
/// This Configuration class is basically just a set of
/// properties with a couple of static methods to manage
/// the serialization to and deserialization from a
/// simple XML file.
///
/// ref: http://www.cambiaresearch.com/articles/33/how-can-i-easily-manage-an-xml-configuration-file-in-dotnet
/// </summary>
[Serializable]
public class AdapterConf
{
string sNomeAdapt;
int nVers;
double tContOreMaccOn;
double tContOreMaccLav;
double tContSlittaTast;
int[] _ContGiriElettrom;
float[] _ContKmMovAssi;
tipoAdapter etipoAdapt;
element[] _VacuumPump;
element[] _VacuumAct;
element[] _Lubro;
element[] _SlittaMag;
element[] _ProtMag;
element[] _Cooler;
element[] _Press;
element[] _Temp;
element[] _Path;
element[] _UnOp;
element[] _Axis;
element[] _MemArea;
/// <summary>
/// init conf adapter
/// </summary>
public AdapterConf()
{
sNomeAdapt = "";
etipoAdapt = tipoAdapter.DEMO;
}
public int nVacuumPump
{
get
{
int answ = 0;
if (VacuumPump != null)
{
try
{
answ = Convert.ToInt32(VacuumPump.Length);
}
catch
{ }
}
return answ;
}
}
public int nVacuumAct
{
get
{
int answ = 0;
if (VacuumAct != null)
{
try
{
answ = Convert.ToInt32(VacuumAct.Length);
}
catch
{ }
}
return answ;
}
}
public int nLubro
{
get
{
int answ = 0;
if (Lubro != null)
{
try
{
answ = Convert.ToInt32(Lubro.Length);
}
catch
{ }
}
return answ;
}
}
public int nSlittaMag
{
get
{
int answ = 0;
if (SlittaMag != null)
{
try
{
answ = Convert.ToInt32(SlittaMag.Length);
}
catch
{ }
}
return answ;
}
}
public int nProtMag
{
get
{
int answ = 0;
if (ProtMag != null)
{
try
{
answ = Convert.ToInt32(ProtMag.Length);
}
catch
{ }
}
return answ;
}
}
public int nCooler
{
get
{
int answ = 0;
if (Cooler != null)
{
try
{
answ = Convert.ToInt32(Cooler.Length);
}
catch
{ }
}
return answ;
}
}
public int nPress
{
get
{
int answ = 0;
if (Press != null)
{
try
{
answ = Convert.ToInt32(Press.Length);
}
catch
{ }
}
return answ;
}
}
public int nTemp
{
get
{
int answ = 0;
if (Temp != null)
{
try
{
answ = Convert.ToInt32(Temp.Length);
}
catch
{ }
}
return answ;
}
}
public int nPath
{
get
{
int answ = 0;
if (Path != null)
{
try
{
answ = Convert.ToInt32(Path.Length);
}
catch
{ }
}
return answ;
}
}
public int nUnOp
{
get
{
int answ = 0;
if (UnOp != null)
{
try
{
answ = Convert.ToInt32(UnOp.Length);
}
catch
{ }
}
return answ;
}
}
public int nAxis
{
get
{
int answ = 0;
if (Axis != null)
{
try
{
answ = Convert.ToInt32(Axis.Length);
}
catch
{ }
}
return answ;
}
}
public int nMemArea
{
get
{
int answ = 0;
if (MemArea != null)
{
try
{
answ = Convert.ToInt32(MemArea.Length);
}
catch
{ }
}
return answ;
}
}
/// <summary>
/// Serializzazione XML dell'oggetto conf dell'adapter
/// </summary>
/// <param name="file"></param>
/// <param name="c"></param>
public static void Serialize(string file, AdapterConf c)
{
// prima provo a creare il file vuoto...
if (!File.Exists(file))
{
string dirPath = file.Substring(0, file.LastIndexOf('\\'));
// verifico directory
if (!Directory.Exists(dirPath))
{
Directory.CreateDirectory(dirPath);
}
}
// salvo effettivamente file...
System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(c.GetType());
StreamWriter writer = File.CreateText(file);
xs.Serialize(writer, c);
writer.Flush();
writer.Close();
}
/// <summary>
/// deserializzazione oggetto conf adapter
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
public static AdapterConf Deserialize(string file)
{
XmlSerializer xs = new XmlSerializer(typeof(AdapterConf));
StreamReader reader = File.OpenText(file);
AdapterConf c = (AdapterConf)xs.Deserialize(reader);
reader.Close();
return c;
}
/// <summary>
/// restitusice forma XML grezza del file
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
public static string rawXml(string file)
{
string answ = "";
System.Xml.Serialization.XmlSerializer xs = new System.Xml.Serialization.XmlSerializer(typeof(AdapterConf));
StreamReader reader = File.OpenText(file);
answ = reader.ReadToEnd();
reader.Close();
return answ;
}
public int Version
{
get { return nVers; }
set { nVers = value; }
}
public string NomeAdapt
{
get { return sNomeAdapt; }
set { sNomeAdapt = value; }
}
public tipoAdapter TipoAdapt
{
get { return etipoAdapt; }
set { etipoAdapt = value; }
}
public double ContOreMaccOn
{
get { return tContOreMaccOn; }
set { tContOreMaccOn = value; }
}
public double ContOreMaccLav
{
get { return tContOreMaccLav; }
set { tContOreMaccLav = value; }
}
public double ContSlittaTast
{
get { return tContSlittaTast; }
set { tContSlittaTast = value; }
}
public int[] ContGiriElettrom
{
get { return _ContGiriElettrom; }
set { _ContGiriElettrom = value; }
}
public float[] ContKmMovAssi
{
get { return _ContKmMovAssi; }
set { _ContKmMovAssi = value; }
}
public element[] VacuumPump
{
get { return _VacuumPump; }
set { _VacuumPump = value; }
}
public element[] VacuumAct
{
get { return _VacuumAct; }
set { _VacuumAct = value; }
}
public element[] Lubro
{
get { return _Lubro; }
set { _Lubro = value; }
}
public element[] SlittaMag
{
get { return _SlittaMag; }
set { _SlittaMag = value; }
}
public element[] ProtMag
{
get { return _ProtMag; }
set { _ProtMag = value; }
}
public element[] Cooler
{
get { return _Cooler; }
set { _Cooler = value; }
}
public element[] Press
{
get { return _Press; }
set { _Press = value; }
}
public element[] Temp
{
get { return _Temp; }
set { _Temp = value; }
}
public element[] Path
{
get { return _Path; }
set { _Path = value; }
}
public element[] UnOp
{
get { return _UnOp; }
set { _UnOp = value; }
}
public element[] Axis
{
get { return _Axis; }
set { _Axis = value; }
}
public element[] MemArea
{
get { return _MemArea; }
set { _MemArea = value; }
}
}
[Serializable]
[XmlType(TypeName = "dataRef")]
public struct DataRefItem<K, V>
{
public K Key { get; set; }
public V Value { get; set; }
public DataRefItem(K k, V v) : this() { Key = k; Value = v; }
}
/// <summary>
/// classe elemento base in cui salvare i dati di conf x recupero dati adapters
/// </summary>
public class element
{
/// <summary>
/// identificativo univoco x classe di elemento
/// </summary>
public string ident;
/// <summary>
/// Elenco riferimento dati x recupero (es posizioni memoria separate da #)
/// </summary>
public List<DataRefItem<string, string>> dataRefList;
/// <summary>
/// init empty
/// </summary>
public element()
{
ident = "";
dataRefList = new List<DataRefItem<string, string>>();
}
/// <summary>
/// init element con dati
/// </summary>
/// <param name="Idx">Identificativo univoco</param>
/// <param name="DataRef">Parametri x recupero dati in forma dictionary</param>
public element(string Idx, List<DataRefItem<string, string>> DataRef)
{
ident = Idx;
dataRefList = DataRef;
}
}
#endregion
}
+168
View File
@@ -0,0 +1,168 @@
using MTC;
using MTConnect;
using SCMA.AdapterCom;
using System;
namespace SCMA
{
public class AdapterDemo : AdapterGeneric
{
public Condition mTemp;
public Condition mFillLevel;
/// <summary>
/// estende l'init della classe base...
/// </summary>
/// <param name="caller">FORM chaimante</param>
/// <param name="adpConf">CONFIGURAZIONE adapter</param>
/// <param name="gatewayObj">OGGETTO gestione comunicazione OUT (tipologia e metodi)</param>
public AdapterDemo(MainForm caller, AdapterConf adpConf, Gateway gatewayObj) : base(caller, adpConf, gatewayObj)
{
if (utils.CRB("verbose"))
{
lg.Info("Start init Adapter DEMO");
}
// IMPLICITO: carica da metodo base tutte le specifiche del conf...
mTemp = new Condition("temp");
mFillLevel = new Condition("cool_low", true);
// aggiungo specifiche del demo: allarmi gestiti a buttons!!!
currGateway.addItemNode("temp", mTemp);
currGateway.addItemNode("cool_low", mFillLevel);
}
public override void startAdapter()
{
base.startAdapter();
// aggiungo altre condizioni specifiche...
mTemp.Normal();
mFillLevel.Normal();
}
public override void getSlowChangingData()
{
// recupero SEMPRE dati ulteriori: status ON/OFF, clock, ...
currGateway.updateItemNodeValue("STATUS", parentForm.datiProd.Status);
currGateway.updateItemNodeValue("ACC_TIME", parentForm.datiProd.AccTime);
currGateway.updateItemNodeValue("OperatorId", parentForm.datiProd.Operator);
currGateway.updateItemNodeValue("POWER", parentForm.datiProd.Power);
currGateway.updateItemNodeValue("CLOCK", DateTime.Now.Date.ToFileTimeUtc());
}
public override void getStrobeAndAckStatus()
{
base.getStrobeAndAckStatus();
// controllo bool allarmi...
if (parentForm.datiProd.EmrStop)
{
currGateway.updateItemNodeValue("E_STOP", emStatus.TRIGGERED.ToString());
}
else
{
currGateway.updateItemNodeValue("E_STOP", emStatus.ARMED.ToString());
}
// imposto func mode...
currGateway.updateItemNodeValue("FUNCT_MODE", parentForm.datiProd.FuncMode);
// se ho un messaggio...
if (parentForm.datiProd.MessageText.Length > 0)
{
currGateway.updateItemNodeCodeValue("MESSAGE", parentForm.datiProd.MessageCode, parentForm.datiProd.MessageText);
}
}
public override void getConfigParam()
{
base.getConfigParam();
}
public override void processStrobe()
{
// qui forzo la gestione di update dei path & co...
getPath();
getUnOp();
getAxis();
}
/// <summary>
/// non fa nulla perché recupera allarmi in vettore al singolo cambio...
/// </summary>
/// <param name="Alarm2Refresh"></param>
/// <param name="giveAck"></param>
public override void refreshAlarmState(StFlag32 Alarm2Refresh, bool giveAck)
{
base.refreshAlarmState(Alarm2Refresh, giveAck);
}
public override void getPath()
{
base.getPath();
PathData PtData = parentForm.CurrPath;
if (PtData.PathSel >= 0)
{
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].feedKey, PtData.PathFeedrate);
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].feedOverKey, PtData.PathFeedrateOver);
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].rapidOverKey, PtData.PathRapidOver);
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].posAct_X_Key, PtData.PathPosAct.x);
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].posAct_Y_Key, PtData.PathPosAct.y);
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].posAct_Z_Key, PtData.PathPosAct.z);
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].posAct_I_Key, PtData.PathPosAct.i);
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].posAct_J_Key, PtData.PathPosAct.j);
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].posAct_K_Key, PtData.PathPosAct.k);
// aggiunta x revisione 2016.05.05
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].pathTypeKey, PtData.PathType);
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].partIdKey, PtData.PartId);
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].partCountKey, PtData.pzTot);
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].runModeKey, PtData.RunMode);
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].exeModeKey, PtData.ExeMode);
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].currProgKey, PtData.ProgramName);
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].currProgRowNumKey, PtData.ProgrRow);
currGateway.updateItemNodeValue(vettPath[PtData.PathSel].activeAxesKey, PtData.ActiveAxes);
}
}
public override void getUnOp()
{
base.getUnOp();
UnOpData uoData = parentForm.CurrUnOp;
if (uoData.UnOpSel >= 0)
{
currGateway.updateItemNodeValue(vettUnOp[uoData.UnOpSel].toolIdKey, uoData.UnOpToolId);
currGateway.updateItemNodeValue(vettUnOp[uoData.UnOpSel].numCUKey, uoData.UnOpNumCU);
currGateway.updateItemNodeValue(vettUnOp[uoData.UnOpSel].statusKey, uoData.UnOpStatus);
currGateway.updateItemNodeValue(vettUnOp[uoData.UnOpSel].vitaResKey, uoData.UnOpVitaRes);
currGateway.updateItemNodeValue(vettUnOp[uoData.UnOpSel].speedKey, uoData.UnOpSpeed);
currGateway.updateItemNodeValue(vettUnOp[uoData.UnOpSel].loadKey, uoData.UnOpLoad);
currGateway.updateItemNodeValue(vettUnOp[uoData.UnOpSel].accTimeKey, uoData.UnOpAccTime);
}
}
public override void getAxis()
{
base.getAxis();
AxisData AxData = parentForm.CurrAxis;
if (AxData.AxisSel >= 0)
{
// USO asse selezionato + dati visualizzati e di conseguenza aggiorno...
currGateway.updateItemNodeValue(vettAxis[AxData.AxisSel].mainProcKey, AxData.AxisMainProc);
currGateway.updateItemNodeValue(vettAxis[AxData.AxisSel].mainProcKey, AxData.AxisIsMaster);
currGateway.updateItemNodeValue(vettAxis[AxData.AxisSel].mainProcKey, AxData.AxisMastId);
currGateway.updateItemNodeValue(vettAxis[AxData.AxisSel].mainProcKey, AxData.AxisType);
currGateway.updateItemNodeValue(vettAxis[AxData.AxisSel].mainProcKey, AxData.AxisDir);
currGateway.updateItemNodeValue(vettAxis[AxData.AxisSel].mainProcKey, AxData.AxisLoad);
currGateway.updateItemNodeValue(vettAxis[AxData.AxisSel].mainProcKey, AxData.AxisPosAct);
currGateway.updateItemNodeValue(vettAxis[AxData.AxisSel].mainProcKey, AxData.AxisPosTgt);
currGateway.updateItemNodeValue(vettAxis[AxData.AxisSel].mainProcKey, AxData.AxisFeedAct);
currGateway.updateItemNodeValue(vettAxis[AxData.AxisSel].mainProcKey, AxData.AxisFeedOver);
currGateway.updateItemNodeValue(vettAxis[AxData.AxisSel].mainProcKey, AxData.AxisAccel);
currGateway.updateItemNodeValue(vettAxis[AxData.AxisSel].mainProcKey, AxData.AxisAccTime);
currGateway.updateItemNodeValue(vettAxis[AxData.AxisSel].mainProcKey, AxData.AxisBattery);
}
}
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -2,9 +2,20 @@
<!-- For more information on using app.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<!--clock di base update...-->
<add key="timerIntMs" value="5" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="fastCount" value="20" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="normCount" value="50" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="slowCount" value="500" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="alarmSyncCount" value="1000" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="waitEndCycle" value="0" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="loglevel" value="5" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="mode" value="prod" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="autoLoadConf" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="openDumpOnStart" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="procIotMem" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="cycleWatchDog" value="2" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<!--COMMENTATO IN DEBUG LOCALE-->
<add key="startMinimized" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="windowCanMax" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="trayClose" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
@@ -2,9 +2,20 @@
<!-- For more information on using app.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<!--clock di base update...-->
<add key="timerIntMs" value="5" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="fastCount" value="20" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="normCount" value="100" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="slowCount" value="1000" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="alarmSyncCount" value="12000" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="waitEndCycle" value="0" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="loglevel" value="5" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="mode" value="prod" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="autoLoadConf" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="openDumpOnStart" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="procIotMem" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="cycleWatchDog" value="3" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<!--COMMENTATO IN DEBUG LOCALE-->
<add key="startMinimized" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="windowCanMax" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="trayClose" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
@@ -2,13 +2,24 @@
<!-- For more information on using app.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<!--clock di base update...-->
<add key="timerIntMs" value="5" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="fastCount" value="60" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="normCount" value="150" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="slowCount" value="1000" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="alarmSyncCount" value="6000" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="waitEndCycle" value="0" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="loglevel" value="5" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="mode" value="prod" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="autoLoadConf" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="openDumpOnStart" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="procIotMem" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="cycleWatchDog" value="3" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<!--COMMENTATO IN DEBUG LOCALE-->
<add key="startMinimized" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="windowCanMax" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="trayClose" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="recTime" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="ipPLC" value="192.168.111.1" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="ipPLC" value="192.168.214.1" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
</appSettings>
</configuration>
@@ -2,7 +2,11 @@
<!-- For more information on using app.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<!--<add key="loglevel" value="5" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="mode" value="prod" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="autoLoadConf" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="defaultConfFile" value="Adapter_ItemList.xml" xdt:Transform="Replace" xdt:Locator="Match(key)"/>-->
<add key="autoLoadConf" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="defaultConfFile" value="Adapter_ItemList.xml" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
</appSettings>
</configuration>
@@ -2,15 +2,24 @@
<!-- For more information on using app.config transformation visit http://go.microsoft.com/fwlink/?LinkId=125889 -->
<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<appSettings>
<!--clock di base update...-->
<add key="timerIntMs" value="10" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="fastCount" value="20" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="normCount" value="50" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="slowCount" value="500" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="alarmSyncCount" value="6000" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="waitEndCycle" value="0" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="loglevel" value="5" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="mode" value="prod" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="autoLoadConf" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="openDumpOnStart" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="procIotMem" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<!--clock di base update...-->
<add key="timerIntMs" value="10" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="cycleWatchDog" value="2" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<!--COMMENTATO IN DEBUG LOCALE-->
<add key="startMinimized" value="true" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="windowCanMax" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="trayClose" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="recTime" value="false" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
<add key="ipPLC" value="127.0.0.1" xdt:Transform="Replace" xdt:Locator="Match(key)"/>
</appSettings>
</configuration>
@@ -1,20 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/></startup>
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2"/>
</startup>
<appSettings>
<!--MAIN CONF-->
<add key="appName" value="MTConnect Adapter"/>
<!--parametri protocollo comunicazione-->
<add key="adpProto" value="MTC"/>
<add key="MTC_port" value="7878"/>
<add key="SOURS_IP" value="localhost"/>
<add key="SOURS_port" value="6379"/>
<!--gestione TIMERS e periodi multipli x thread lenti-->
<add key="startTimerMs" value="250"/>
<add key="timerIntMs" value="5"/><!--invio da adapter ad agent: 5ms-->
<add key="fastCount" value="20"/><!--100ms-->
<add key="normCount" value="50"/><!--250ms-->
<add key="slowCount" value="500"/><!--2.5 sec-->
<add key="normCount" value="100"/><!--500ms-->
<add key="slowCount" value="1000"/><!--5 sec-->
<add key="alarmSyncCount" value="6000"/><!--30 sec-->
<add key="waitEndCycle" value="0"/><!--ms attesa dopo ogni ciclo lettura...--><!--30 sec-->
<!--num cicli PRIMA di leggere davvero GCode x rallentare-->
<add key="contChkGCod" value="2"/>
<!--gestione FINESTRA campionamento x counter in secondi (dati validi dati DOPO che è piena la coda x la finestra richiesta, mantenuta a quella durata...)-->
<add key="countWindSize" value="30"/>
<!--parametri gestione watchdog-->
<add key="maxAdapterLockSec" value="5"/>
<!--disabilito letture avanzate che UCCIDONO il programma (x ora SOLO allarmi CNC x FANUC-->
<add key="disableAdvRead" value="true"/>
<!--gestione x abilitare/disabilitare lettura nome asse e path di controllo (OSAI)-->
<add key="enableAxNamePath" value="true"/>
<!--AREA CONF IP FANUC-->
<!--SIMULATORE LOCALE
IP LOOPBACK: 192.168.211.5/255.255.255.0
@@ -25,19 +39,26 @@
ipPLC = "192.168.139.100"-->
<!--<add key="ipPLC" value="192.168.139.100" />-->
<!--<add key="ipPLC" value="192.168.139.1" />-->
<!--Sviluppo Steamware
<!--<add key="ipPLC" value="192.168.157.2"/>-->
<!--Sviluppo Steamware
IP ETH: 10.74.82.110/255.255.255.0
ipPLC = "10.74.82.110"-->
<add key="ipPLC" value="192.168.157.2"/>
<!--PRODUZIONE
IP ETH: 192.168.139.201/255.255.255.0
ipPLC = "192.168.139.1"-->
<!--<add key ="ipPLC" value="192.168.139.1" />-->
<!--<add key="ipPLC" value="192.168.157.2"/>-->
<!--OSAI DEV-->
<!--<add key ="ipPLC" value="192.168.157.2" />-->
<!--SIEMENS DEV-->
<!--<add key ="ipPLC" value="192.168.214.1" />-->
<!--CMS PROD-->
<!--<add key ="ipPLC" value="192.168.139.1" />-->
<add key ="ipPLC" value="192.168.157.2" />
<add key="recTime" value="true"/>
<add key="verbose" value="true"/>
<add key="loglevel" value="5"/>
<add key="mode" value="prod"/>
<!--Definizione avvio Adapter-->
<add key="autoLoadConf" value="false"/>
<add key="autoStartOnLoad" value="true"/>
@@ -50,6 +71,7 @@
<add key="testCharSep" value="|"/>
<add key="fattdecimale" value="1000"/>
<add key="fattConvDistAssi" value="1000"/>
<add key="fattDecVA" value="1000"/>
<!--conf file-->
<add key="dataPath" value="DATA"/>
<add key="dataConfPath" value="DATA\CONF"/>
@@ -62,13 +84,18 @@
<add key="maxNumDD" value="30"/>
<add key="defaultEsaFile" value="EsaKvara.ini"/>
<add key="CounterListFilePath" value="CounterList.map"/>
<add key="AnalogDataFilePath" value="AnalogData.map"/>
<add key="StatusListFilePath" value="StatusList.map"/>
<add key="SubModeListFilePath" value="SubModeList.map"/>
<!--Gestione path siemens-->
<add key="SiemensBaseCountPath" value="0"/>
<!--gestione FANUC con assi limitati-->
<add key="FanucLimit3D" value="false"/>
<!--conf gestione "semplificata" accesso a tutta la memoria ogni volta-->
<!--conf x CMS-->
<!--<add key="procIotMem" value="false"/>-->
<add key="procIotMem" value="false"/>
<!--conf x ESA-KVARA-->
<add key="procIotMem" value="true"/>
<!--<add key="procIotMem" value="true"/>-->
<!--file configurazione IotMem (ESA KVARA)-->
<add key="IOTByteFilePath" value="IOT_ByteList.map"/>
<add key="IOTWordFilePath" value="IOT_WordList.map"/>
@@ -80,7 +107,12 @@
<add key="eStopCode" value="152"/>
<!--gestione watchdog CMS-->
<add key="sendWatchDog" value="true"/>
<add key="cycleWatchDog" value="3"/>
<add key="readAllTop" value="true"/>
<add key="fastCopy" value="true"/>
<add key="ClientSettingsProvider.ServiceUri" value=""/>
<!--gestione spindle override gobale forzato da max valori letti...-->
<add key="getMaxSpOver" value="true"/>
</appSettings>
<system.web>
<membership defaultProvider="ClientAuthenticationMembershipProvider">
@@ -1,10 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<AdapterConf xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<Version>1</Version>
<NomeAdapt>ADAPTER_SIEMENS</NomeAdapt>
<TipoAdapt>SIEMENS</TipoAdapt>
<NomeAdapt>ADAPTER_OSAI</NomeAdapt>
<TipoAdapt>OSAI</TipoAdapt>
<ContOreMaccOn>0</ContOreMaccOn>
<ContOreMaccLav>0</ContOreMaccLav>
<ContSlittaTast>0</ContSlittaTast>
<VacuumPump>
<element>
<ident>VacPump_01</ident>
@@ -35,6 +36,18 @@
<dataRefList />
</element>
</Lubro>
<SlittaMag>
<element>
<ident>SlittaMagazzino_01</ident>
<dataRefList />
</element>
</SlittaMag>
<ProtMag>
<element>
<ident>ProtMagazzino_01</ident>
<dataRefList />
</element>
</ProtMag>
<Cooler>
<element>
<ident>Cooler_01</ident>
@@ -70,6 +83,10 @@
<ident>Path_01</ident>
<dataRefList />
</element>
<!--<element>
<ident>Path_02</ident>
<dataRefList />
</element>-->
</Path>
<UnOp>
<element>
@@ -85,6 +102,10 @@
<Key>Axis_01_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_01_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
<element>
@@ -94,6 +115,10 @@
<Key>Axis_02_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_02_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
<element>
@@ -103,6 +128,10 @@
<Key>Axis_03_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_03_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
<element>
@@ -112,6 +141,10 @@
<Key>Axis_04_Type</Key>
<Value>ROTARY</Value>
</dataRef>
<dataRef>
<Key>Axis_04_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
<element>
@@ -121,6 +154,10 @@
<Key>Axis_05_Type</Key>
<Value>ROTARY</Value>
</dataRef>
<dataRef>
<Key>Axis_05_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
<element>
@@ -130,6 +167,10 @@
<Key>Axis_06_Type</Key>
<Value>LINEAR</Value>
</dataRef>
<dataRef>
<Key>Axis_06_Grp</Key>
<Value>00</Value>
</dataRef>
</dataRefList>
</element>
</Axis>
@@ -0,0 +1,7 @@
# 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|Axis_01_Load |NUM
002|Axis_02_Load |NUM
003|Axis_03_Load |NUM
004|Axis_04_Load |NUM
005|Axis_05_Load |NUM
006|Axis_06_Load |NUM
@@ -21,12 +21,15 @@
020|VacAct_02_Count |COUNT
021|Lubro_01_Num |COUNT
022|SlittaTastatore_Count |COUNT
023|SlittaMagazzino_01_Count |COUNT
024|ProtMagazzino_01_Count |COUNT
023|ProtMagazzino_01_Count |COUNT
024|ProtMagazzino_02_Count |COUNT
025|UnOp_01_NumCambiUT |COUNT
026|Axis_01_AccTime |COUNT
027|Axis_02_AccTime |COUNT
028|Axis_03_AccTime |COUNT
029|Axis_04_AccTime |COUNT
030|Axis_05_AccTime |COUNT
031|Axis_06_AccTime |COUNT
031|Axis_06_AccTime |COUNT
032|Counter_001 |COUNT
033|Counter_002 |COUNT
034|Counter_003 |COUNT
@@ -6,4 +6,4 @@
004:[COD 004] - MANUTENZIONE
005:[COD 005] - PULIZIA
006:[COD 006] - REGOLAZIONI
007:[COD 007] - PIPPO
007:[COD 007] - PIPPO
+94
View File
@@ -0,0 +1,94 @@
using System;
namespace SCMA
{
public static class EnumerationExtensions
{
/// <summary>
/// checks if the value contains the provided type
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="type"></param>
/// <param name="value"></param>
/// <returns></returns>
public static bool Has<T>(this System.Enum type, T value)
{
try
{
return (((int)(object)type & (int)(object)value) == (int)(object)value);
}
catch
{
return false;
}
}
/// <summary>
/// checks if the value is only the provided type
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="type"></param>
/// <param name="value"></param>
/// <returns></returns>
public static bool Is<T>(this System.Enum type, T value)
{
try
{
return (int)(object)type == (int)(object)value;
}
catch
{
return false;
}
}
/// <summary>
/// appends a value
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="type"></param>
/// <param name="value"></param>
/// <returns></returns>
public static T Add<T>(this System.Enum type, T value)
{
try
{
return (T)(object)(((int)(object)type | (int)(object)value));
}
catch (Exception ex)
{
throw new ArgumentException(
string.Format(
"Could not append value from enumerated type '{0}'.",
typeof(T).Name
), ex);
}
}
/// <summary>
/// completely removes the value
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="type"></param>
/// <param name="value"></param>
/// <returns></returns>
public static T Remove<T>(this System.Enum type, T value)
{
try
{
return (T)(object)(((int)(object)type & ~(int)(object)value));
}
catch (Exception ex)
{
throw new ArgumentException(
string.Format(
"Could not remove value from enumerated type '{0}'.",
typeof(T).Name
), ex);
}
}
}
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -2676,6 +2676,9 @@
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>59</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAA0AAAAAAAEAIAA3LgAA1gAAAICAAAABACAAKAgBAA0vAACAgAAAAQAIAChMAAA1NwEAQEAAAAEA
@@ -28,9 +28,9 @@
<target xsi:type="File" name="f" fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}" />
-->
<target xsi:type="File"
name="f"
fileName="${basedir}/logs/${shortdate}.log"
<target xsi:type="File"
name="f"
fileName="${basedir}/logs/${shortdate}.log"
layout="${longdate} ${uppercase:${level}} ${message}"
/>
<!--<target xsi:type="File"
File diff suppressed because it is too large Load Diff
@@ -2,7 +2,7 @@
using System.Runtime.InteropServices;
using System.Windows.Forms;
namespace MTC_Adapter
namespace SCMA
{
static class Program
{
@@ -1,14 +1,13 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// General Information about an assembly is controlled through the following
// set of attributes. Change these attribute values to modify the information
// associated with an assembly.
[assembly: AssemblyTitle("MTC_Adapter")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyTitle("SCMA")]
[assembly: AssemblyDescription("SCM Group Adapter")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyProduct("MTC_Adapter")]
[assembly: AssemblyProduct("SCMA")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
@@ -8,7 +8,7 @@
// </auto-generated>
//------------------------------------------------------------------------------
namespace MTC_Adapter.Properties {
namespace SCMA.Properties {
using System;
@@ -19,7 +19,7 @@ namespace MTC_Adapter.Properties {
// tramite uno strumento quale ResGen o Visual Studio.
// Per aggiungere o rimuovere un membro, modificare il file con estensione ResX ed eseguire nuovamente ResGen
// con l'opzione /str oppure ricompilare il progetto VS.
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "15.0.0.0")]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
internal class Resources {
@@ -39,7 +39,7 @@ namespace MTC_Adapter.Properties {
internal static global::System.Resources.ResourceManager ResourceManager {
get {
if (object.ReferenceEquals(resourceMan, null)) {
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MTC_Adapter.Properties.Resources", typeof(Resources).Assembly);
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SCMA.Properties.Resources", typeof(Resources).Assembly);
resourceMan = temp;
}
return resourceMan;
@@ -8,11 +8,11 @@
// </auto-generated>
//------------------------------------------------------------------------------
namespace MTC_Adapter.Properties {
namespace SCMA.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "14.0.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "15.8.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
+47
View File
@@ -0,0 +1,47 @@
----------------------------------------------------------------
- SIEMENS
----------------------------------------------------------------
- lettura multiValore: implementata x assi, da testare!!!
- modificare lettura dati UT per fare un solo accesso con + ItemRead contemporanei...
- LF: vanno accorpate letture COntatori (getMtzDataFromPlc | 536+) e Valori Analogici (getAnalogDataFromPlc | 1064+) con un unica lettura di 2 oggetti di dimensione pari a quanti valori ci sono da leggere...
- MF: lettura valori status (getStatusDataFromPlc | 1048+) da fare insieme alle altre info con readGlobalData
controllare:
- p133: numAlarms (module S)
- p173: 3.3.2 Area N, Block SALA : Alarms: List organized according to time, oldest alarm
appears first
- p176: 3.3.3 Area N, Block SALAP : Alarms: List organized according to priority
- p179: 3.3.4 Area N, Block SALAL : Alarms: Liste organized according to time, most recent
alarm appears first
- p182: 3.3.5 Area N, Block SMA : State data: Machine axes
- p274: 3.4.2 Area C, Block S : Channel-specific status data (codici G)
- p306: acToolOCorr (posizione punta utensile?)
- p321: actToolEntryCorrLength (posiz punta UT?)
verifica: arrivaot a pag 352
variabili: verifica da pannello siemens diagnostica / variabili
DB241.dbd0 --> CMD_ACT (p412), dove actToolBasePos =pos act, mentre cmdToolBasePos-actToolBasePos = distance to go... VERIFICARE... AA_IM
Elenco assi (16 + 2 mandrini...)
TAB[0]="X1"
TAB[1]="Y1"
TAB[2]="Z1"
TAB[3]="A1"
TAB[4]="C1"
TAB[5]="U1"
TAB[6]=""
TAB[7]=""
TAB[8]=""
TAB[9]="X2"
TAB[10]="Y2"
TAB[11]="Z2"
TAB[12]="A2"
TAB[13]="C2"
TAB[14]="U2"
TAB[15]=""
TAB[16]="SP1"
TAB[17]="SP2"
@@ -0,0 +1 @@
# Commenti con "#", elenco tipo COD_NUM|GRUPPO|LEVEL|DESCRIZIONE completa

Some files were not shown because too many files have changed in this diff Show More