Merge remote-tracking branch 'origin/master'

This commit is contained in:
germano2239 2023-02-17 14:07:38 +01:00
commit 586a800d04
48 changed files with 845 additions and 371 deletions

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 387 KiB

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,14 @@
CT~~CD,~CC^~CT~
^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR2,2~SD20^JUS^LRN^CI0^XZ
^XA
^MMT
^PW256
^LL0144
^LS0
^FT148,125^BQN,2,4
^FH\^FDLA,{PART}^FS
^FT19,40^A0N,23,21^FH\^FD{PART}^FS
^FT19,71^A0N,23,21^FH\^FDNum:{SN5}^FS
^FT19,101^A0N,23,21^FH\^FD{DATE}^FS
^FT19,126^A0N,23,21^FH\^FD{TIME}^FS
^PQ1,0,1,Y^XZ

View File

@ -0,0 +1,45 @@
CT~~CD,~CC^~CT~
^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR2,2~SD20^JUS^LRN^CI0^XZ
^XA
^MMT
^PW320
^LL1119
^LS0
^FT263,1045^A0I,39,36^FH\^FDERRECINQUE^FS
^FT209,1017^A0I,20,19^FB156,1,0,C^FH\^FDFluid System^FS
^FT209,993^A0I,20,19^FB156,1,0,C^FH\^FDVia Meucci 31/A^FS
^FT209,969^A0I,20,19^FB156,1,0,C^FH\^FD10079 Mappano(TO)^FS
^FT235,932^A0I,25,24^FH\^FDCliente:^FS
^FT233,767^A0I,20,16^FH\^FD{DD}/{MO}/{YY}^FS
^FT104,767^A0I,20,16^FH\^FD{HH}:{MI}:{SS}^FS
^FT302,106^A0I,31,28^FH\^FDESITO:^FS
^FT176,106^A0I,31,28^FH\^FDCONFORME^FS
^FT235,907^A0I,20,19^FH\^FD{CLIENT}^FS
^FT233,878^A0I,25,24^FH\^FDNumero Disegno:^FS
^FT233,853^A0I,20,19^FH\^FD{PART}^FS
^FT233,792^A0I,26,24^FH\^FDData/Ora Prova^FS
^FT233,733^A0I,25,24^FH\^FDStazione:^FS
^FT232,824^A0I,25,24^FH\^FDN. Pezzo:^FS
^FT130,827^A0I,20,19^FH\^FD{SN4}^FS
^FT233,693^A0I,25,24^FH\^FDOPERATORE:^FS
^FT138,736^A0I,23,16^FH\^FD{STATION}^FS
^FT103,696^A0I,23,16^FH\^FD{BADGE_NUM}^FS
^FO53,636^GB215,0,8^FS
^FT301,578^A0I,28,26^FH\^FDProva 1:^FS
^FT301,551^A0I,23,21^FH\^FDP. rilevata:^FS
^FT129,548^A0I,20,19^FH\^FD{RESPSET}^FS
^FT301,528^A0I,23,21^FH\^FDCaduta ammessa:^FS
^FT129,526^A0I,20,19^FH\^FD{PMIN} mbar^FS
^FT301,506^A0I,23,21^FH\^FDCaduta rilevata:^FS
^FT141,505^A0I,20,19^FH\^FD{RESLEAK} mbar^FS
^FT301,418^A0I,23,21^FH\^FDT.Prova^FS
^FT113,417^A0I,20,19^FH\^FD{TTEST} s^FS
^FT302,462^A0I,23,21^FH\^FDT.Riempim.^FS
^FT113,465^A0I,20,19^FH\^FD{TFILL} s^FS
^FT301,440^A0I,23,21^FH\^FDT.Stabilizzaz.^FS
^FT113,441^A0I,20,19^FH\^FD{TSET} s^FS
^FT308,990^A0B,23,21^FH\^FD{YY}{MO}{DD}{HH}{MI}{SS}{SN4}^FS
^BY1,3,39^FT281,999^BCB,,N,N
^FD>:{YY}{MO}{DD}{HH}{MI}{SS}{SN4}^FS
^FT192,578^A0I,28,26^FH\^FD{PTEST} mbar^FS
^PQ1,0,1,Y^XZ

View File

@ -1,70 +1,59 @@
CT~~CD,~CC^~CT~ CT~~CD,~CC^~CT~
^XA ^XA~TA000~JSN^LT0^MNW^MTT^PON^PMN^LH0,0^JMA^PR2,2~SD20^JUS^LRN^CI0^XZ
~TA000
~JSN
^LT0
^MNW
^MTT
^PON
^PMN
^LH0,0
^JMA
^PR2,2
~SD20
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA ^XA
^MMT ^MMT
^PW320 ^PW320
^LL1119 ^LL1119
^LS0 ^LS0
^FT57,74^A0N,39,38^FH\^CI28^FDERRECINQUE^FS^CI27 ^FT263,1045^A0I,39,36^FH\^FDERRECINQUE^FS
^FT71,102^A0N,20,20^FB249,1,5,C^FH\^CI28^FDFluid System^FS^CI27 ^FT209,1017^A0I,20,19^FB156,1,0,C^FH\^FDFluid System^FS
^FT71,127^A0N,20,20^FB249,1,5,C^FH\^CI28^FDVia Meucci 31/A^FS^CI27 ^FT209,993^A0I,20,19^FB156,1,0,C^FH\^FDVia Meucci 31/A^FS
^FT71,152^A0N,20,20^FB249,1,5,C^FH\^CI28^FD10079 Mappano(TO)^FS^CI27 ^FT209,969^A0I,20,19^FB156,1,0,C^FH\^FD10079 Mappano(TO)^FS
^FT85,187^A0N,25,25^FH\^CI28^FDCliente:^FS^CI27 ^FT235,932^A0I,25,24^FH\^FDCliente:^FS
^FT87,359^A0N,20,18^FH\^CI28^FD{DD}/{MO}/{YY}^FS^CI27 ^FT233,767^A0I,20,16^FH\^FD{DD}/{MO}/{YY}^FS
^FT216,359^A0N,20,18^FH\^CI28^FD{HH}:{MI}:{SS}^FS^CI27 ^FT104,767^A0I,20,16^FH\^FD{HH}:{MI}:{SS}^FS
^FT18,1013^A0N,31,30^FH\^CI28^FDESITO:^FS^CI27 ^FT302,106^A0I,31,28^FH\^FDESITO:^FS
^FT144,1013^A0N,31,30^FH\^CI28^FDCONFORME^FS^CI27 ^FT176,106^A0I,31,28^FH\^FDCONFORME^FS
^FT85,212^A0N,20,20^FH\^CI28^FD{CLIENT}^FS^CI27 ^FT235,907^A0I,20,19^FH\^FD{CLIENT}^FS
^FT87,241^A0N,25,25^FH\^CI28^FDNumero Disegno:^FS^CI27 ^FT233,878^A0I,25,24^FH\^FDNumero Disegno:^FS
^FT87,266^A0N,20,20^FH\^CI28^FD{PART}^FS^CI27 ^FT233,853^A0I,20,19^FH\^FD{PART}^FS
^FT87,333^A0N,26,25^FH\^CI28^FDData/Ora Prova^FS^CI27 ^FT233,792^A0I,26,24^FH\^FDData/Ora Prova^FS
^FT87,386^A0N,25,25^FH\^CI28^FDStazione:^FS^CI27 ^FT233,733^A0I,25,24^FH\^FDStazione:^FS
^FT88,295^A0N,25,25^FH\^CI28^FDN. Pezzo:^FS^CI27 ^FT232,824^A0I,25,24^FH\^FDN. Pezzo:^FS
^FT223,296^A0N,20,20^FH\^CI28^FD{SN4}^FS^CI27 ^FT136,826^A0I,23,24^FH\^FD{SN4}^FS
^FT87,426^A0N,25,25^FH\^CI28^FDOPERATORE:^FS^CI27 ^FT233,693^A0I,25,24^FH\^FDOPERATORE:^FS
^FT196,388^A0N,17,13^FH\^CI28^FD{STATION}^FS^CI27 ^FT140,736^A0I,23,16^FH\^FD{STATION}^FS
^FT236,427^A0N,17,13^FH\^CI28^FD{OPERATOR}^FS^CI27 ^FT103,696^A0I,23,16^FH\^FD{BADGE_NUM}^FS
^FO52,475^GB215,0,8^FS ^FO53,636^GB215,0,8^FS
^FT19,541^A0N,28,28^FH\^CI28^FDProva 2 (Alta)^FS^CI27 ^FT301,578^A0I,28,26^FH\^FDProva 1:^FS
^FT19,568^A0N,23,23^FH\^CI28^FDPress.Max(mbar)^FS^CI27 ^FT301,551^A0I,23,21^FH\^FDP. rilevata:^FS
^FT207,571^A0N,20,20^FH\^CI28^FD{PSETMAXP2}^FS^CI27 ^FT129,548^A0I,20,19^FH\^FD{RESPSET}^FS
^FT19,596^A0N,23,23^FH\^CI28^FDPress.Min(mbar)^FS^CI27 ^FT301,528^A0I,23,21^FH\^FDCaduta ammessa:^FS
^FT207,599^A0N,20,20^FH\^CI28^FD{PSETMINP2}^FS^CI27 ^FT129,526^A0I,20,19^FH\^FD{PMIN} mbar^FS
^FT19,626^A0N,23,23^FH\^CI28^FDCaduta(mbar)^FS^CI27 ^FT301,506^A0I,23,21^FH\^FDCaduta rilevata:^FS
^FT207,629^A0N,20,20^FH\^CI28^FD{RESLEAK2}^FS^CI27 ^FT141,505^A0I,20,19^FH\^FD{RESLEAK} mbar^FS
^FT19,668^A0N,28,28^FH\^CI28^FDProva 1 (Bassa)^FS^CI27 ^FT301,418^A0I,23,21^FH\^FDT.Prova^FS
^FT19,695^A0N,23,23^FH\^CI28^FDPress.Max(mbar)^FS^CI27 ^FT113,417^A0I,20,19^FH\^FD{TTEST} s^FS
^FT207,698^A0N,20,20^FH\^CI28^FD{PSETMAXP}^FS^CI27 ^FT302,462^A0I,23,21^FH\^FDT.Riempim.^FS
^FT19,723^A0N,23,23^FH\^CI28^FDPress.Min(mbar)^FS^CI27 ^FT113,465^A0I,20,19^FH\^FD{TFILL} s^FS
^FT207,726^A0N,20,20^FH\^CI28^FD{PSETMINP}^FS^CI27 ^FT301,440^A0I,23,21^FH\^FDT.Stabilizzaz.^FS
^FT19,753^A0N,23,23^FH\^CI28^FDCaduta(mbar)^FS^CI27 ^FT113,441^A0I,20,19^FH\^FD{TSET} s^FS
^FT207,756^A0N,20,20^FH\^CI28^FD{RESLEAK}^FS^CI27 ^FT308,990^A0B,23,21^FH\^FD{YY}{MO}{DD}{HH}{MI}{SS}{SN4}^FS
^FT19,851^A0N,23,23^FH\^CI28^FDT.Pulizia(sec)^FS^CI27 ^BY1,3,39^FT281,999^BCB,,N,N
^FT207,854^A0N,20,20^FH\^CI28^FD{PSETMAXP}^FS^CI27 ^FD>:{YY}{MO}{DD}{HH}{MI}{SS}{SN4}^FS
^FT18,879^A0N,23,23^FH\^CI28^FDT.Riempim.(sec)^FS^CI27 ^FT192,578^A0I,28,26^FH\^FD{PTEST} mbar^FS
^FT207,882^A0N,20,20^FH\^CI28^FD{PSETMINP}^FS^CI27 ^FT301,344^A0I,28,26^FH\^FDProva 2:^FS
^FT19,909^A0N,23,23^FH\^CI28^FDT.Stabilizzaz.(sec)^FS^CI27 ^FT301,317^A0I,23,21^FH\^FDP. rilevata:^FS
^FT207,912^A0N,20,20^FH\^CI28^FD{RESLEAK}^FS^CI27 ^FT129,314^A0I,20,19^FH\^FD{RESPSET2}^FS
^FT19,941^A0N,23,23^FH\^CI28^FDCaduta Tollerata max:^FS^CI27 ^FT301,294^A0I,23,21^FH\^FDCaduta ammessa:^FS
^FT18,969^A0N,20,20^FH\^CI28^FD{PMIN} bar^FS^CI27 ^FT129,293^A0I,20,19^FH\^FD{PMIN2} mbar^FS
^FT12,129^A0R,23,23^FH\^CI28^FD{YY}{MO}{DD}{HH}{MI}{SS}{SN4}^FS^CI27 ^FT301,272^A0I,23,21^FH\^FDCaduta rilevata:^FS
^BY1,3,39^FT39,120^BCR,,N,N ^FT141,271^A0I,20,19^FH\^FD{RESLEAK2} mbar^FS
^FH\^FD>:{YY}{MO}{DD}{HH}{MI}{SS}{SN4}^FS ^FT301,185^A0I,23,21^FH\^FDT.Prova^FS
^PQ1,0,1,Y ^FT113,184^A0I,20,19^FH\^FD{TTEST2} s^FS
^XZ ^FT302,228^A0I,23,21^FH\^FDT.Riempim.^FS
^FT113,231^A0I,20,19^FH\^FD{TFILL2} s^FS
^FT301,207^A0I,23,21^FH\^FDT.Stabilizzaz.^FS
^FT113,208^A0I,20,19^FH\^FD{TSET2} s^FS
^FT192,344^A0I,28,26^FH\^FD{PTEST2} mbar^FS
^PQ1,0,1,Y^XZ

View File

@ -0,0 +1,38 @@
CT~~CD,~CC^~CT~
^XA
~TA000
~JSN
^LT0
^MNW
^MTT
^PON
^PMN
^LH0,0
^JMA
^PR2,2
~SD25
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW679
^LL200
^LS0
^FT137,171^A0B,42,41^FH\^CI28^FDMB 1^FS^CI27
^FO148,111^GB8,61,4^FS
^FT394,171^A0B,42,41^FH\^CI28^FDMB 1^FS^CI27
^FO405,111^GB8,61,4^FS
^FT239,59^A0R,42,41^FH\^CI28^FDMB 1^FS^CI27
^FO220,57^GB8,61,4^FS
^FT504,59^A0R,42,41^FH\^CI28^FDMB 1^FS^CI27
^FO485,57^GB8,61,4^FS
^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO100,57^GB56,0,53^FS^LRN
^LRY^FO357,57^GB56,0,53^FS^LRN
^LRY^FO220,119^GB56,0,53^FS^LRN
^LRY^FO485,119^GB56,0,53^FS^LRN
^PQ1,0,1,Y
^XZ

View File

@ -0,0 +1,38 @@
CT~~CD,~CC^~CT~
^XA
~TA000
~JSN
^LT0
^MNW
^MTT
^PON
^PMN
^LH0,0
^JMA
^PR2,2
~SD25
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW679
^LL200
^LS0
^FT137,171^A0B,42,41^FH\^CI28^FDMB 2^FS^CI27
^FO148,111^GB8,61,4^FS
^FT394,171^A0B,42,41^FH\^CI28^FDMB 2^FS^CI27
^FO405,111^GB8,61,4^FS
^FT239,59^A0R,42,41^FH\^CI28^FDMB 2^FS^CI27
^FO220,57^GB8,61,4^FS
^FT504,59^A0R,42,41^FH\^CI28^FDMB 2^FS^CI27
^FO485,57^GB8,61,4^FS
^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO100,57^GB56,0,53^FS^LRN
^LRY^FO357,57^GB56,0,53^FS^LRN
^LRY^FO220,119^GB56,0,53^FS^LRN
^LRY^FO485,119^GB56,0,53^FS^LRN
^PQ1,0,1,Y
^XZ

View File

@ -10,7 +10,7 @@
^LH0,0 ^LH0,0
^JMA ^JMA
^PR2,2 ^PR2,2
~SD20 ~SD25
^JUS ^JUS
^LRN ^LRN
^CI27 ^CI27
@ -18,21 +18,21 @@
^XZ ^XZ
^XA ^XA
^MMT ^MMT
^PW575 ^PW679
^LL288 ^LL200
^LS0 ^LS0
^FT120,224^A0B,68,68^FH\^CI28^FDMI 1^FS^CI27 ^FT137,161^A0B,42,41^FH\^CI28^FDMI 1^FS^CI27
^FO133,145^GB8,79,4^FS ^FO148,111^GB8,61,4^FS
^FT198,69^A0R,68,68^FH\^CI28^FDMI 1^FS^CI27 ^FT394,161^A0B,42,41^FH\^CI28^FDMI 1^FS^CI27
^FO178,69^GB8,79,4^FS ^FO405,111^GB8,61,4^FS
^FT371,224^A0B,68,68^FH\^CI28^FDMI 1^FS^CI27 ^FT239,64^A0R,42,41^FH\^CI28^FDMI 1^FS^CI27
^FO384,145^GB8,79,4^FS ^FO220,57^GB8,61,4^FS
^FT449,69^A0R,68,68^FH\^CI28^FDMI 1^FS^CI27 ^FT506,69^A0R,42,41^FH\^CI28^FDMI 1^FS^CI27
^FO428,69^GB8,79,4^FS ^FO487,60^GB8,61,4^FS
^LRY^FO52,86^GB89,0,59^FS^LRN ^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO178,149^GB89,0,59^FS^LRN ^LRY^FO100,57^GB56,0,53^FS^LRN
^LRY^FO303,86^GB89,0,59^FS^LRN ^LRY^FO357,57^GB56,0,53^FS^LRN
^LRY^FO428,149^GB89,0,59^FS^LRN ^LRY^FO220,119^GB56,0,53^FS^LRN
^LRY^FO0,0^GB575,288,145^FS^LRN ^LRY^FO487,121^GB56,0,53^FS^LRN
^PQ1,0,1,Y ^PQ1,0,1,Y
^XZ ^XZ

View File

@ -0,0 +1,38 @@
CT~~CD,~CC^~CT~
^XA
~TA000
~JSN
^LT0
^MNW
^MTT
^PON
^PMN
^LH0,0
^JMA
^PR2,2
~SD25
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW679
^LL200
^LS0
^FT137,161^A0B,42,41^FH\^CI28^FDMI 2^FS^CI27
^FO148,111^GB8,61,4^FS
^FT394,161^A0B,42,41^FH\^CI28^FDMI 2^FS^CI27
^FO405,111^GB8,61,4^FS
^FT239,64^A0R,42,41^FH\^CI28^FDMI 2^FS^CI27
^FO220,57^GB8,61,4^FS
^FT506,69^A0R,42,41^FH\^CI28^FDMI 2^FS^CI27
^FO487,60^GB8,61,4^FS
^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO100,57^GB56,0,53^FS^LRN
^LRY^FO357,57^GB56,0,53^FS^LRN
^LRY^FO220,119^GB56,0,53^FS^LRN
^LRY^FO487,121^GB56,0,53^FS^LRN
^PQ1,0,1,Y
^XZ

View File

@ -0,0 +1,38 @@
CT~~CD,~CC^~CT~
^XA
~TA000
~JSN
^LT0
^MNW
^MTT
^PON
^PMN
^LH0,0
^JMA
^PR2,2
~SD25
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW679
^LL200
^LS0
^FT393,174^A0B,42,43^FH\^CI28^FDRB 1^FS^CI27
^FO404,113^GB8,61,4^FS
^FT138,174^A0B,42,43^FH\^CI28^FDRB 1^FS^CI27
^FO149,113^GB8,61,4^FS
^FT245,59^A0R,42,43^FH\^CI28^FDRB 1^FS^CI27
^FO226,57^GB8,61,4^FS
^FT501,59^A0R,42,43^FH\^CI28^FDRB 1^FS^CI27
^FO484,57^GB8,61,4^FS
^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO356,57^GB56,0,56^FS^LRN
^LRY^FO101,57^GB56,0,56^FS^LRN
^LRY^FO226,118^GB56,0,56^FS^LRN
^LRY^FO484,118^GB56,0,56^FS^LRN
^PQ1,0,1,Y
^XZ

View File

@ -0,0 +1,38 @@
CT~~CD,~CC^~CT~
^XA
~TA000
~JSN
^LT0
^MNW
^MTT
^PON
^PMN
^LH0,0
^JMA
^PR2,2
~SD25
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW679
^LL200
^LS0
^FT393,174^A0B,42,43^FH\^CI28^FDRB 2^FS^CI27
^FO404,113^GB8,61,4^FS
^FT138,174^A0B,42,43^FH\^CI28^FDRB 2^FS^CI27
^FO149,113^GB8,61,4^FS
^FT245,59^A0R,42,43^FH\^CI28^FDRB 2^FS^CI27
^FO226,57^GB8,61,4^FS
^FT501,59^A0R,42,43^FH\^CI28^FDRB 2^FS^CI27
^FO484,57^GB8,61,4^FS
^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO356,57^GB56,0,56^FS^LRN
^LRY^FO101,57^GB56,0,56^FS^LRN
^LRY^FO226,118^GB56,0,56^FS^LRN
^LRY^FO484,118^GB56,0,56^FS^LRN
^PQ1,0,1,Y
^XZ

View File

@ -0,0 +1,38 @@
CT~~CD,~CC^~CT~
^XA
~TA000
~JSN
^LT0
^MNW
^MTT
^PON
^PMN
^LH0,0
^JMA
^PR2,2
~SD25
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW679
^LL200
^LS0
^FT139,175^A0B,42,43^FH\^CI28^FDRM 1^FS^CI27
^FO149,109^GB8,66,4^FS
^FT245,50^A0R,42,43^FH\^CI28^FDRM 1^FS^CI27
^FO226,53^GB8,66,4^FS
^FT397,175^A0B,42,43^FH\^CI28^FDRM 1^FS^CI27
^FO407,109^GB8,66,4^FS
^FT503,50^A0R,42,43^FH\^CI28^FDRM 1^FS^CI27
^FO484,53^GB8,66,4^FS
^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO101,54^GB56,0,56^FS^LRN
^LRY^FO226,119^GB56,0,56^FS^LRN
^LRY^FO359,54^GB56,0,56^FS^LRN
^LRY^FO484,119^GB56,0,56^FS^LRN
^PQ1,0,1,Y
^XZ

View File

@ -0,0 +1,38 @@
CT~~CD,~CC^~CT~
^XA
~TA000
~JSN
^LT0
^MNW
^MTT
^PON
^PMN
^LH0,0
^JMA
^PR2,2
~SD25
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW679
^LL200
^LS0
^FT139,175^A0B,42,43^FH\^CI28^FDRM 2^FS^CI27
^FO149,109^GB8,66,4^FS
^FT245,50^A0R,42,43^FH\^CI28^FDRM 2^FS^CI27
^FO226,53^GB8,66,4^FS
^FT397,175^A0B,42,43^FH\^CI28^FDRM 2^FS^CI27
^FO407,109^GB8,66,4^FS
^FT503,50^A0R,42,43^FH\^CI28^FDRM 2^FS^CI27
^FO484,53^GB8,66,4^FS
^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO101,54^GB56,0,56^FS^LRN
^LRY^FO226,119^GB56,0,56^FS^LRN
^LRY^FO359,54^GB56,0,56^FS^LRN
^LRY^FO484,119^GB56,0,56^FS^LRN
^PQ1,0,1,Y
^XZ

View File

@ -8,6 +8,7 @@ digital_io: absent
second_leak_test: absent second_leak_test: absent
; archive_synchronizer: present ; archive_synchronizer: present
; label_printer: present ; label_printer: present
; extra_label_printer: absent
; multicomp: present ; multicomp: present
; neo_pixels: present ; neo_pixels: present
; remote_api: present ; remote_api: present
@ -61,7 +62,7 @@ printer: ttp247
[tecna_t3] [tecna_t3]
model: t3l model: t3l
; port: ? port: COM4
baudrate: 115200 baudrate: 115200
admin_pin: 603 admin_pin: 603
modify_pin: 603 modify_pin: 603
@ -114,7 +115,6 @@ r nominale: 1000000000
tolleranza_resistenza_pos: 10 tolleranza_resistenza_pos: 10
tolleranza_resistenza_neg: 5 tolleranza_resistenza_neg: 5
prova_tenuta_abilitata: x prova_tenuta_abilitata: x
config_elettrovalvole: 0
warning_img: warning_img:
tempo_pre_riempimento: 0 tempo_pre_riempimento: 0
pressione_pre_riempimento: 1000 pressione_pre_riempimento: 1000
@ -124,23 +124,25 @@ percentuale_minima_pressione_assestamento: 5
percentuale_massima_pressione_assestamento: 5 percentuale_massima_pressione_assestamento: 5
tempo_di_test: 10 tempo_di_test: 10
pressione_di_test_delta_minimo: 30 pressione_di_test_delta_minimo: 30
pressione_di_test: 15000 pressione_di_test: 1111
pressione_di_test_delta_massimo: 30 pressione_di_test_delta_massimo: 30
tempo_svuotamento: 1 tempo_svuotamento: 1
pressione_svuotmento: 100 pressione_svuotamento: 100
config_elettrovalvole: 0
prova_tenuta_abilitata_2: prova_tenuta_abilitata_2:
tempo_pre_riempimento_2: 0 tempo_pre_riempimento_2: 0
pressione_pre_riempimento_2: 1000 pressione_pre_riempimento_2: 1000
tempo_riempimento_2: 5 tempo_riempimento_2: 10
tempo_assestamento_2: 5 tempo_assestamento_2: 10
percentuale_minima_pressione_assestamento_2: 5 percentuale_minima_pressione_assestamento_2: 5
percentuale_massima_pressione_assestamento_2: 5 percentuale_massima_pressione_assestamento_2: 5
tempo_di_test_2: 5 tempo_di_test_2: 10
pressione_di_test_delta_minimo_2: 200 pressione_di_test_delta_minimo_2: 200
pressione_di_test_2: 1000 pressione_di_test_2: 2222
pressione_di_test_delta_massimo_2: 200 pressione_di_test_delta_massimo_2: 200
tempo_svuotamento_2: 1 tempo_svuotamento_2: 1
pressione_svuotmento_2: 100 pressione_svuotamento_2: 100
config_elettrovalvole_2: 0
test_visione_abilitato: test_visione_abilitato:
ricetta_visione: termorestringente_923578.ini ricetta_visione: termorestringente_923578.ini
stampa_etichetta_abilitata: x stampa_etichetta_abilitata: x

View File

@ -6,6 +6,7 @@ description = ST-TEN-5 IVECO DAILY ELETTRICO
archive_synchronizer: absent archive_synchronizer: absent
uvc_camera: absent uvc_camera: absent
label_printer: present label_printer: present
extra_label_printer: present
remote_api: absent remote_api: absent
tecna_t3: present tecna_t3: present
digital_io: present digital_io: present
@ -16,7 +17,7 @@ model: t3l
[recipe] [recipe]
recipe_name_field: codice_ricetta recipe_name_field: codice_ricetta
part_number_field: codice_prodotto part_number_field: codice_ricetta
label_template_field: modello_etichetta label_template_field: modello_etichetta
description_field: descrizione description_field: descrizione
@ -33,6 +34,8 @@ printer: xlp504
id: USB-5862,BID#0 id: USB-5862,BID#0
[recipes_defaults] [recipes_defaults]
codice_ricetta: specificare ricetta codice_ricetta: specificare ricetta
cliente: IVECO cliente: IVECO
part_number: specificare part number part_number: specificare part number
@ -48,17 +51,17 @@ numero sensori presenza (sp):0
prova_tenuta_abilitata: x prova_tenuta_abilitata: x
tempo_pre_riempimento: 0 tempo_pre_riempimento: 0
pressione_pre_riempimento: 1000 pressione_pre_riempimento: 5000
tempo_riempimento: 10 tempo_riempimento: 5
tempo_assestamento: 10 tempo_assestamento: 10
percentuale_minima_pressione_assestamento: 5 percentuale_minima_pressione_assestamento: 5
percentuale_massima_pressione_assestamento: 5 percentuale_massima_pressione_assestamento: 5
tempo_di_test: 10 tempo_di_test: 10
pressione_di_test_delta_minimo: 30 pressione_di_test_delta_minimo: 30
pressione_di_test: 6000 pressione_di_test: 5000
pressione_di_test_delta_massimo: 30 pressione_di_test_delta_massimo: 30
tempo_svuotamento: 1 tempo_svuotamento: 1
pressione_svuotmento: 100 pressione_svuotamento: 100
prova_tenuta_abilitata_2: prova_tenuta_abilitata_2:
tempo_pre_riempimento_2: 0 tempo_pre_riempimento_2: 0
@ -72,8 +75,8 @@ pressione_di_test_delta_minimo_2: 200
pressione_di_test_2: 1000 pressione_di_test_2: 1000
pressione_di_test_delta_massimo_2: 200 pressione_di_test_delta_massimo_2: 200
tempo_svuotamento_2: 1 tempo_svuotamento_2: 1
pressione_svuotmento_2: 100 pressione_svuotamento_2: 100
stampa_etichetta_abilitata: x stampa_etichetta_abilitata: x
modello_etichetta: ETA30x16.prn modello_etichetta: ETA30x16_203dpi.prn
descrizione: inserire descrizione ricetta descrizione: inserire descrizione ricetta

View File

@ -2,7 +2,7 @@
description = ST-TEN-6 DOPPIA PROVA PRESSIONE 6/20 BAR description = ST-TEN-6 DOPPIA PROVA PRESSIONE 6/20 BAR
[hardware_config] [hardware_config]
archive_synchronizer: absent archive_synchronizer: present
; galaxy_camera: present ; galaxy_camera: present
uvc_camera: present uvc_camera: present
label_printer: present label_printer: present
@ -27,31 +27,37 @@ recipe_name_field: codice_ricetta
part_number_field: codice_prodotto part_number_field: codice_prodotto
label_template_field: modello_etichetta label_template_field: modello_etichetta
description_field: descrizione description_field: descrizione
[recipes_defaults]
dimensione_lotto_abilitata:
tempo_pre_riempimento: 0 tempo_pre_riempimento: 0
pressione_pre_riempimento: 1000 pressione_pre_riempimento: 1000
tempo_riempimento: 10 tempo_riempimento: 15
tempo_assestamento: 10 tempo_assestamento: 15
tempo_di_test: 10
percentuale_minima_pressione_assestamento: 5 percentuale_minima_pressione_assestamento: 5
percentuale_massima_pressione_assestamento: 5 percentuale_massima_pressione_assestamento: 5
tempo_di_test: 10
pressione_di_test_delta_minimo: 30 pressione_di_test_delta_minimo: 30
pressione_di_test: 15000 pressione_di_test: 7000
pressione_di_test_delta_massimo: 30 pressione_di_test_delta_massimo: 30
tempo_svuotamento: 1 tempo_svuotamento: 1
pressione_svuotmento: 100 pressione_svuotamento: 100
prova_tenuta_abilitata_2: x config_elettrovalvole: 1
prova_tenuta_abilitata_2:
tempo_pre_riempimento_2: 0 tempo_pre_riempimento_2: 0
pressione_pre_riempimento_2: 1000 pressione_pre_riempimento_2: 1000
tempo_riempimento_2: 5 tempo_riempimento_2: 15
tempo_assestamento_2: 5 tempo_assestamento_2: 15
tempo_di_test_2: 10
percentuale_minima_pressione_assestamento_2: 5 percentuale_minima_pressione_assestamento_2: 5
percentuale_massima_pressione_assestamento_2: 5 percentuale_massima_pressione_assestamento_2: 5
tempo_di_test_2: 5 pressione_di_test_delta_minimo_2: 30
pressione_di_test_delta_minimo_2: 200 pressione_di_test_2: 15000
pressione_di_test_2: 1000 pressione_di_test_delta_massimo_2: 30
pressione_di_test_delta_massimo_2: 200
tempo_svuotamento_2: 1 tempo_svuotamento_2: 1
pressione_svuotmento_2: 100 pressione_svuotamento_2: 100
config_elettrovalvole_2: 2
modello_etichetta: EtichettaR5_Montaggio_1prova.prn
[label_printer] [label_printer]
platform: windows platform: windows

View File

@ -2,7 +2,7 @@ set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT% echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT%
echo sLinkFile = "%USERPROFILE%\Desktop\AVVIO PROGRAMMA COLLAUDO.lnk" >> %SCRIPT% echo sLinkFile = "%USERPROFILE%\Desktop\AVVIO PROGRAMMA COLLAUDO.lnk" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT% echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%
echo oLink.TargetPath = "%userprofile%\PycharmProjects\st-ten-1\runme.sh" >> %SCRIPT% echo oLink.TargetPath = "%userprofile%\PycharmProjects\st-ten-1\runme.bat" >> %SCRIPT%
echo oLink.IconLocation = "%userprofile%\PycharmProjects\st-ten-1\src\ui\imgs\neo.ico" echo oLink.IconLocation = "%userprofile%\PycharmProjects\st-ten-1\src\ui\imgs\neo.ico"
echo oLink.Save >> %SCRIPT% echo oLink.Save >> %SCRIPT%
cscript /nologo %SCRIPT% cscript /nologo %SCRIPT%

4
runme.bat Normal file
View File

@ -0,0 +1,4 @@
echo on
SET mypath=%~dp0
cd %mypath%
.\venv\Scripts\activate.bat && python -O "./src/main.py" --no-edgetpu --no-tflite --no-autotest

View File

@ -1,7 +1,7 @@
from ctypes import (CFUNCTYPE, POINTER, byref, c_char, c_int32, c_uint8, from ctypes import (CFUNCTYPE, POINTER, byref, c_char, c_int32, c_uint8,
c_void_p, cast, create_string_buffer, pointer) c_void_p, cast, create_string_buffer, pointer)
from src.components.Automation.BDaq import *
buffer = {} buffer = {}
out_data =[0b00000101,0b00000101] out_data =[0b00000101,0b00000101]
@ -25,7 +25,7 @@ def InstantDoCtrl_WriteBit(useless, byte, bit, val):
b = int(int.from_bytes(val, "big") != 0) << bit b = int(int.from_bytes(val, "big") != 0) << bit
buffer[byte] &= 0b11111111 & ~(1 << bit) buffer[byte] &= 0b11111111 & ~(1 << bit)
buffer[byte] |= b buffer[byte] |= b
return 0 return ErrorCode.Success
@CFUNCTYPE(c_void_p) @CFUNCTYPE(c_void_p)

View File

@ -12,14 +12,14 @@ is_win = platform.system() == "Windows"
if "--sim-io" not in sys.argv: if "--sim-io" not in sys.argv:
if is_win: if is_win:
from Automation.BDaq import * from components.Automation.BDaq import *
from Automation.BDaq.InstantDoCtrl import InstantDoCtrl from components.Automation.BDaq.InstantDoCtrl import InstantDoCtrl
from Automation.BDaq.InstantDiCtrl import InstantDiCtrl from components.Automation.BDaq.InstantDiCtrl import InstantDiCtrl
else: else:
libbiodaq = ctypes.CDLL("/opt/advantech/libs/libbiodaq.so") libbiodaq = ctypes.CDLL("/opt/advantech/libs/libbiodaq.so")
else: else:
is_win=False is_win=False
import src.components.dummies.libbiodaq as libbiodaq import components.dummies.libbiodaq as libbiodaq
class USB_586x(Component): class USB_586x(Component):
@ -36,7 +36,7 @@ class USB_586x(Component):
def __init__(self, config=None, name=None, period=1, lazy=True, paused=False, threaded=True): def __init__(self, config=None, name=None, period=1, lazy=True, paused=False, threaded=True):
super().__init__(config=config, name=name, period=period, lazy=lazy, paused=paused, threaded=threaded) super().__init__(config=config, name=name, period=period, lazy=lazy, paused=paused, threaded=threaded)
self.mutex = QMutex() self.mutex = QMutex()
self.simulate="--sim-io" in sys.argv
# DEVICE INFORMATION # DEVICE INFORMATION
self.id=config["digital_io"]["id"] self.id=config["digital_io"]["id"]
if "5860" in self.id: if "5860" in self.id:
@ -147,7 +147,7 @@ class USB_586x(Component):
read = [] read = []
if is_win: if is_win:
ret = self.di_read(0, self.in_size) ret = self.di_read(0, self.in_size)
if ret[0] == ErrorCode.Success: if ret[0].value == ErrorCode.Success.value:
self.buffer = ret[1] self.buffer = ret[1]
for byte_num in range(len(self.buffer)): for byte_num in range(len(self.buffer)):
byte = self.buffer[byte_num] byte = self.buffer[byte_num]
@ -192,8 +192,8 @@ class USB_586x(Component):
retry=0 retry=0
max_retry = 3 max_retry = 3
while not ok and retry <max_retry: while not ok and retry <max_retry:
ret = self.components["digital_io"].set_bit(byte, bit, val) ret = self.set_bit(byte, bit, val)
if ret != ErrorCode.Success: if ret.value != (ErrorCode.Success.value) and not self.simulate:
self.log.error(f"SET BIT ERROR") self.log.error(f"SET BIT ERROR")
self.open_device() self.open_device()
retry+=1 retry+=1

View File

@ -41,7 +41,7 @@ class Users(BaseModel):
username = TextField(unique=True, null=False) username = TextField(unique=True, null=False)
password = TextField(null=False) # enable nulling to enable passwordless login password = TextField(null=False) # enable nulling to enable passwordless login
roles = JSONField(null=True, json_dumps=json_dumps_roles, json_loads=json_loads_roles) roles = JSONField(null=True, json_dumps=json_dumps_roles, json_loads=json_loads_roles)
badge_number = TextField(unique=False,null=True,default="")
@classmethod @classmethod
def get_users(cls): def get_users(cls):
return cls.select().where(cls.password != b"").execute() return cls.select().where(cls.password != b"").execute()

View File

@ -3,6 +3,7 @@ import argparse
import faulthandler import faulthandler
import logging import logging
import os import os
import platform
# import pdb # import pdb
import signal import signal
import sys import sys
@ -11,6 +12,9 @@ import weakref
from datetime import datetime from datetime import datetime
from pathlib import Path from pathlib import Path
if platform.system() == "Windows":
sys.path.append(f"{os.getcwd()}\src\components")
from components.usb_586x import USB_586x from components.usb_586x import USB_586x
app = None app = None
@ -93,6 +97,7 @@ try:
self.components_specs = { self.components_specs = {
"archive_synchronizer": {"c": ArchiveSynchronizer}, "archive_synchronizer": {"c": ArchiveSynchronizer},
"label_printer": {"c": Os_Label_Printer, "t": False}, "label_printer": {"c": Os_Label_Printer, "t": False},
"extra_label_printer": {"c": Os_Label_Printer, "t": False},
"multicomp": {"c": Multicomp730424, "k": {"paused": True}}, "multicomp": {"c": Multicomp730424, "k": {"paused": True}},
"remote_api": {"c": RemoteAPI, "k": {"main": self}}, "remote_api": {"c": RemoteAPI, "k": {"main": self}},
"screwdriver": {"c": TecnaScrewdriver, "k": {"paused": True}}, "screwdriver": {"c": TecnaScrewdriver, "k": {"paused": True}},

View File

@ -0,0 +1,191 @@
codice_ricetta,Priorita,etichette_supplementari,Numero nastri (N),Numero sensori anello (SA),Numero sensori presenza (SP)
5803034806,1,,,,
5803037204,1,,,,
5803037206,1,,,,
5803037207,1,,,,
5803048121,1,,,,
5803048122,1,,,,
5803048123,1,,,,
5803048125,1,RM2,,,
5803048126,1,MI2,,,
5803048127,1,"MI1,MI2",,,
5803048128,1,"RM1,RM2",,,
5803048131,1,"MI1,MI2",,,
5803048132,1,"RM1,RM2",,,
5803098374,1,,,,
5803098375,1,,,,
5803119920,1,,,,
5803119921,1,,,,
5803119922,1,,,,
5803119923,1,,,,
5803119924,1,,,,
5803119925,1,,,,
5803119926,1,,,,
5803119927,1,,,,
5802850925,1,"RM1,MI1",3,2,2
5802850926,1,,,,
5802850929,1,,4,3,1
5802850932,1,,,,
5802850933,1,,,,
5802850941,1,,,,
5802963590,1,,,,
5802963591,1,RB1,,,
5802963593,1,,,,
5802963597,1,,,,
5802963598,1,MB1,,,
5802963599,1,,,,
5802963600,1,,,,
5802963679,1,,,,
5802963681,1,,,,
5802963683,1,,,,
5802963684,1,,,,
5802963685,1,,,,
5803025107,1,"MI1,MI2",,,
5803025111,1,"MB1,MB2",,,
5803025112,1,"RB1,RB2",,,
5803025113,1,"MI1,MI2",,,
5803025114,1,"RM1,RM2",,,
5803025116,1,"MI1,MI2",,,
5803025117,1,"RM1,RM2",,,
5803025127,1,"MI1,MI2",,,
5803025130,1,,,,
5803025131,1,,,,
5803025134,1,,,,
5803025135,1,,,,
5803025136,1,,,,
5803025137,1,,,,
5803033719,1,"MI1,MI2",,,
5803034025,1,"RM1,RM2",,,
5803034029,1,,,,
5803034807,1,"RM1,RM2",2,1,
5803036737,1,,,,
5803041432,1,,,,
5803041433,1,,,,
5802850935,1,,,,
5802850936,1,,,,
5803025108,1,"RM1,RM2",,,
5803025109,1,MI2,,,
5803025110,1,RM2,,,
5803025115,1,MB2,,,
5803025118,1,RB2,,,
5803025132,1,,,,
5803025133,1,,,,
5803033717,1,MI1,,,
5803034002,1,,,,
5803034005,1,,,,
5803034011,1,,,,
5803034015,1,RM1,,,
5803034017,1,MB2,,,
5803034020,1,,,,
5803034021,1,,,,
5803034022,1,,,,
5803034026,1,"RB1,RB2",,,
5803034027,1,MB2,,,
5803034028,1,RB2,,,
5803034770,1,,,,
5803034771,1,,,,
5803034772,1,"MB1,MB2",,,
5803036730,1,RB2,,,
5803036731,1,"RM1,RM2",,,
5803036732,1,MI2,,,
5803036733,1,RM2,,,
5803036734,1,MB2,,,
5803036735,1,RB2,,,
5803036741,1,MI1,,,
5803036742,1,RM1,,,
5803036743,1,MI1,,,
5803036744,1,RM1,,,
5803036746,1,RB1,,,
5803036747,1,MB1,,,
5803036751,1,,,,
5803036753,1,,,,
5803041434,1,MB1,,,
5803041435,1,RB1,,,
5803048129,1,MI2,,,
5803048130,1,RM2,,,
5803041436,2,RM2,,,
5803041437,2,MI2,,,
5803036748,2,MI2,,,
5803036749,2,RM2,,,
5803034810,2,MI1,,,
5803034811,2,RM1,,,
5803101533,2,"RM1,RM2",,,
5803101535,2,"MI1,MI2",,,
5803101537,2,RM1,,,
5803101538,2,MI1,,,
5803108304,2,,,,
5803108310,2,,,,
5803101534,2,RM2,,,
5803101536,2,MI2,,,
5803033718,2,,,,
5803034812,2,,,,
5803034813,2,,,,
5803108305,2,,,,
5803108311,2,,,,
5803007806,2,,,,
5803007807,2,,,,
5803007808,2,,,,
5803034023,2,RM1,,,
5803034024,2,MI1,,,
5803101541,2,RM1,,,
5803101542,2,MI1,,,
5803034778,2,MB2,,,
5803034780,2,RB2,,,
5803037200,2,RM1,,,
5803037201,2,MI1,,,
5803104802,2,,,,
5803104803,2,,,,
5803104804,2,,,,
5803104806,2,,,,
5803104807,2,,,,
5803104808,2,,,,
5803025103,2,MB2,,,
5803025105,2,RB2,,,
5802815391,2,,,,
5802815400,2,,,,
5803047088,2,MB2,,,
5803047079,2,MB2,,,
5803047080,2,RB2,,,
5803047095,2,MB2,,,
5803047096,2,RB2,,,
5803034808,2,"MI1,MI2",,,
5803034809,2,"RM1,RM2",,,
5803108365,2,,,,
5803108368,2,,,,
5803034007,2,,,,
5803034009,2,,,,
5803037202,2,,,,
5803037203,2,,,,
5803108366,2,,,,
5803108369,2,,,,
5803025123,2,"MI1,MI2",,,
5803025124,2,"RM1,RM2",,,
5803025125,2,MI1,,,
5803025126,2,RM1,,,
5803034773,2,RM1,,,
5803033716,2,RM1,,,
5803034013,2,MI1,,,
5803025100,2,"MI1,MI2",,,
5803025101,2,"RB1,RB2",,,
5803047093,2,"MB1,MB2",,,
5803025099,2,"MB1,MB2",,,
5803025102,2,"RM1,RM2",,,
5803025104,2,"MI1,MI2",,,
5803025106,2,"RM1,RM2",,,
5803047087,2,"MI1,MI2",,,
5803047090,2,"RM1,RM2",,,
5803047092,2,"MI1,MI2",,,
5803025128,2,,,,
5803025129,2,,,,
5803047075,2,RM2,,,
5803047076,2,MI2,,,
5803034776,2,,,,
5803047073,2,RM1,,,
5803047074,2,MI1,,,
5803034774,2,MI1,,,
5803036739,2,MI1,,,
5803036740,2,RM1,,,
5803047098,2,,,,
5803047099,2,,,,
5802815398,2,,,,
5803047091,2,RB2,,,
1 codice_ricetta Priorita etichette_supplementari Numero nastri (N) Numero sensori anello (SA) Numero sensori presenza (SP)
2 5803034806 1
3 5803037204 1
4 5803037206 1
5 5803037207 1
6 5803048121 1
7 5803048122 1
8 5803048123 1
9 5803048125 1 RM2
10 5803048126 1 MI2
11 5803048127 1 MI1,MI2
12 5803048128 1 RM1,RM2
13 5803048131 1 MI1,MI2
14 5803048132 1 RM1,RM2
15 5803098374 1
16 5803098375 1
17 5803119920 1
18 5803119921 1
19 5803119922 1
20 5803119923 1
21 5803119924 1
22 5803119925 1
23 5803119926 1
24 5803119927 1
25 5802850925 1 RM1,MI1 3 2 2
26 5802850926 1
27 5802850929 1 4 3 1
28 5802850932 1
29 5802850933 1
30 5802850941 1
31 5802963590 1
32 5802963591 1 RB1
33 5802963593 1
34 5802963597 1
35 5802963598 1 MB1
36 5802963599 1
37 5802963600 1
38 5802963679 1
39 5802963681 1
40 5802963683 1
41 5802963684 1
42 5802963685 1
43 5803025107 1 MI1,MI2
44 5803025111 1 MB1,MB2
45 5803025112 1 RB1,RB2
46 5803025113 1 MI1,MI2
47 5803025114 1 RM1,RM2
48 5803025116 1 MI1,MI2
49 5803025117 1 RM1,RM2
50 5803025127 1 MI1,MI2
51 5803025130 1
52 5803025131 1
53 5803025134 1
54 5803025135 1
55 5803025136 1
56 5803025137 1
57 5803033719 1 MI1,MI2
58 5803034025 1 RM1,RM2
59 5803034029 1
60 5803034807 1 RM1,RM2 2 1
61 5803036737 1
62 5803041432 1
63 5803041433 1
64 5802850935 1
65 5802850936 1
66 5803025108 1 RM1,RM2
67 5803025109 1 MI2
68 5803025110 1 RM2
69 5803025115 1 MB2
70 5803025118 1 RB2
71 5803025132 1
72 5803025133 1
73 5803033717 1 MI1
74 5803034002 1
75 5803034005 1
76 5803034011 1
77 5803034015 1 RM1
78 5803034017 1 MB2
79 5803034020 1
80 5803034021 1
81 5803034022 1
82 5803034026 1 RB1,RB2
83 5803034027 1 MB2
84 5803034028 1 RB2
85 5803034770 1
86 5803034771 1
87 5803034772 1 MB1,MB2
88 5803036730 1 RB2
89 5803036731 1 RM1,RM2
90 5803036732 1 MI2
91 5803036733 1 RM2
92 5803036734 1 MB2
93 5803036735 1 RB2
94 5803036741 1 MI1
95 5803036742 1 RM1
96 5803036743 1 MI1
97 5803036744 1 RM1
98 5803036746 1 RB1
99 5803036747 1 MB1
100 5803036751 1
101 5803036753 1
102 5803041434 1 MB1
103 5803041435 1 RB1
104 5803048129 1 MI2
105 5803048130 1 RM2
106 5803041436 2 RM2
107 5803041437 2 MI2
108 5803036748 2 MI2
109 5803036749 2 RM2
110 5803034810 2 MI1
111 5803034811 2 RM1
112 5803101533 2 RM1,RM2
113 5803101535 2 MI1,MI2
114 5803101537 2 RM1
115 5803101538 2 MI1
116 5803108304 2
117 5803108310 2
118 5803101534 2 RM2
119 5803101536 2 MI2
120 5803033718 2
121 5803034812 2
122 5803034813 2
123 5803108305 2
124 5803108311 2
125 5803007806 2
126 5803007807 2
127 5803007808 2
128 5803034023 2 RM1
129 5803034024 2 MI1
130 5803101541 2 RM1
131 5803101542 2 MI1
132 5803034778 2 MB2
133 5803034780 2 RB2
134 5803037200 2 RM1
135 5803037201 2 MI1
136 5803104802 2
137 5803104803 2
138 5803104804 2
139 5803104806 2
140 5803104807 2
141 5803104808 2
142 5803025103 2 MB2
143 5803025105 2 RB2
144 5802815391 2
145 5802815400 2
146 5803047088 2 MB2
147 5803047079 2 MB2
148 5803047080 2 RB2
149 5803047095 2 MB2
150 5803047096 2 RB2
151 5803034808 2 MI1,MI2
152 5803034809 2 RM1,RM2
153 5803108365 2
154 5803108368 2
155 5803034007 2
156 5803034009 2
157 5803037202 2
158 5803037203 2
159 5803108366 2
160 5803108369 2
161 5803025123 2 MI1,MI2
162 5803025124 2 RM1,RM2
163 5803025125 2 MI1
164 5803025126 2 RM1
165 5803034773 2 RM1
166 5803033716 2 RM1
167 5803034013 2 MI1
168 5803025100 2 MI1,MI2
169 5803025101 2 RB1,RB2
170 5803047093 2 MB1,MB2
171 5803025099 2 MB1,MB2
172 5803025102 2 RM1,RM2
173 5803025104 2 MI1,MI2
174 5803025106 2 RM1,RM2
175 5803047087 2 MI1,MI2
176 5803047090 2 RM1,RM2
177 5803047092 2 MI1,MI2
178 5803025128 2
179 5803025129 2
180 5803047075 2 RM2
181 5803047076 2 MI2
182 5803034776 2
183 5803047073 2 RM1
184 5803047074 2 MI1
185 5803034774 2 MI1
186 5803036739 2 MI1
187 5803036740 2 RM1
188 5803047098 2
189 5803047099 2
190 5802815398 2
191 5803047091 2 RB2

View File

@ -1,191 +0,0 @@
,codice_ricetta,Priorità,descrizione,etichette_supplementari,Numero nastri (N),Numero sensori anello (SA),Numero sensori presenza (SP)
,5803034806,1,priorità 1,,,,
,5803037204,1,priorità 1,,,,
,5803037206,1,priorità 1,,,,
,5803037207,1,priorità 1,,,,
,5803048121,1,priorità 1,,,,
,5803048122,1,priorità 1,,,,
,5803048123,1,priorità 1,,,,
,5803048125,1,priorità 1,,,,
,5803048126,1,priorità 1,,,,
,5803048127,1,priorità 1,,,,
,5803048128,1,priorità 1,,,,
,5803048131,1,priorità 1,,,,
,5803048132,1,priorità 1,,,,
,5803098374,1,priorità 1,,,,
,5803098375,1,priorità 1,,,,
,5803119920,1,priorità 1,,,,
,5803119921,1,priorità 1,,,,
,5803119922,1,priorità 1,,,,
,5803119923,1,priorità 1,,,,
,5803119924,1,priorità 1,,,,
,5803119925,1,priorità 1,,,,
,5803119926,1,priorità 1,,,,
,5803119927,1,priorità 1,,,,
,5802850925,1,priorità 1,"RM1,MI1",3,2,2
,5802850926,1,priorità 1,,,,
,5802850929,1,priorità 1,,4,3,1
,5802850932,1,priorità 1,,,,
,5802850933,1,priorità 1,,,,
,5802850941,1,priorità 1,,,,
,5802963590,1,priorità 1,,,,
,5802963591,1,priorità 1,,,,
,5802963593,1,priorità 1,,,,
,5802963597,1,priorità 1,,,,
,5802963598,1,priorità 1,,,,
,5802963599,1,priorità 1,,,,
,5802963600,1,priorità 1,,,,
,5802963679,1,priorità 1,,,,
,5802963681,1,priorità 1,,,,
,5802963683,1,priorità 1,,,,
,5802963684,1,priorità 1,,,,
,5802963685,1,priorità 1,,,,
,5803025107,1,priorità 1,,,,
,5803025111,1,priorità 1,,,,
,5803025112,1,priorità 1,,,,
,5803025113,1,priorità 1,,,,
,5803025114,1,priorità 1,,,,
,5803025116,1,priorità 1,,,,
,5803025117,1,priorità 1,,,,
,5803025127,1,priorità 1,,,,
,5803025130,1,priorità 1,,,,
,5803025131,1,priorità 1,,,,
,5803025134,1,priorità 1,,,,
,5803025135,1,priorità 1,,,,
,5803025136,1,priorità 1,,,,
,5803025137,1,priorità 1,,,,
,5803033719,1,priorità 1,,,,
,5803034025,1,priorità 1,,,,
,5803034029,1,priorità 1,,,,
,5803034807,1,priorità 1,,,,
,5803036737,1,priorità 1,,,,
,5803041432,1,priorità 1,,,,
,5803041433,1,priorità 1,,,,
,5802850935,1,priorità 1,,,,
,5802850936,1,priorità 1,,,,
,5803025108,1,priorità 1,,,,
,5803025109,1,priorità 1,,,,
,5803025110,1,priorità 1,,,,
,5803025115,1,priorità 1,,,,
,5803025118,1,priorità 1,,,,
,5803025132,1,priorità 1,,,,
,5803025133,1,priorità 1,,,,
,5803033717,1,priorità 1,,,,
,5803034002,1,priorità 1,,,,
,5803034005,1,priorità 1,,,,
,5803034011,1,priorità 1,,,,
,5803034015,1,priorità 1,,,,
,5803034017,1,priorità 1,,,,
,5803034020,1,priorità 1,,,,
,5803034021,1,priorità 1,,,,
,5803034022,1,priorità 1,,,,
,5803034026,1,priorità 1,,,,
,5803034027,1,priorità 1,,,,
,5803034028,1,priorità 1,,,,
,5803034770,1,priorità 1,,,,
,5803034771,1,priorità 1,,,,
,5803034772,1,priorità 1,,,,
,5803036730,1,priorità 1,,,,
,5803036731,1,priorità 1,,,,
,5803036732,1,priorità 1,,,,
,5803036733,1,priorità 1,,,,
,5803036734,1,priorità 1,,,,
,5803036735,1,priorità 1,,,,
,5803036741,1,priorità 1,,,,
,5803036742,1,priorità 1,,,,
,5803036743,1,priorità 1,,,,
,5803036744,1,priorità 1,,,,
,5803036746,1,priorità 1,,,,
,5803036747,1,priorità 1,,,,
,5803036751,1,priorità 1,,,,
,5803036753,1,priorità 1,,,,
,5803041434,1,priorità 1,,,,
,5803041435,1,priorità 1,,,,
,5803048129,1,priorità 1,,,,
,5803048130,1,priorità 1,,,,
,5803041436,2,priorità 2,,,,
,5803041437,2,priorità 2,,,,
,5803036748,2,priorità 2,,,,
,5803036749,2,priorità 2,,,,
,5803034810,2,priorità 2,,,,
,5803034811,2,priorità 2,,,,
,5803101533,2,priorità 2,,,,
,5803101535,2,priorità 2,,,,
,5803101537,2,priorità 2,,,,
,5803101538,2,priorità 2,,,,
,5803108304,2,priorità 2,,,,
,5803108310,2,priorità 2,,,,
,5803101534,2,priorità 2,,,,
,5803101536,2,priorità 2,,,,
,5803033718,2,priorità 2,,,,
,5803034812,2,priorità 2,,,,
,5803034813,2,priorità 2,,,,
,5803108305,2,priorità 2,,,,
,5803108311,2,priorità 2,,,,
,5803007806,2,priorità 2,,,,
,5803007807,2,priorità 2,,,,
,5803007808,2,priorità 2,,,,
,5803034023,2,priorità 2,,,,
,5803034024,2,priorità 2,,,,
,5803101541,2,priorità 2,,,,
,5803101542,2,priorità 2,,,,
,5803034778,2,priorità 2,,,,
,5803034780,2,priorità 2,,,,
,5803037200,2,priorità 2,,,,
,5803037201,2,priorità 2,,,,
,5803104802,2,priorità 2,,,,
,5803104803,2,priorità 2,,,,
,5803104804,2,priorità 2,,,,
,5803104806,2,priorità 2,,,,
,5803104807,2,priorità 2,,,,
,5803104808,2,priorità 2,,,,
,5803025103,2,priorità 2,,,,
,5803025105,2,priorità 2,,,,
,5802815391,2,priorità 2,,,,
,5802815400,2,priorità 2,,,,
,5803047088,2,priorità 2,,,,
,5803047079,2,priorità 2,,,,
,5803047080,2,priorità 2,,,,
,5803047095,2,priorità 2,,,,
,5803047096,2,priorità 2,,,,
,5803034808,2,priorità 2,,,,
,5803034809,2,priorità 2,,,,
,5803108365,2,priorità 2,,,,
,5803108368,2,priorità 2,,,,
,5803034007,2,priorità 2,,,,
,5803034009,2,priorità 2,,,,
,5803037202,2,priorità 2,,,,
,5803037203,2,priorità 2,,,,
,5803108366,2,priorità 2,,,,
,5803108369,2,priorità 2,,,,
,5803025123,2,priorità 2,,,,
,5803025124,2,priorità 2,,,,
,5803025125,2,priorità 2,,,,
,5803025126,2,priorità 2,,,,
,5803034773,2,priorità 2,,,,
,5803033716,2,priorità 2,,,,
,5803034013,2,priorità 2,,,,
,5803025100,2,priorità 2,,,,
,5803025101,2,priorità 2,,,,
,5803047093,2,priorità 2,,,,
,5803025099,2,priorità 2,,,,
,5803025102,2,priorità 2,,,,
,5803025104,2,priorità 2,,,,
,5803025106,2,priorità 2,,,,
,5803047087,2,priorità 2,,,,
,5803047090,2,priorità 2,,,,
,5803047092,2,priorità 2,,,,
,5803025128,2,priorità 2,,,,
,5803025129,2,priorità 2,,,,
,5803047075,2,priorità 2,,,,
,5803047076,2,priorità 2,,,,
,5803034776,2,priorità 2,,,,
,5803047073,2,priorità 2,,,,
,5803047074,2,priorità 2,,,,
,5803034774,2,priorità 2,,,,
,5803036739,2,priorità 2,,,,
,5803036740,2,priorità 2,,,,
,5803047098,2,priorità 2,,,,
,5803047099,2,priorità 2,,,,
,5802815398,2,priorità 2,,,,
,5803047091,2,priorità 2,,,,
1 codice_ricetta Priorità descrizione etichette_supplementari Numero nastri (N) Numero sensori anello (SA) Numero sensori presenza (SP)
2 5803034806 1 priorità 1
3 5803037204 1 priorità 1
4 5803037206 1 priorità 1
5 5803037207 1 priorità 1
6 5803048121 1 priorità 1
7 5803048122 1 priorità 1
8 5803048123 1 priorità 1
9 5803048125 1 priorità 1
10 5803048126 1 priorità 1
11 5803048127 1 priorità 1
12 5803048128 1 priorità 1
13 5803048131 1 priorità 1
14 5803048132 1 priorità 1
15 5803098374 1 priorità 1
16 5803098375 1 priorità 1
17 5803119920 1 priorità 1
18 5803119921 1 priorità 1
19 5803119922 1 priorità 1
20 5803119923 1 priorità 1
21 5803119924 1 priorità 1
22 5803119925 1 priorità 1
23 5803119926 1 priorità 1
24 5803119927 1 priorità 1
25 5802850925 1 priorità 1 RM1,MI1 3 2 2
26 5802850926 1 priorità 1
27 5802850929 1 priorità 1 4 3 1
28 5802850932 1 priorità 1
29 5802850933 1 priorità 1
30 5802850941 1 priorità 1
31 5802963590 1 priorità 1
32 5802963591 1 priorità 1
33 5802963593 1 priorità 1
34 5802963597 1 priorità 1
35 5802963598 1 priorità 1
36 5802963599 1 priorità 1
37 5802963600 1 priorità 1
38 5802963679 1 priorità 1
39 5802963681 1 priorità 1
40 5802963683 1 priorità 1
41 5802963684 1 priorità 1
42 5802963685 1 priorità 1
43 5803025107 1 priorità 1
44 5803025111 1 priorità 1
45 5803025112 1 priorità 1
46 5803025113 1 priorità 1
47 5803025114 1 priorità 1
48 5803025116 1 priorità 1
49 5803025117 1 priorità 1
50 5803025127 1 priorità 1
51 5803025130 1 priorità 1
52 5803025131 1 priorità 1
53 5803025134 1 priorità 1
54 5803025135 1 priorità 1
55 5803025136 1 priorità 1
56 5803025137 1 priorità 1
57 5803033719 1 priorità 1
58 5803034025 1 priorità 1
59 5803034029 1 priorità 1
60 5803034807 1 priorità 1
61 5803036737 1 priorità 1
62 5803041432 1 priorità 1
63 5803041433 1 priorità 1
64 5802850935 1 priorità 1
65 5802850936 1 priorità 1
66 5803025108 1 priorità 1
67 5803025109 1 priorità 1
68 5803025110 1 priorità 1
69 5803025115 1 priorità 1
70 5803025118 1 priorità 1
71 5803025132 1 priorità 1
72 5803025133 1 priorità 1
73 5803033717 1 priorità 1
74 5803034002 1 priorità 1
75 5803034005 1 priorità 1
76 5803034011 1 priorità 1
77 5803034015 1 priorità 1
78 5803034017 1 priorità 1
79 5803034020 1 priorità 1
80 5803034021 1 priorità 1
81 5803034022 1 priorità 1
82 5803034026 1 priorità 1
83 5803034027 1 priorità 1
84 5803034028 1 priorità 1
85 5803034770 1 priorità 1
86 5803034771 1 priorità 1
87 5803034772 1 priorità 1
88 5803036730 1 priorità 1
89 5803036731 1 priorità 1
90 5803036732 1 priorità 1
91 5803036733 1 priorità 1
92 5803036734 1 priorità 1
93 5803036735 1 priorità 1
94 5803036741 1 priorità 1
95 5803036742 1 priorità 1
96 5803036743 1 priorità 1
97 5803036744 1 priorità 1
98 5803036746 1 priorità 1
99 5803036747 1 priorità 1
100 5803036751 1 priorità 1
101 5803036753 1 priorità 1
102 5803041434 1 priorità 1
103 5803041435 1 priorità 1
104 5803048129 1 priorità 1
105 5803048130 1 priorità 1
106 5803041436 2 priorità 2
107 5803041437 2 priorità 2
108 5803036748 2 priorità 2
109 5803036749 2 priorità 2
110 5803034810 2 priorità 2
111 5803034811 2 priorità 2
112 5803101533 2 priorità 2
113 5803101535 2 priorità 2
114 5803101537 2 priorità 2
115 5803101538 2 priorità 2
116 5803108304 2 priorità 2
117 5803108310 2 priorità 2
118 5803101534 2 priorità 2
119 5803101536 2 priorità 2
120 5803033718 2 priorità 2
121 5803034812 2 priorità 2
122 5803034813 2 priorità 2
123 5803108305 2 priorità 2
124 5803108311 2 priorità 2
125 5803007806 2 priorità 2
126 5803007807 2 priorità 2
127 5803007808 2 priorità 2
128 5803034023 2 priorità 2
129 5803034024 2 priorità 2
130 5803101541 2 priorità 2
131 5803101542 2 priorità 2
132 5803034778 2 priorità 2
133 5803034780 2 priorità 2
134 5803037200 2 priorità 2
135 5803037201 2 priorità 2
136 5803104802 2 priorità 2
137 5803104803 2 priorità 2
138 5803104804 2 priorità 2
139 5803104806 2 priorità 2
140 5803104807 2 priorità 2
141 5803104808 2 priorità 2
142 5803025103 2 priorità 2
143 5803025105 2 priorità 2
144 5802815391 2 priorità 2
145 5802815400 2 priorità 2
146 5803047088 2 priorità 2
147 5803047079 2 priorità 2
148 5803047080 2 priorità 2
149 5803047095 2 priorità 2
150 5803047096 2 priorità 2
151 5803034808 2 priorità 2
152 5803034809 2 priorità 2
153 5803108365 2 priorità 2
154 5803108368 2 priorità 2
155 5803034007 2 priorità 2
156 5803034009 2 priorità 2
157 5803037202 2 priorità 2
158 5803037203 2 priorità 2
159 5803108366 2 priorità 2
160 5803108369 2 priorità 2
161 5803025123 2 priorità 2
162 5803025124 2 priorità 2
163 5803025125 2 priorità 2
164 5803025126 2 priorità 2
165 5803034773 2 priorità 2
166 5803033716 2 priorità 2
167 5803034013 2 priorità 2
168 5803025100 2 priorità 2
169 5803025101 2 priorità 2
170 5803047093 2 priorità 2
171 5803025099 2 priorità 2
172 5803025102 2 priorità 2
173 5803025104 2 priorità 2
174 5803025106 2 priorità 2
175 5803047087 2 priorità 2
176 5803047090 2 priorità 2
177 5803047092 2 priorità 2
178 5803025128 2 priorità 2
179 5803025129 2 priorità 2
180 5803047075 2 priorità 2
181 5803047076 2 priorità 2
182 5803034776 2 priorità 2
183 5803047073 2 priorità 2
184 5803047074 2 priorità 2
185 5803034774 2 priorità 2
186 5803036739 2 priorità 2
187 5803036740 2 priorità 2
188 5803047098 2 priorità 2
189 5803047099 2 priorità 2
190 5802815398 2 priorità 2
191 5803047091 2 priorità 2

View File

@ -0,0 +1,3 @@
codice_ricetta,codice_prodotto,cliente,descrizione,prova_tenuta_abilitata,prova_tenuta_abilitata_2,config_elettrovalvole,config_elettrovalvole_2,modello_etichetta
5802820548,5802820548,IVECO,Tubo doppio,x,x,0,1,EtichettaR5_Montaggio_2prove.prn
5802820549,5802820549,IVECO,Tubo singolo,x,,0,1,EtichettaR5_Montaggio.prn
1 codice_ricetta codice_prodotto cliente descrizione prova_tenuta_abilitata prova_tenuta_abilitata_2 config_elettrovalvole config_elettrovalvole_2 modello_etichetta
2 5802820548 5802820548 IVECO Tubo doppio x x 0 1 EtichettaR5_Montaggio_2prove.prn
3 5802820549 5802820549 IVECO Tubo singolo x 0 1 EtichettaR5_Montaggio.prn

View File

@ -1,4 +1,4 @@
codice_ricetta,cliente,codice_prodotto,descrizione,avvitatura_abilitata,viti,prova_tenuta_abilitata,tempo_riempimento,tempo_assestamento,percentuale_minima_pressione_assestamento,percentuale_massima_pressione_assestamento,tempo_di_test,pressione_di_test_delta_minimo,pressione_di_test,pressione_di_test_delta_massimo,tempo_svuotamento,pressione_svuotmento,stampa_etichetta_abilitata,modello_etichetta codice_ricetta,cliente,codice_prodotto,descrizione,avvitatura_abilitata,viti,prova_tenuta_abilitata,tempo_riempimento,tempo_assestamento,percentuale_minima_pressione_assestamento,percentuale_massima_pressione_assestamento,tempo_di_test,pressione_di_test_delta_minimo,pressione_di_test,pressione_di_test_delta_massimo,tempo_svuotamento,pressione_svuotamento,stampa_etichetta_abilitata,modello_etichetta
FUGA,,FUGA,Fuga calibrata,,,x,5,10,10,10,10,5,7000,5,1,100,x,ETA30x16.prn FUGA,,FUGA,Fuga calibrata,,,x,5,10,10,10,10,5,7000,5,1,100,x,ETA30x16.prn
R54080,IVECO,5802860939 R.03,Daily Himatic,,,x,5,5,10,10,5,30,5000,30,1,100,x,ETA30x16.prn R54080,IVECO,5802860939 R.03,Daily Himatic,,,x,5,5,10,10,5,30,5000,30,1,100,x,ETA30x16.prn
R54081,IVECO,5802831453 R.03,Daily Himatic,,,x,5,5,10,10,5,30,5000,30,1,100,x,ETA30x16.prn R54081,IVECO,5802831453 R.03,Daily Himatic,,,x,5,5,10,10,5,30,5000,30,1,100,x,ETA30x16.prn

1 codice_ricetta cliente codice_prodotto descrizione avvitatura_abilitata viti prova_tenuta_abilitata tempo_riempimento tempo_assestamento percentuale_minima_pressione_assestamento percentuale_massima_pressione_assestamento tempo_di_test pressione_di_test_delta_minimo pressione_di_test pressione_di_test_delta_massimo tempo_svuotamento pressione_svuotmento pressione_svuotamento stampa_etichetta_abilitata modello_etichetta
2 FUGA FUGA Fuga calibrata x 5 10 10 10 10 5 7000 5 1 100 x ETA30x16.prn
3 R54080 IVECO 5802860939 R.03 Daily Himatic x 5 5 10 10 5 30 5000 30 1 100 x ETA30x16.prn
4 R54081 IVECO 5802831453 R.03 Daily Himatic x 5 5 10 10 5 30 5000 30 1 100 x ETA30x16.prn

View File

@ -1,4 +1,4 @@
codice_ricetta,cliente,codice_prodotto,prova_tenuta_abilitata,tempo_riempimento,tempo_assestamento,percentuale_minima_pressione_assestamento,percentuale_massima_pressione_assestamento,tempo_di_test,pressione_di_test_delta_minimo,pressione_di_test,pressione_di_test_delta_massimo,tempo_svuotamento,pressione_svuotmento,stampa_etichetta_abilitata,modello_etichetta codice_ricetta,cliente,codice_prodotto,prova_tenuta_abilitata,tempo_riempimento,tempo_assestamento,percentuale_minima_pressione_assestamento,percentuale_massima_pressione_assestamento,tempo_di_test,pressione_di_test_delta_minimo,pressione_di_test,pressione_di_test_delta_massimo,tempo_svuotamento,pressione_svuotamento,stampa_etichetta_abilitata,modello_etichetta
5802831451,IVECO,5802831451 R.02,x,5,1,5,10,5,30,5000,0,1,100,x,ETA37x13.prn 5802831451,IVECO,5802831451 R.02,x,5,1,5,10,5,30,5000,0,1,100,x,ETA37x13.prn
5802831453,IVECO,5802831453 R.02,x,5,1,5,10,5,30,5000,0,1,100,x,ETA37x13.prn 5802831453,IVECO,5802831453 R.02,x,5,1,5,10,5,30,5000,0,1,100,x,ETA37x13.prn
5802860512,IVECO,5802860512 R.02,x,5,1,5,10,5,30,5000,0,1,100,x,ETA37x13.prn 5802860512,IVECO,5802860512 R.02,x,5,1,5,10,5,30,5000,0,1,100,x,ETA37x13.prn

1 codice_ricetta cliente codice_prodotto prova_tenuta_abilitata tempo_riempimento tempo_assestamento percentuale_minima_pressione_assestamento percentuale_massima_pressione_assestamento tempo_di_test pressione_di_test_delta_minimo pressione_di_test pressione_di_test_delta_massimo tempo_svuotamento pressione_svuotmento pressione_svuotamento stampa_etichetta_abilitata modello_etichetta
2 5802831451 IVECO 5802831451 R.02 x 5 1 5 10 5 30 5000 0 1 100 x ETA37x13.prn
3 5802831453 IVECO 5802831453 R.02 x 5 1 5 10 5 30 5000 0 1 100 x ETA37x13.prn
4 5802860512 IVECO 5802860512 R.02 x 5 1 5 10 5 30 5000 0 1 100 x ETA37x13.prn

View File

@ -1,4 +1,4 @@
pn,rc,cliente,codice_prodotto,prova_tenuta_abilitata,tempo_riempimento,tempo_assestamento,percentuale_minima_pressione_assestamento,percentuale_massima_pressione_assestamento,tempo_di_test,pressione_di_test_delta_minimo,pressione_di_test,pressione_di_test_delta_massimo,tempo_svuotamento,pressione_svuotmento,stampa_etichetta_abilitata,modello_etichetta pn,rc,cliente,codice_prodotto,prova_tenuta_abilitata,tempo_riempimento,tempo_assestamento,percentuale_minima_pressione_assestamento,percentuale_massima_pressione_assestamento,tempo_di_test,pressione_di_test_delta_minimo,pressione_di_test,pressione_di_test_delta_massimo,tempo_svuotamento,pressione_svuotamento,stampa_etichetta_abilitata,modello_etichetta
5802850925,5802850925,IVECO,j5802850925,x,5,10,10,10,10,30,5000,5,0,0,x,6 5802850925,5802850925,IVECO,j5802850925,x,5,10,10,10,10,30,5000,5,0,0,x,6
5802850926,5802850926,IVECO,j5802850926,x,5,10,10,10,10,30,5000,5,0,0,x,6 5802850926,5802850926,IVECO,j5802850926,x,5,10,10,10,10,30,5000,5,0,0,x,6
5802850929,5802850929,IVECO,j5802850929,x,5,10,10,10,10,30,5000,5,0,0,x,6 5802850929,5802850929,IVECO,j5802850929,x,5,10,10,10,10,30,5000,5,0,0,x,6

1 pn rc cliente codice_prodotto prova_tenuta_abilitata tempo_riempimento tempo_assestamento percentuale_minima_pressione_assestamento percentuale_massima_pressione_assestamento tempo_di_test pressione_di_test_delta_minimo pressione_di_test pressione_di_test_delta_massimo tempo_svuotamento pressione_svuotmento pressione_svuotamento stampa_etichetta_abilitata modello_etichetta modello_etichetta
2 5802850925 5802850925 IVECO j5802850925 x 5 10 10 10 10 30 5000 5 0 0 x 6
3 5802850926 5802850926 IVECO j5802850926 x 5 10 10 10 10 30 5000 5 0 0 x 6
4 5802850929 5802850929 IVECO j5802850929 x 5 10 10 10 10 30 5000 5 0 0 x 6

View File

@ -11,4 +11,5 @@ class Print_Step_Editor(Editor):
"labeltxt_3": self.labeltxt_3, "labeltxt_3": self.labeltxt_3,
"labeltxt_4": self.labeltxt_4, "labeltxt_4": self.labeltxt_4,
"labeltxt_5": self.labeltxt_5, "labeltxt_5": self.labeltxt_5,
"extra_label": self.extra_label,
}) })

View File

@ -75,13 +75,6 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="0">
<widget class="QLabel" name="label_34">
<property name="text">
<string>Campo testo 5</string>
</property>
</widget>
</item>
<item row="1" column="1"> <item row="1" column="1">
<widget class="QLineEdit" name="labeltxt_1"> <widget class="QLineEdit" name="labeltxt_1">
<property name="minimumSize"> <property name="minimumSize">
@ -132,6 +125,30 @@
</property> </property>
</widget> </widget>
</item> </item>
<item row="5" column="0">
<widget class="QLabel" name="label_35">
<property name="text">
<string>Campo testo 5</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_34">
<property name="text">
<string>Etichette supplementari</string>
</property>
</widget>
</item>
<item row="6" column="1">
<widget class="QLineEdit" name="extra_label">
<property name="minimumSize">
<size>
<width>200</width>
<height>0</height>
</size>
</property>
</widget>
</item>
</layout> </layout>
</widget> </widget>
</item> </item>

View File

@ -91,8 +91,8 @@ class Recipe_Selection(Widget):
"resistance": len(self.config.get("recipes_defaults", noner)["verifica_resistenza_connettore_abilitata"]) and "resistance" not in self.unsupported_steps, "resistance": len(self.config.get("recipes_defaults", noner)["verifica_resistenza_connettore_abilitata"]) and "resistance" not in self.unsupported_steps,
"screws": len(self.config.get("recipes_defaults", noner)["avvitatura_abilitata"]) and "screws" not in self.unsupported_steps, "screws": len(self.config.get("recipes_defaults", noner)["avvitatura_abilitata"]) and "screws" not in self.unsupported_steps,
"instruction": len(self.config.get("recipes_defaults", noner)["istruzione_abilitata"]) and "instruction" not in self.unsupported_steps, "instruction": len(self.config.get("recipes_defaults", noner)["istruzione_abilitata"]) and "instruction" not in self.unsupported_steps,
"leak_1": len(self.config.get("recipes_defaults", noner)["prova_tenuta_abilitata"]) and "leak" not in self.unsupported_steps, "leak_1": len(self.config.get("recipes_defaults", noner)["prova_tenuta_abilitata"]) and "leak_1" not in self.unsupported_steps,
"leak_2": len(self.config.get("recipes_defaults", noner)["prova_tenuta_abilitata_2"]) and "leak" not in self.unsupported_steps, "leak_2": len(self.config.get("recipes_defaults", noner)["prova_tenuta_abilitata_2"]) and "leak_2" not in self.unsupported_steps,
"vision": len(self.config.get("recipes_defaults", noner)["test_visione_abilitato"]) and "vision" not in self.unsupported_steps, "vision": len(self.config.get("recipes_defaults", noner)["test_visione_abilitato"]) and "vision" not in self.unsupported_steps,
"print": len(self.config.get("recipes_defaults", noner)["stampa_etichetta_abilitata"]) and "print" not in self.unsupported_steps, "print": len(self.config.get("recipes_defaults", noner)["stampa_etichetta_abilitata"]) and "print" not in self.unsupported_steps,
"step_editors": step_defaults, "step_editors": step_defaults,
@ -209,8 +209,8 @@ class Recipe_Selection(Widget):
}, },
"instruction": { "instruction": {
"num_tape": int(self.get_def(row,"numero nastri (n)")), "num_tape": int(self.get_def(row,"numero nastri (n)")),
"num_piece": int(self.get_def(row,"numero sensori anello (sa)")), "num_ring": int(self.get_def(row,"numero sensori anello (sa)")),
"num_ring": int(self.get_def(row,"numero sensori presenza (sp)")) "num_piece": int(self.get_def(row,"numero sensori presenza (sp)"))
}, },
"leak_1": { "leak_1": {
"pre_filling_time": int(row.get("tempo_pre_riempimento", defaults["tempo_pre_riempimento"])), "pre_filling_time": int(row.get("tempo_pre_riempimento", defaults["tempo_pre_riempimento"])),
@ -224,7 +224,7 @@ class Recipe_Selection(Widget):
"test_pressure": int(row.get("pressione_di_test", defaults["pressione_di_test"])), "test_pressure": int(row.get("pressione_di_test", defaults["pressione_di_test"])),
"test_pressure_max_delta": int(row.get("pressione_di_test_delta_massimo", defaults["pressione_di_test_delta_massimo"])), "test_pressure_max_delta": int(row.get("pressione_di_test_delta_massimo", defaults["pressione_di_test_delta_massimo"])),
"flush_time": int(row.get("tempo_svuotamento", defaults["tempo_svuotamento"])), "flush_time": int(row.get("tempo_svuotamento", defaults["tempo_svuotamento"])),
"flush_pressure": int(row.get("pressione_svuotmento", defaults["pressione_svuotmento"])), "flush_pressure": int(row.get("pressione_svuotamento", defaults["pressione_svuotamento"])),
"relay_config": int(row.get("config_elettrovalvole", defaults["config_elettrovalvole"])) "relay_config": int(row.get("config_elettrovalvole", defaults["config_elettrovalvole"]))
}, },
"leak_2": { "leak_2": {
@ -239,8 +239,8 @@ class Recipe_Selection(Widget):
"test_pressure": int(row.get("pressione_di_test_2", defaults["pressione_di_test_2"])), "test_pressure": int(row.get("pressione_di_test_2", defaults["pressione_di_test_2"])),
"test_pressure_max_delta": int(row.get("pressione_di_test_delta_massimo_2", defaults["pressione_di_test_delta_massimo_2"])), "test_pressure_max_delta": int(row.get("pressione_di_test_delta_massimo_2", defaults["pressione_di_test_delta_massimo_2"])),
"flush_time": int(row.get("tempo_svuotamento_2", defaults["tempo_svuotamento_2"])), "flush_time": int(row.get("tempo_svuotamento_2", defaults["tempo_svuotamento_2"])),
"flush_pressure": int(row.get("pressione_svuotmento_2", defaults["pressione_svuotmento_2"])), "flush_pressure": int(row.get("pressione_svuotamento_2", defaults["pressione_svuotamento_2"])),
"relay_config": int(row.get("config_elettrovalvole", defaults["config_elettrovalvole"])) "relay_config": int(row.get("config_elettrovalvole_2", defaults["config_elettrovalvole_2"]))
}, },
"vision": { "vision": {
"recipe": row.get("ricetta_visione", defaults["ricetta_visione"]), "recipe": row.get("ricetta_visione", defaults["ricetta_visione"]),
@ -252,6 +252,7 @@ class Recipe_Selection(Widget):
"labeltxt_3": row.get("testo_etich_3", ""), "labeltxt_3": row.get("testo_etich_3", ""),
"labeltxt_4": row.get("testo_etich_4", ""), "labeltxt_4": row.get("testo_etich_4", ""),
"labeltxt_5": row.get("testo_etich_5", ""), "labeltxt_5": row.get("testo_etich_5", ""),
"extra_label": row.get("etichette_supplementari", ""),
}, },
} }
@ -296,7 +297,8 @@ class Recipe_Selection(Widget):
recipe_is_new = True recipe_is_new = True
for step_name, step_spec in steps_specs.items(): for step_name, step_spec in steps_specs.items():
step = steps[step_name] step = steps[step_name]
step.type = re.sub(r"^(.*)_[0-9]+$", r"\1", step_name) #step.type = re.sub(r"^(.*)_[0-9]+$", r"\1", step_name)
step.type = step_name
step.spec = step_spec step.spec = step_spec
if recipe_is_new: if recipe_is_new:
step.save(force_insert=True) step.save(force_insert=True)
@ -312,8 +314,8 @@ class Recipe_Selection(Widget):
"resistance": len(row.get("verifica_resistenza_connettore_abilitata", defaults["verifica_resistenza_connettore_abilitata"])) and "resistance" not in self.unsupported_steps, "resistance": len(row.get("verifica_resistenza_connettore_abilitata", defaults["verifica_resistenza_connettore_abilitata"])) and "resistance" not in self.unsupported_steps,
"screws": len(row.get("avvitatura_abilitata", defaults["avvitatura_abilitata"])) and "screws" not in self.unsupported_steps, "screws": len(row.get("avvitatura_abilitata", defaults["avvitatura_abilitata"])) and "screws" not in self.unsupported_steps,
"instruction": len(row.get("istruzione_abilitata", defaults["istruzione_abilitata"])) and "instruction" not in self.unsupported_steps, "instruction": len(row.get("istruzione_abilitata", defaults["istruzione_abilitata"])) and "instruction" not in self.unsupported_steps,
"leak_1": len(row.get("prova_tenuta_abilitata", defaults["prova_tenuta_abilitata"])) and "leak" not in self.unsupported_steps, "leak_1": len(row.get("prova_tenuta_abilitata", defaults["prova_tenuta_abilitata"])) and "leak_1" not in self.unsupported_steps,
"leak_2": len(row.get("prova_tenuta_abilitata_2", defaults["prova_tenuta_abilitata_2"])) and "leak" not in self.unsupported_steps, "leak_2": len(row.get("prova_tenuta_abilitata_2", defaults["prova_tenuta_abilitata_2"])) and "leak_2" not in self.unsupported_steps,
"vision": len(row.get("test_visione_abilitato", defaults["test_visione_abilitato"])) and "vision" not in self.unsupported_steps, "vision": len(row.get("test_visione_abilitato", defaults["test_visione_abilitato"])) and "vision" not in self.unsupported_steps,
"print": len(row.get("stampa_etichetta_abilitata", defaults["stampa_etichetta_abilitata"])) and "print" not in self.unsupported_steps, "print": len(row.get("stampa_etichetta_abilitata", defaults["stampa_etichetta_abilitata"])) and "print" not in self.unsupported_steps,
"steps": [], # should be pks of the enabled steps "steps": [], # should be pks of the enabled steps
@ -392,7 +394,7 @@ class Recipe_Selection(Widget):
"pressione_di_test", "pressione_di_test",
"pressione_di_test_delta_massimo", "pressione_di_test_delta_massimo",
"tempo_svuotamento", "tempo_svuotamento",
"pressione_svuotmento", "pressione_svuotamento",
"prova_tenuta_abilitata_2", "prova_tenuta_abilitata_2",
"tempo_pre_riempimento_2", "tempo_pre_riempimento_2",
"pressione_pre_riempimento_2", "pressione_pre_riempimento_2",
@ -405,7 +407,7 @@ class Recipe_Selection(Widget):
"pressione_di_test_2", "pressione_di_test_2",
"pressione_di_test_delta_massimo_2", "pressione_di_test_delta_massimo_2",
"tempo_svuotamento_2", "tempo_svuotamento_2",
"pressione_svuotmento_2", "pressione_svuotamento_2",
"test_visione_abilitato", "test_visione_abilitato",
"ricetta_visione", "ricetta_visione",
"stampa_etichetta_abilitata", "stampa_etichetta_abilitata",
@ -442,7 +444,7 @@ class Recipe_Selection(Widget):
"pressione_di_test": steps["leak_1"].spec["test_pressure"], "pressione_di_test": steps["leak_1"].spec["test_pressure"],
"pressione_di_test_delta_massimo": steps["leak_1"].spec["test_pressure_max_delta"], "pressione_di_test_delta_massimo": steps["leak_1"].spec["test_pressure_max_delta"],
"tempo_svuotamento": steps["leak_1"].spec["flush_time"], "tempo_svuotamento": steps["leak_1"].spec["flush_time"],
"pressione_svuotmento": steps["leak_1"].spec["flush_pressure"], "pressione_svuotamento": steps["leak_1"].spec["flush_pressure"],
"prova_tenuta_abilitata_2": "x" if recipe.spec["leak_2"] else "", "prova_tenuta_abilitata_2": "x" if recipe.spec["leak_2"] else "",
"tempo_pre_riempimento_2": steps["leak_2"].spec["pre_filling_time"], "tempo_pre_riempimento_2": steps["leak_2"].spec["pre_filling_time"],
"pressione_pre_riempimento_2": steps["leak_2"].spec["pre_filling_pressure"], "pressione_pre_riempimento_2": steps["leak_2"].spec["pre_filling_pressure"],
@ -455,7 +457,7 @@ class Recipe_Selection(Widget):
"pressione_di_test_2": steps["leak_2"].spec["test_pressure"], "pressione_di_test_2": steps["leak_2"].spec["test_pressure"],
"pressione_di_test_delta_massimo_2": steps["leak_2"].spec["test_pressure_max_delta"], "pressione_di_test_delta_massimo_2": steps["leak_2"].spec["test_pressure_max_delta"],
"tempo_svuotamento_2": steps["leak_2"].spec["flush_time"], "tempo_svuotamento_2": steps["leak_2"].spec["flush_time"],
"pressione_svuotmento_2": steps["leak_2"].spec["flush_pressure"], "pressione_svuotamento_2": steps["leak_2"].spec["flush_pressure"],
"test_visione_abilitato": recipe.spec["vision"], "test_visione_abilitato": recipe.spec["vision"],
"ricetta_visione": steps["vision"].spec["recipe"], "ricetta_visione": steps["vision"].spec["recipe"],
"stampa_etichetta_abilitata": "x" if recipe.spec["print"] else "", "stampa_etichetta_abilitata": "x" if recipe.spec["print"] else "",

View File

@ -59,14 +59,14 @@ class Recipe_Spec_And_Step_Editor(Editor):
"tab": self.instruction_t, "tab": self.instruction_t,
}, },
"leak_1": { "leak_1": {
"type": "leak", "type": "leak_1",
"enable": self.leak_enabled_1_cb, "enable": self.leak_enabled_1_cb,
"widget": "leak_editor_1_w", "widget": "leak_editor_1_w",
"editor": Leak_Step_Editor(), "editor": Leak_Step_Editor(),
"tab": self.leak_1_t, "tab": self.leak_1_t,
}, },
"leak_2": { "leak_2": {
"type": "leak", "type": "leak_2",
"enable": self.leak_enabled_2_cb, "enable": self.leak_enabled_2_cb,
"widget": "leak_editor_2_w", "widget": "leak_editor_2_w",
"editor": Leak_Step_Editor(), "editor": Leak_Step_Editor(),

View File

@ -13,7 +13,8 @@ class Step_Spec_JEDECW(QPushButton, Cell):
def __init__(self, action=None, readonly=True, autocomplete=None, field_name=None, field_alias=None, field=None, row_number=None, crud=None): def __init__(self, action=None, readonly=True, autocomplete=None, field_name=None, field_alias=None, field=None, row_number=None, crud=None):
self.editors = { self.editors = {
"vision": Vision_Step_Editor(cell_widget=self), "vision": Vision_Step_Editor(cell_widget=self),
"leak": Leak_Step_Editor(cell_widget=self), "leak_1": Leak_Step_Editor(cell_widget=self),
"leak_2": Leak_Step_Editor(cell_widget=self),
} }
self.editor = None self.editor = None
self.editor_type = None self.editor_type = None
@ -75,7 +76,8 @@ class Steps_Management(Widget):
fields_aliases=crud_aliases, fields_aliases=crud_aliases,
autocomplete={ autocomplete={
"type": [ "type": [
"leak", "leak_1",
"leak_2",
"vision", "vision",
], ],
"spec": { "spec": {

View File

@ -56,7 +56,8 @@ class Test(Widget):
"instruction":{"digital_io"}, "instruction":{"digital_io"},
"screws": {"screwdriver", "tecna_t3", }, "screws": {"screwdriver", "tecna_t3", },
"resistance": {"multicomp", }, "resistance": {"multicomp", },
"leak": {"tecna_t3", }, "leak_1": {"tecna_t3", },
"leak_2": {"tecna_t3", },
"vision": {("uvc_camera", "galaxy_camera", ), "vision", "vision_saver", }, # "neo_pixels", }, "vision": {("uvc_camera", "galaxy_camera", ), "vision", "vision_saver", }, # "neo_pixels", },
"print": {"label_printer", }, "print": {"label_printer", },
} }
@ -84,8 +85,9 @@ class Test(Widget):
"done": Test_Assembly(img_path=self.select_step_img("success"), text=u"COLLAUDO COMPLETATO", widget=None), "done": Test_Assembly(img_path=self.select_step_img("success"), text=u"COLLAUDO COMPLETATO", widget=None),
"emergency": Test_Assembly(img_path=self.select_step_img("reset_emergency"), text=u"EMERGENZA INTERVENUTA - RIPRISTINARE PULSANTE E SELEZIONARE \"RESET EMERGENZA\" DAL MEN\u00d9 \"STRUMENTI\"", widget=None), "emergency": Test_Assembly(img_path=self.select_step_img("reset_emergency"), text=u"EMERGENZA INTERVENUTA - RIPRISTINARE PULSANTE E SELEZIONARE \"RESET EMERGENZA\" DAL MEN\u00d9 \"STRUMENTI\"", widget=None),
"fail": Test_Assembly(img_path=self.select_step_img("fail"), text=u"CICLO INTERROTTO, PREMERE CONTINUA PER COMINCIARE UN NUOVO CICLO", widget=Test_Fail()), "fail": Test_Assembly(img_path=self.select_step_img("fail"), text=u"CICLO INTERROTTO, PREMERE CONTINUA PER COMINCIARE UN NUOVO CICLO", widget=Test_Fail()),
"leak": Test_Assembly(img_path=None, text=None, widget=Test_Leak(components=self.components, recipe=self.recipe, step=self.step, pieces=self.pieces)), "leak_1": Test_Assembly(img_path=None, text=None, widget=Test_Leak(components=self.components, recipe=self.recipe, step=self.step, pieces=self.pieces)),
"instruction": Test_Assembly(img_path=None, text=u"ESEGUIRE LE OPERAZIONI DI MONTAGGIO INDICATE IN FIGURA", widget=Test_Instructions(components=self.components, recipe=self.recipe,bench_name=self.config.machine_id, step=self.step,run_once=True)), "leak_2": Test_Assembly(img_path=None, text=None, widget=Test_Leak(components=self.components, recipe=self.recipe, step=self.step, pieces=self.pieces)),
"instruction": Test_Assembly(img_path=None, text=u"ESEGUIRE LE OPERAZIONI DI MONTAGGIO INDICATE IN FIGURA", widget=Test_Instructions(components=self.components, recipe=self.recipe,bench_name=self.config.machine_id, step=self.step)),
"print": Test_Assembly(img_path=self.select_step_img("print"), text=u"STAMPA ETICHETTA IN CORSO", widget=None), "print": Test_Assembly(img_path=self.select_step_img("print"), text=u"STAMPA ETICHETTA IN CORSO", widget=None),
"resistance": Test_Assembly(img_path=None, text=u"COLLEGARE CONNETTORE ELETTRICO PER EFFETTUARE PROVA RESISTENZA", widget=Test_Resistance(components=self.components, recipe=self.recipe, step=self.step, pieces=self.pieces)), "resistance": Test_Assembly(img_path=None, text=u"COLLEGARE CONNETTORE ELETTRICO PER EFFETTUARE PROVA RESISTENZA", widget=Test_Resistance(components=self.components, recipe=self.recipe, step=self.step, pieces=self.pieces)),
"screws": Test_Assembly(img_path=None, text=u"AVVITARE TUTE LE VITI COME INDICATO", widget=Test_Screws(components=self.components, recipe=self.recipe, step=self.step, pieces=self.pieces)), "screws": Test_Assembly(img_path=None, text=u"AVVITARE TUTE LE VITI COME INDICATO", widget=Test_Screws(components=self.components, recipe=self.recipe, step=self.step, pieces=self.pieces)),
@ -356,7 +358,7 @@ class Test(Widget):
}), }),
] if "resistance" not in self.unsupported_steps else []), ] if "resistance" not in self.unsupported_steps else []),
*([ *([
Steps(type="leak", spec={ Steps(type="leak_1", spec={
"pre_filling_time": 0, "pre_filling_time": 0,
"pre_filling_pressure": 1000, "pre_filling_pressure": 1000,
"filling_time": 5, "filling_time": 5,
@ -371,9 +373,9 @@ class Test(Widget):
"flush_pressure": 100, "flush_pressure": 100,
"autotest": True, "autotest": True,
}), }),
] if "leak" not in self.unsupported_steps else []), ] if "leak_1" not in self.unsupported_steps else []),
*([ *([
Steps(type="leak", spec={ Steps(type="leak_1", spec={
"pre_filling_time": 0, "pre_filling_time": 0,
"pre_filling_pressure": 1000, "pre_filling_pressure": 1000,
"filling_time": 5, "filling_time": 5,
@ -388,7 +390,7 @@ class Test(Widget):
"flush_pressure": 100, "flush_pressure": 100,
"autotest": False, "autotest": False,
}), }),
] if "leak" not in self.unsupported_steps else []), ] if "leak_1" not in self.unsupported_steps else []),
Steps(type="done"), Steps(type="done"),
Steps(type="wait"), Steps(type="wait"),
] ]
@ -499,17 +501,23 @@ class Test(Widget):
self.log.info("cycle printed already compiled label") self.log.info("cycle printed already compiled label")
# LABEL PRINT # LABEL PRINT
recipe = archived.test_data.get("recipe", {}) recipe = archived.test_data.get("recipe", {})
leak_test_1 = archived.test_data.get("leak", {}).get("0", {}) leak_test_1 = archived.test_data.get("leak_1", {}).get("0", {})
leak_test_1_step = leak_test_1.get("step", {}) leak_test_1_step = leak_test_1.get("step", {})
leak_test_1_step_spec = leak_test_1_step.get("spec", {}) leak_test_1_step_spec = leak_test_1_step.get("spec", {})
leak_test_1_results = leak_test_1.get("results", {}) leak_test_1_results = leak_test_1.get("results", {})
leak_test_1_results_data = leak_test_1_results.get("data", {}) leak_test_1_results_data = leak_test_1_results.get("data", {})
leak_test_2 = archived.test_data.get("leak_2", {}).get("0", {}) leak_test_2 = archived.test_data.get("leak_2", {}).get("0", {})
leak_test_2_step = leak_test_1.get("step", {}) leak_test_2_step = leak_test_2.get("step", {})
leak_test_2_step_spec = leak_test_1_step.get("spec", {}) leak_test_2_step_spec = leak_test_2_step.get("spec", {})
leak_test_2_results = leak_test_1.get("results", {}) leak_test_2_results = leak_test_2.get("results", {})
leak_test_2_results_data = leak_test_1_results.get("data", {}) leak_test_2_results_data = leak_test_2_results.get("data", {})
printer_fields=self.step.spec
psetminp_a = leak_test_1_step_spec.get("test_pressure", 0) * (100+leak_test_1_step_spec.get("test_pressure_min_delta", 0)/100)
psetmaxp_a = leak_test_1_step_spec.get("settling_pressure_max_percent", 0) * (100+leak_test_1_step_spec.get("test_pressure_max_delta", 0)/100)
psetminp2_a = leak_test_2_step_spec.get("settling_pressure_min_percent", 0) * (100+leak_test_2_step_spec.get("test_pressure_min_delta", 0)/100)
psetmaxp2_a = leak_test_2_step_spec.get("settling_pressure_max_percent", 0) * (100+leak_test_2_step_spec.get("test_pressure_max_delta", 0)/100)
printer_fields = self.step.spec
context = { context = {
# RECIPE DATA # RECIPE DATA
"RECIPE": self.labellify(recipe.get("name", "-")), "RECIPE": self.labellify(recipe.get("name", "-")),
@ -520,13 +528,24 @@ class Test(Widget):
"PPREFILL": self.labellify(leak_test_1_step_spec.get("pre_filling_pressure", "-")), "PPREFILL": self.labellify(leak_test_1_step_spec.get("pre_filling_pressure", "-")),
"TFILL": self.labellify(leak_test_1_step_spec.get("filling_time", "-")), "TFILL": self.labellify(leak_test_1_step_spec.get("filling_time", "-")),
"TSET": self.labellify(leak_test_1_step_spec.get("settling_time", "-")), "TSET": self.labellify(leak_test_1_step_spec.get("settling_time", "-")),
"TPREFILL2": self.labellify(leak_test_2_step_spec.get("pre_filling_time", "-")),
"PPREFILL2": self.labellify(leak_test_2_step_spec.get("pre_filling_pressure", "-")),
"TFILL2": self.labellify(leak_test_2_step_spec.get("filling_time", "-")),
"TSET2": self.labellify(leak_test_2_step_spec.get("settling_time", "-")),
"PSETMINP": self.labellify(leak_test_1_step_spec.get("settling_pressure_min_percent", " -")), "PSETMINP": self.labellify(leak_test_1_step_spec.get("settling_pressure_min_percent", " -")),
"PSETMAXP": self.labellify(leak_test_1_step_spec.get("settling_pressure_max_percent", " -")), "PSETMAXP": self.labellify(leak_test_1_step_spec.get("settling_pressure_max_percent", " -")),
"PSETMINP2": self.labellify(leak_test_2_step_spec.get("settling_pressure_min_percent", " -")), "PSETMINP2": self.labellify(leak_test_2_step_spec.get("settling_pressure_min_percent", " -")),
"PSETMAXP2": self.labellify(leak_test_2_step_spec.get("settling_pressure_max_percent", " -")), "PSETMAXP2": self.labellify(leak_test_2_step_spec.get("settling_pressure_max_percent", " -")),
"PSETMINP_A": self.labellify(psetminp_a),
"PSETMAXP_A": self.labellify(psetmaxp_a),
"PSETMINP2_A": self.labellify(psetminp2_a),
"PSETMAXP2_A": self.labellify(psetmaxp2_a),
"TTEST": self.labellify(leak_test_1_step_spec.get("test_time", "-")), "TTEST": self.labellify(leak_test_1_step_spec.get("test_time", "-")),
"TTEST2": self.labellify(leak_test_2_step_spec.get("test_time", "-")),
"PMIN": self.labellify(leak_test_1_step_spec.get("test_pressure_min_delta", "-")), "PMIN": self.labellify(leak_test_1_step_spec.get("test_pressure_min_delta", "-")),
"PMIN2": self.labellify(leak_test_2_step_spec.get("test_pressure_min_delta", "-")),
"PTEST": self.labellify(leak_test_1_step_spec.get("test_pressure", "-")), "PTEST": self.labellify(leak_test_1_step_spec.get("test_pressure", "-")),
"PTEST2": self.labellify(leak_test_2_step_spec.get("test_pressure", "-")),
"PMAX": self.labellify(leak_test_1_step_spec.get("test_pressure_max_delta", "-")), "PMAX": self.labellify(leak_test_1_step_spec.get("test_pressure_max_delta", "-")),
"TFLUSH": self.labellify(leak_test_1_step_spec.get("flush_time", "-")), "TFLUSH": self.labellify(leak_test_1_step_spec.get("flush_time", "-")),
"PFLUSH": self.labellify(leak_test_1_step_spec.get("flush_pressure", "-")), "PFLUSH": self.labellify(leak_test_1_step_spec.get("flush_pressure", "-")),
@ -534,6 +553,7 @@ class Test(Widget):
"RESTPB": self.labellify(leak_test_1_results_data.get("Running test: phase backwards time", "-")), "RESTPB": self.labellify(leak_test_1_results_data.get("Running test: phase backwards time", "-")),
"RESPFILL": self.labellify(leak_test_1_results_data.get("Running test: filling pressure", "-")), "RESPFILL": self.labellify(leak_test_1_results_data.get("Running test: filling pressure", "-")),
"RESPSET": self.labellify(leak_test_1_results_data.get("Running test: pressure at the end of settling", "-")), "RESPSET": self.labellify(leak_test_1_results_data.get("Running test: pressure at the end of settling", "-")),
"RESPSET2": self.labellify(leak_test_2_results_data.get("Running test: pressure at the end of settling", "-")),
"RESPB": self.labellify(leak_test_1_results_data.get("Running test: burst pressure", "-")), "RESPB": self.labellify(leak_test_1_results_data.get("Running test: burst pressure", "-")),
"RESLEAK": self.labellify(leak_test_1_results_data.get("Running test: measured leak", "-")), "RESLEAK": self.labellify(leak_test_1_results_data.get("Running test: measured leak", "-")),
"RESLEAK2": self.labellify(leak_test_2_results_data.get("Running test: measured leak", "-")), "RESLEAK2": self.labellify(leak_test_2_results_data.get("Running test: measured leak", "-")),
@ -560,6 +580,8 @@ class Test(Widget):
"SHIFT": str(get_shift(archived.time)), "SHIFT": str(get_shift(archived.time)),
"STATION": str(self.config.machine_id), "STATION": str(self.config.machine_id),
"OPERATOR": str(archived.user.username), "OPERATOR": str(archived.user.username),
"BADGE_NUM": str(archived.user.badge_number),
# RESULT # RESULT
"RESULT": str("CONFORME" if leak_test_1_results.get("ok", False) else "SCARTO") + str(" FORZATO" if self.data.get("overridden", False) else ""), "RESULT": str("CONFORME" if leak_test_1_results.get("ok", False) else "SCARTO") + str(" FORZATO" if self.data.get("overridden", False) else ""),
"RESULT_L1": "ESITO" + str(" FORZATO" if self.data.get("overridden", False) else ""), "RESULT_L1": "ESITO" + str(" FORZATO" if self.data.get("overridden", False) else ""),
@ -576,6 +598,9 @@ class Test(Widget):
# PRINT EXTRA LABELS IF NEEDED # PRINT EXTRA LABELS IF NEEDED
if "extra_label_printer" in self.components.keys(): if "extra_label_printer" in self.components.keys():
self.components["extra_label_printer"].print_label(label, context=context) if len(printer_fields["extra_label"])>0:
labels=printer_fields["extra_label"].split(",")
for label in labels:
self.components["extra_label_printer"].print_label(f"{label}.prn", context=context)
self.log.info(f"cycle printed: {context!r}") self.log.info(f"cycle printed: {context!r}")
return compiled_label return compiled_label

View File

@ -25,7 +25,7 @@ class Test_Instructions(Test_Test):
self.layout = QVBoxLayout() self.layout = QVBoxLayout()
self.layout.addWidget(self.svg_widget) self.layout.addWidget(self.svg_widget)
self.svg_w.setLayout(self.layout) self.svg_w.setLayout(self.layout)
self.svg_path=os.path.join("config","instruction_images",self.bench_name,"")
self.timer = QTimer() self.timer = QTimer()
self.timer.timeout.connect(self.toggle_icons) self.timer.timeout.connect(self.toggle_icons)
@ -33,26 +33,34 @@ class Test_Instructions(Test_Test):
show = super().start(recipe=recipe, step=step) show = super().start(recipe=recipe, step=step)
ring_ids=[f"ring_{i+1}" for i in range(step.spec["num_ring"])] ring_ids=[f"ring_{i+1}" for i in range(step.spec["num_ring"])]
piece_ids=[f"piece_{i+1}" for i in range(step.spec["num_piece"])] piece_ids=[f"piece_{i+1}" for i in range(step.spec["num_piece"])]
tape_ids=[f"tape_{i+1}" for i in range(step.spec["num_tape"])]
self.ids=ring_ids+piece_ids self.ids=ring_ids+piece_ids
self.inputs= {idx: {"id":id,"status":False} for idx,id in enumerate(self.ids)} self.inputs= {idx: {"id":id,"status":False} for idx,id in enumerate(self.ids)}
self.tapes = {idx: {"id": id, "status": False} for idx, id in enumerate(tape_ids)}
self.timer.start(1000) self.timer.start(1000)
# setup test loop # setup test loop
self.get_connection = self.components["digital_io"].out.connect(self.get) self.get_connection = self.components["digital_io"].out.connect(self.get)
if step is not None: if step is not None:
svg_path=f"config/instruction_images/{self.bench_name}/{self.recipe}.svg" svg_path=f"{self.svg_path}{self.recipe}.svg"
if not os.path.exists(svg_path): if not os.path.exists(svg_path):
svg_path=f"config/instruction_images/{self.bench_name}/DEFAULT.svg" svg_path=f"{self.svg_path}DEFAULT.svg"
self.svg_root = etree.parse(svg_path) self.svg_root = etree.parse(svg_path)
self.svg_str = etree.tostring(self.svg_root) self.svg_str = etree.tostring(self.svg_root)
self.svg_str=etree.tostring(self.svg_root) self.svg_str=etree.tostring(self.svg_root)
self.done = False
return show return show
def toggle_icons(self): def toggle_icons(self):
self.flag = not self.flag self.flag = not self.flag
for idx,tape in self.tapes.items():
elem = self.svg_root.findall(f'''.//*[@id='{tape["id"]}']''')[0]
if self.flag:
self.show_tape(elem)
else:
self.hide_tape(elem)
for idx,input in self.inputs.items(): for idx,input in self.inputs.items():
elem = self.svg_root.findall(f'''.//*[@id='{input["id"]}']''')[0] elem = self.svg_root.findall(f'''.//*[@id='{input["id"]}']''')[0]
if input["status"]: if input["status"]:
@ -68,9 +76,9 @@ class Test_Instructions(Test_Test):
self.show_svg() self.show_svg()
def show_ok(self,id): def show_ok(self,id):
id.attrib["{http://www.w3.org/1999/xlink}href"]= "ok.png" id.attrib["{http://www.w3.org/1999/xlink}href"]= f"{self.svg_path}ok.png"
def show_ko(self,id): def show_ko(self,id):
id.attrib["{http://www.w3.org/1999/xlink}href"]= "arw-yel-down.png" id.attrib["{http://www.w3.org/1999/xlink}href"]= f"{self.svg_path}arw-yel-down.png"
def show_icon(self,id): def show_icon(self,id):
id.set("display", "inline") id.set("display", "inline")
@ -78,6 +86,13 @@ class Test_Instructions(Test_Test):
def hide_icon(self,id): def hide_icon(self,id):
id.set("display", "none") id.set("display", "none")
def show_tape(self,id):
id.attrib["{http://www.w3.org/1999/xlink}href"]= f"{self.svg_path}tape_black.png"
id.set("display", "inline")
def hide_tape(self,id):
id.set("display", "none")
def show_svg(self): def show_svg(self):
self.svg_str = etree.tostring(self.svg_root) self.svg_str = etree.tostring(self.svg_root)
self.svg_widget.load(self.svg_str) self.svg_widget.load(self.svg_str)
@ -93,10 +108,11 @@ class Test_Instructions(Test_Test):
#check if all sensor are ok #check if all sensor are ok
ok = True ok = True
if len(data[0]["digital_io"])==0:
return
for sensor_index,sensor in enumerate(self.ids): for sensor_index,sensor in enumerate(self.ids):
byte_idx=int(sensor_index/8) byte_idx=int(sensor_index/8)
bit_idx=sensor_index%8 bit_idx=sensor_index%8
if data[0]["digital_io"][byte_idx][bit_idx]: if data[0]["digital_io"][byte_idx][bit_idx]:
self.inputs[sensor_index]["status"]=True self.inputs[sensor_index]["status"]=True
else: else:

View File

@ -5,7 +5,7 @@ import weakref
from PyQt5.QtWidgets import QMessageBox from PyQt5.QtWidgets import QMessageBox
from ui.test_test import Test_Test from ui.test_test import Test_Test
from src.components.Automation.BDaq import ErrorCode from components.Automation.BDaq import ErrorCode
class Test_Leak(Test_Test): class Test_Leak(Test_Test):
def __init__(self, components=None, recipe=None, step=None, pieces=None, run_once=False, reset_on_start=True, enable_override=True): def __init__(self, components=None, recipe=None, step=None, pieces=None, run_once=False, reset_on_start=True, enable_override=True):
@ -32,19 +32,23 @@ class Test_Leak(Test_Test):
self.start_b.setEnabled(False) self.start_b.setEnabled(False)
self.stop_b.setEnabled(False) self.stop_b.setEnabled(False)
# SETUP RELAY # SETUP RELAY CONFIGURATION
if "digital_io" in self.components.keys(): if "digital_io" in self.components.keys():
if "relay_config" in step.spec.keys(): if "relay_config" in step.spec.keys():
relay_config = step.spec["relay_config"] relay_config = step.spec["relay_config"]
bits = [0, 0]
if relay_config == 1: if relay_config == 1:
ret=self.components["digital_io"].set_bit_verify(0, 0, 1) bits = [0,1]
else: if relay_config == 2:
ret=self.components["digital_io"].set_bit_verify(0, 0, 0) bits = [1,0]
ret=self.components["digital_io"].set_bit_verify(0, 0, bits[0])
ret=self.components["digital_io"].set_bit_verify(0, 1, bits[1])
if ret: if ret:
time.sleep(1) time.sleep(1)
# AUTO START SECOND TEST # AUTO START SECOND TEST
if relay_config == 1: if step.spec == "leak_2":
self.start_b.setEnabled(True) self.start_b.setEnabled(True)
self.start_b.click() self.start_b.click()
else: else:
@ -72,6 +76,7 @@ class Test_Leak(Test_Test):
super().get(None, override=override) super().get(None, override=override)
return return
data = data[-1] data = data[-1]
# TESTING # TESTING
if self.simulate: if self.simulate:
if self.step.spec.get("autotest", False) is not True: if self.step.spec.get("autotest", False) is not True:
@ -82,13 +87,18 @@ class Test_Leak(Test_Test):
data["tecna_t3"] = { data["tecna_t3"] = {
"Running test: result": "-----TESTING----- failed", "Running test: result": "-----TESTING----- failed",
} }
# /TESTING
if "Running test: result" in data["tecna_t3"]: if "Running test: result" in data["tecna_t3"]:
result = data["tecna_t3"]["Running test: result"] result = data["tecna_t3"]["Running test: result"]
if self.step.spec.get("autotest", False) is not True: if self.step.spec.get("autotest", False) is not True:
ok = type(result) is str and "passed" in result.lower() ok = type(result) is str and "passed" in result.lower()
else: else:
ok = type(result) is str and "failed" in result.lower() ok = type(result) is str and "failed" in result.lower()
# RESET RELAYS
ret = self.components["digital_io"].set_bit_verify(0, 0, 0)
ret = self.components["digital_io"].set_bit_verify(0, 1, 0)
else: else:
result = None result = None
ok = None ok = None
@ -139,7 +149,7 @@ class Test_Leak(Test_Test):
self.parent_assembly_widget().set_text(text="PROVA TENUTA IN CORSO") self.parent_assembly_widget().set_text(text="PROVA TENUTA IN CORSO")
else: else:
if self.parent_assembly_widget is not None: if self.parent_assembly_widget is not None:
self.parent_assembly_widget().set_text(text="AUTOTEST: PROVA TENUTA DI PROVA IN CORSO") self.parent_assembly_widget().set_text(text="AUTOTEST: PROVA TENUTA IN CORSO")
self.start_b.setEnabled(False) self.start_b.setEnabled(False)
self.stop_b.setEnabled(True) self.stop_b.setEnabled(True)
ok = data.get("results", {}).get("ok", None) ok = data.get("results", {}).get("ok", None)

View File

@ -47,6 +47,7 @@ class Users_Management(Widget):
"username": "Nome utente", "username": "Nome utente",
"password": "Password", "password": "Password",
"roles": "Ruoli", "roles": "Ruoli",
"badge_number": "Matricola",
} }
self.crud = Crud( self.crud = Crud(
"users", "users",