Merge remote-tracking branch 'origin/master'

This commit is contained in:
Guglielmi 2023-12-15 11:38:28 +01:00
commit 0d6d7761f1
152 changed files with 4186 additions and 1684 deletions

1
.gitignore vendored
View File

@ -17,3 +17,4 @@ __pycache__/
/venv*/
runme_custom.sh
runme_custom.bat
runme_custom_noautotest.bat

View File

@ -0,0 +1,238 @@
codice_ricetta,Priorita,Descrizione,etichette_supplementari,pressione_di_test_delta_massimo,pressione_di_test_delta_minimo
5803034806,1,,,30,30
5803037204,1,,,30,30
5803037206,1,,,30,30
5803037207,1,,,30,30
5803048121,1,,,30,30
5803048122,1,,,30,30
5803048123,1,,,30,30
5803048125,1,,RM2,30,30
5803048126,1,,MI2,30,30
5803048127,1,,"MI1,MI2",30,30
5803048128,1,,"RM1,RM2",30,30
5803048131,1,,"MI1,MI2",30,30
5803048132,1,,"RM1,RM2",30,30
5803098374,1,,,30,30
5803098375,1,,,30,30
5803119920,1,,,30,30
5803119921,1,,,30,30
5803119922,1,,,30,30
5803119923,1,,,30,30
5803119924,1,,,30,30
5803119925,1,,,30,30
5803119926,1,,,30,30
5803119927,1,,,30,30
5802850925,1,,"RM1,MI1",30,30
5802850926,1,,,20,20
5802850929,1,,,30,30
5802850932,1,,,30,30
5802850933,1,,,30,30
5802850941,1,,,30,30
5802963590,1,,,30,30
5802963591,1,,RB1,30,30
5802963593,1,,,30,30
5802963597,1,,,30,30
5802963598,1,,MB1,20,20
5802963599,1,,,30,30
5802963600,1,,,30,30
5802963679,1,,,30,30
5802963681,1,,,20,20
5802963683,1,,,30,30
5802963684,1,,,30,30
5802963685,1,,,30,30
5803025107,1,,"MI1,MI2",30,30
5803025111,1,,"MB1,MB2",30,30
5803025112,1,,"RB1,RB2",30,30
5803025113,1,,"MI1,MI2",30,30
5803025114,1,,"RM1,RM2",30,30
5803025116,1,,"MI1,MI2",30,30
5803025117,1,,"RM1,RM2",30,30
5803025127,1,,"MI1,MI2",30,30
5803025130,1,,,30,30
5803025131,1,,,30,30
5803025134,1,,,30,30
5803025135,1,,,30,30
5803025136,1,,,30,30
5803025137,1,,,30,30
5803033719,1,,"MI1,MI2",30,30
5803034025,1,,"RM1,RM2",30,30
5803034029,1,,,30,30
5803034807,1,,"RM1,RM2",30,30
5803036737,1,,,30,30
5803041432,1,,,30,30
5803041433,1,,,30,30
5802850935,1,,,30,30
5802850936,1,,,30,30
5803025108,1,,"RM1,RM2",30,30
5803025109,1,,MI2,30,30
5803025110,1,,RM2,30,30
5803025115,1,,MB2,30,30
5803025118,1,,RB2,30,30
5803025132,1,,,30,30
5803025133,1,,,30,30
5803033717,1,,MI1,30,30
5803034002,1,,,30,30
5803034005,1,,,30,30
5803034011,1,,,30,30
5803034015,1,,RM1,30,30
5803034017,1,,MB2,30,30
5803034020,1,,,30,30
5803034021,1,,,30,30
5803034022,1,,,30,30
5803034026,1,,"RB1,RB2",30,30
5803034027,1,,MB2,30,30
5803034028,1,,RB2,30,30
5803034770,1,,,30,30
5803034771,1,,,30,30
5803034772,1,,"MB1,MB2",30,30
5803036730,1,,RB2,30,30
5803036731,1,,"RM1,RM2",30,30
5803036732,1,,MI2,30,30
5803036733,1,,RM2,30,30
5803036734,1,,MB2,30,30
5803036735,1,,RB2,30,30
5803036741,1,,MI1,30,30
5803036742,1,,RM1,30,30
5803036743,1,,MI1,30,30
5803036744,1,,RM1,30,30
5803036746,1,,RB1,30,30
5803036747,1,,MB1,30,30
5803036751,1,,,30,30
5803036753,1,,,30,30
5803041434,1,,MB1,30,30
5803041435,1,,RB1,30,30
5803048129,1,,MI2,30,30
5803048130,1,,RM2,30,30
5803041436,2,,RM2,30,30
5803041437,2,,MI2,30,30
5803036748,2,,MI2,30,30
5803036749,2,,RM2,30,30
5803034810,2,,MI1,30,30
5803034811,2,,RM1,30,30
5803101533,2,,"RM1,RM2",30,30
5803101535,2,,"MI1,MI2",30,30
5803101537,2,,RM1,30,30
5803101538,2,,MI1,30,30
5803108304,2,,,30,30
5803108310,2,,,30,30
5803101534,2,,RM2,30,30
5803101536,2,,MI2,30,30
5803033718,2,,,30,30
5803034812,2,,,30,30
5803034813,2,,,30,30
5803108305,2,,,30,30
5803108311,2,,,30,30
5803007806,2,,,30,30
5803007807,2,,,30,30
5803007808,2,,,30,30
5803034023,2,,RM1,30,30
5803034024,2,,MI1,30,30
5803101541,2,,RM1,30,30
5803101542,2,,MI1,30,30
5803034778,2,,MB2,30,30
5803034780,2,,RB2,30,30
5803037200,2,,RM1,30,30
5803037201,2,,MI1,30,30
5803104802,2,,,30,30
5803104803,2,,,30,30
5803104804,2,,,30,30
5803104806,2,,,30,30
5803104807,2,,,30,30
5803104808,2,,,30,30
5803025103,2,,MB2,30,30
5803025105,2,,RB2,30,30
5802815391,2,,,30,30
5802815400,2,,,30,30
5803047088,2,,MB2,30,30
5803047079,2,,MB2,30,30
5803047080,2,,RB2,30,30
5803047095,2,,MB2,30,30
5803047096,2,,RB2,30,30
5803034808,2,,"MI1,MI2",30,30
5803034809,2,,"RM1,RM2",30,30
5803108365,2,,,30,30
5803108368,2,,,30,30
5803034007,2,,,30,30
5803034009,2,,,30,30
5803037202,2,,,30,30
5803037203,2,,,30,30
5803108366,2,,,30,30
5803108369,2,,,30,30
5803025123,2,,"MI1,MI2",30,30
5803025124,2,,"RM1,RM2",30,30
5803025125,2,,MI1,30,30
5803025126,2,,RM1,30,30
5803034773,2,,RM1,30,30
5803033716,2,,RM1,30,30
5803034013,2,,MI1,30,30
5803025100,2,,"MI1,MI2",30,30
5803025101,2,,"RB1,RB2",30,30
5803047093,2,,"MB1,MB2",30,30
5803025099,2,,"MB1,MB2",30,30
5803025102,2,,"RM1,RM2",30,30
5803025104,2,,"MI1,MI2",30,30
5803025106,2,,"RM1,RM2",30,30
5803047087,2,,"MI1,MI2",30,30
5803047090,2,,"RM1,RM2",30,30
5803047092,2,,"MI1,MI2",30,30
5803025128,2,,,30,30
5803025129,2,,,30,30
5803047075,2,,RM2,30,30
5803047076,2,,MI2,30,30
5803034776,2,,,30,30
5803047073,2,,RM1,30,30
5803047074,2,,MI1,30,30
5803034774,2,,MI1,30,30
5803036739,2,,MI1,30,30
5803036740,2,,RM1,30,30
5803047098,2,,,30,30
5803047099,2,,,30,30
5802815398,2,,,30,30
5803047091,2,,RB2,30,30
5803223729,3,priorita 3,MI2,30,30
5803223730,3,priorita 3,"MI1,MI2",30,30
5803223731,3,priorita 3,MB2,30,30
5803223732,3,priorita 3,"RM1,RM2",30,30
5803223733,3,priorita 3,RM2,30,30
5803223734,3,priorita 3,RB2,30,30
5803223735,3,priorita 3,,30,30
5803223736,3,priorita 3,,30,30
5803223737,3,priorita 3,,30,30
5803223738,3,priorita 3,,30,30
5803223739,3,priorita 3,,30,30
5803223740,3,priorita 3,,30,30
5803223741,3,priorita 3,,30,30
5803223742,3,priorita 3,,30,30
5803223743,3,priorita 3,,30,30
5803223744,3,priorita 3,,30,30
5803223745,3,priorita 3,,30,30
5803223746,3,priorita 3,RM2,30,30
5803223747,3,priorita 3,MI2,30,30
5803223748,3,priorita 3,"RM1,RM2",30,30
5803223749,3,priorita 3,"MI1,MI2",30,30
5803223750,3,priorita 3,RB2,30,30
5803223751,3,priorita 3,MB2,30,30
5803223752,3,priorita 3,RM2,30,30
5803223753,3,priorita 3,MI2,30,30
5803120372,3,priorita 3,RB2,30,30
5803120373,3,priorita 3,MB2,30,30
5803120374,3,priorita 3,,30,30
5803120375,3,priorita 3,,30,30
5803101543,3,priorita 3,MI1,30,30
5803101544,3,priorita 3,RM1,30,30
5803101545,3,priorita 3,"RM1,RM2",30,30
5803101546,3,priorita 3,"MI1,MI2",30,30
5803101547,3,priorita 3,,30,30
5803223754,3,priorita 3,,30,30
5803223755,3,priorita 3,,30,30
5803120371,3,priorita 3,,30,30
5803228584,3,priorita 3,,30,30
5803228585,3,priorita 3,,30,30
5803236684,4,priorita 4,,30,30
5803236685,4,priorita 4,,30,30
5803229237,5,priorita 5,RB1,30,30
5803229239,5,priorita 5,MB1,30,30
5803229240,5,priorita 5,RM2,30,30
5803229242,5,priorita 5,MI2,30,30
5803229244,5,priorita 5,"RB1,RB2",30,30
5803229245,5,priorita 5,"MB1,MB2",30,30
1 codice_ricetta Priorita Descrizione etichette_supplementari pressione_di_test_delta_massimo pressione_di_test_delta_minimo
2 5803034806 1 30 30
3 5803037204 1 30 30
4 5803037206 1 30 30
5 5803037207 1 30 30
6 5803048121 1 30 30
7 5803048122 1 30 30
8 5803048123 1 30 30
9 5803048125 1 RM2 30 30
10 5803048126 1 MI2 30 30
11 5803048127 1 MI1,MI2 30 30
12 5803048128 1 RM1,RM2 30 30
13 5803048131 1 MI1,MI2 30 30
14 5803048132 1 RM1,RM2 30 30
15 5803098374 1 30 30
16 5803098375 1 30 30
17 5803119920 1 30 30
18 5803119921 1 30 30
19 5803119922 1 30 30
20 5803119923 1 30 30
21 5803119924 1 30 30
22 5803119925 1 30 30
23 5803119926 1 30 30
24 5803119927 1 30 30
25 5802850925 1 RM1,MI1 30 30
26 5802850926 1 20 20
27 5802850929 1 30 30
28 5802850932 1 30 30
29 5802850933 1 30 30
30 5802850941 1 30 30
31 5802963590 1 30 30
32 5802963591 1 RB1 30 30
33 5802963593 1 30 30
34 5802963597 1 30 30
35 5802963598 1 MB1 20 20
36 5802963599 1 30 30
37 5802963600 1 30 30
38 5802963679 1 30 30
39 5802963681 1 20 20
40 5802963683 1 30 30
41 5802963684 1 30 30
42 5802963685 1 30 30
43 5803025107 1 MI1,MI2 30 30
44 5803025111 1 MB1,MB2 30 30
45 5803025112 1 RB1,RB2 30 30
46 5803025113 1 MI1,MI2 30 30
47 5803025114 1 RM1,RM2 30 30
48 5803025116 1 MI1,MI2 30 30
49 5803025117 1 RM1,RM2 30 30
50 5803025127 1 MI1,MI2 30 30
51 5803025130 1 30 30
52 5803025131 1 30 30
53 5803025134 1 30 30
54 5803025135 1 30 30
55 5803025136 1 30 30
56 5803025137 1 30 30
57 5803033719 1 MI1,MI2 30 30
58 5803034025 1 RM1,RM2 30 30
59 5803034029 1 30 30
60 5803034807 1 RM1,RM2 30 30
61 5803036737 1 30 30
62 5803041432 1 30 30
63 5803041433 1 30 30
64 5802850935 1 30 30
65 5802850936 1 30 30
66 5803025108 1 RM1,RM2 30 30
67 5803025109 1 MI2 30 30
68 5803025110 1 RM2 30 30
69 5803025115 1 MB2 30 30
70 5803025118 1 RB2 30 30
71 5803025132 1 30 30
72 5803025133 1 30 30
73 5803033717 1 MI1 30 30
74 5803034002 1 30 30
75 5803034005 1 30 30
76 5803034011 1 30 30
77 5803034015 1 RM1 30 30
78 5803034017 1 MB2 30 30
79 5803034020 1 30 30
80 5803034021 1 30 30
81 5803034022 1 30 30
82 5803034026 1 RB1,RB2 30 30
83 5803034027 1 MB2 30 30
84 5803034028 1 RB2 30 30
85 5803034770 1 30 30
86 5803034771 1 30 30
87 5803034772 1 MB1,MB2 30 30
88 5803036730 1 RB2 30 30
89 5803036731 1 RM1,RM2 30 30
90 5803036732 1 MI2 30 30
91 5803036733 1 RM2 30 30
92 5803036734 1 MB2 30 30
93 5803036735 1 RB2 30 30
94 5803036741 1 MI1 30 30
95 5803036742 1 RM1 30 30
96 5803036743 1 MI1 30 30
97 5803036744 1 RM1 30 30
98 5803036746 1 RB1 30 30
99 5803036747 1 MB1 30 30
100 5803036751 1 30 30
101 5803036753 1 30 30
102 5803041434 1 MB1 30 30
103 5803041435 1 RB1 30 30
104 5803048129 1 MI2 30 30
105 5803048130 1 RM2 30 30
106 5803041436 2 RM2 30 30
107 5803041437 2 MI2 30 30
108 5803036748 2 MI2 30 30
109 5803036749 2 RM2 30 30
110 5803034810 2 MI1 30 30
111 5803034811 2 RM1 30 30
112 5803101533 2 RM1,RM2 30 30
113 5803101535 2 MI1,MI2 30 30
114 5803101537 2 RM1 30 30
115 5803101538 2 MI1 30 30
116 5803108304 2 30 30
117 5803108310 2 30 30
118 5803101534 2 RM2 30 30
119 5803101536 2 MI2 30 30
120 5803033718 2 30 30
121 5803034812 2 30 30
122 5803034813 2 30 30
123 5803108305 2 30 30
124 5803108311 2 30 30
125 5803007806 2 30 30
126 5803007807 2 30 30
127 5803007808 2 30 30
128 5803034023 2 RM1 30 30
129 5803034024 2 MI1 30 30
130 5803101541 2 RM1 30 30
131 5803101542 2 MI1 30 30
132 5803034778 2 MB2 30 30
133 5803034780 2 RB2 30 30
134 5803037200 2 RM1 30 30
135 5803037201 2 MI1 30 30
136 5803104802 2 30 30
137 5803104803 2 30 30
138 5803104804 2 30 30
139 5803104806 2 30 30
140 5803104807 2 30 30
141 5803104808 2 30 30
142 5803025103 2 MB2 30 30
143 5803025105 2 RB2 30 30
144 5802815391 2 30 30
145 5802815400 2 30 30
146 5803047088 2 MB2 30 30
147 5803047079 2 MB2 30 30
148 5803047080 2 RB2 30 30
149 5803047095 2 MB2 30 30
150 5803047096 2 RB2 30 30
151 5803034808 2 MI1,MI2 30 30
152 5803034809 2 RM1,RM2 30 30
153 5803108365 2 30 30
154 5803108368 2 30 30
155 5803034007 2 30 30
156 5803034009 2 30 30
157 5803037202 2 30 30
158 5803037203 2 30 30
159 5803108366 2 30 30
160 5803108369 2 30 30
161 5803025123 2 MI1,MI2 30 30
162 5803025124 2 RM1,RM2 30 30
163 5803025125 2 MI1 30 30
164 5803025126 2 RM1 30 30
165 5803034773 2 RM1 30 30
166 5803033716 2 RM1 30 30
167 5803034013 2 MI1 30 30
168 5803025100 2 MI1,MI2 30 30
169 5803025101 2 RB1,RB2 30 30
170 5803047093 2 MB1,MB2 30 30
171 5803025099 2 MB1,MB2 30 30
172 5803025102 2 RM1,RM2 30 30
173 5803025104 2 MI1,MI2 30 30
174 5803025106 2 RM1,RM2 30 30
175 5803047087 2 MI1,MI2 30 30
176 5803047090 2 RM1,RM2 30 30
177 5803047092 2 MI1,MI2 30 30
178 5803025128 2 30 30
179 5803025129 2 30 30
180 5803047075 2 RM2 30 30
181 5803047076 2 MI2 30 30
182 5803034776 2 30 30
183 5803047073 2 RM1 30 30
184 5803047074 2 MI1 30 30
185 5803034774 2 MI1 30 30
186 5803036739 2 MI1 30 30
187 5803036740 2 RM1 30 30
188 5803047098 2 30 30
189 5803047099 2 30 30
190 5802815398 2 30 30
191 5803047091 2 RB2 30 30
192 5803223729 3 priorita 3 MI2 30 30
193 5803223730 3 priorita 3 MI1,MI2 30 30
194 5803223731 3 priorita 3 MB2 30 30
195 5803223732 3 priorita 3 RM1,RM2 30 30
196 5803223733 3 priorita 3 RM2 30 30
197 5803223734 3 priorita 3 RB2 30 30
198 5803223735 3 priorita 3 30 30
199 5803223736 3 priorita 3 30 30
200 5803223737 3 priorita 3 30 30
201 5803223738 3 priorita 3 30 30
202 5803223739 3 priorita 3 30 30
203 5803223740 3 priorita 3 30 30
204 5803223741 3 priorita 3 30 30
205 5803223742 3 priorita 3 30 30
206 5803223743 3 priorita 3 30 30
207 5803223744 3 priorita 3 30 30
208 5803223745 3 priorita 3 30 30
209 5803223746 3 priorita 3 RM2 30 30
210 5803223747 3 priorita 3 MI2 30 30
211 5803223748 3 priorita 3 RM1,RM2 30 30
212 5803223749 3 priorita 3 MI1,MI2 30 30
213 5803223750 3 priorita 3 RB2 30 30
214 5803223751 3 priorita 3 MB2 30 30
215 5803223752 3 priorita 3 RM2 30 30
216 5803223753 3 priorita 3 MI2 30 30
217 5803120372 3 priorita 3 RB2 30 30
218 5803120373 3 priorita 3 MB2 30 30
219 5803120374 3 priorita 3 30 30
220 5803120375 3 priorita 3 30 30
221 5803101543 3 priorita 3 MI1 30 30
222 5803101544 3 priorita 3 RM1 30 30
223 5803101545 3 priorita 3 RM1,RM2 30 30
224 5803101546 3 priorita 3 MI1,MI2 30 30
225 5803101547 3 priorita 3 30 30
226 5803223754 3 priorita 3 30 30
227 5803223755 3 priorita 3 30 30
228 5803120371 3 priorita 3 30 30
229 5803228584 3 priorita 3 30 30
230 5803228585 3 priorita 3 30 30
231 5803236684 4 priorita 4 30 30
232 5803236685 4 priorita 4 30 30
233 5803229237 5 priorita 5 RB1 30 30
234 5803229239 5 priorita 5 MB1 30 30
235 5803229240 5 priorita 5 RM2 30 30
236 5803229242 5 priorita 5 MI2 30 30
237 5803229244 5 priorita 5 RB1,RB2 30 30
238 5803229245 5 priorita 5 MB1,MB2 30 30

View File

@ -0,0 +1,165 @@
codice_ricetta,cliente,codice_prodotto,descrizione,pressione_di_test,pressione_di_test_delta_minimo,pressione_di_test_delta_massimo,tempo_riempimento,tempo_assestamento,tempo_di_test
5802011947,fpt,5802011947,5802011947.dsg,2000,10,10,10,10,10
5801970021,lancia bolzano,5801970021,5801970021.dsg,8000,10,10,10,10,10
5802401058,FPT,5802401058,5802401058.dsg,2000,10,10,05,20,10
579970919,iveco magirus,579970919,579970919.dsg,8000,20,20,10,10,10
5801404429,fpt,5801404429,5801404429.dsg,2000,10,10,10,10,10
5802108501,bolzano,5802108501,5802108501.dsg,8000,10,10,10,10,10
5801871355,fpt,5801871355,test sonda 6 (2).dsg,2000,10,10,10,10,10
5802195437,fpt,5802195437,5802195437.dsg,2000,10,10,10,10,10
5802990922,cnh,5802990922,5802990922.dsg,10000,30,30,5,5,10
5802754975,fpt,5802754975,5802754975.dsg,6000,30,30,10,10,10
5802506048,fpt,5802506048,5802506048.dsg,2000,20,20,10,20,40
5802772050,IVECO,5802772050,5802772050.dsg,10000,20,20,10,20,10
5802401142,FPT,5802401142,5802401142.dsg,2000,10,10,10,10,10
5801684362,fpt,5801684362,5801684362.dsg,2000,10,10,10,10,10
5802362033,fpt,5802362033,5802362033.dsg,2000,10,10,10,10,10
5801684373,fpt,5801684373,5801684373.dsg,2000,10,10,10,10,10
5801592607,fpt,5801592607,5801592607.dsg,2000,10,10,10,10,10
8051475,fpt,8051475,8051475.dsg,2000,10,10,10,10,10
5801779216,fpt,5801779216,5801779216.dsg,6000,30,30,05,05,20
5802731910,lancia bolzano,5802731910,5802731910.dsg,8000,10,10,10,10,10
5802108503,bolzano,5802108503,5802108503.dsg,8000,10,10,10,10,10
5801869611,fpt,5801869611,5801869611.dsg,6000,30,30,05,05,20
504291549,bolzano,504291549,504291549.dsg,8000,10,10,10,10,10
16L0001CP,fpt,16L0001CP,16L0001CP mc laren.dsg,1000,10,10,10,10,10
504354068,fpt,504354068,504354068.dsg,2000,10,10,10,10,10
5801588455,fpt,5801588455,5801588455.dsg,2000,10,10,10,10,10
5802517329,fpt,5802517329,5802517329.dsg,2000,30,30,05,10,10
5802899148,fpt,5802899148,5802899148.dsg,2000,10,10,10,20,99
5803012719,cnh,5803012719,5803012719.dsg,10000,30,30,5,5,10
TGA001EL,VANHOOL,TGA001EL,TGA001EL.dsg,120000,30,30,10,15,10
5801667698,fpt,5801667698,5801667698.dsg,2000,10,10,10,10,10
5802011985,fpt,5802011985,5802011985.dsg,2000,10,10,10,10,10
504126998,bolzano,504126998,504126998.dsg,8000,10,10,10,10,10
5801636013,fpt,5801636013,5801636013.dsg,2000,10,10,10,10,10
5802200725,CNH,5802200725,5802200725.dsg,3000,30,30,10,10,40
504049840,lancia bolzano,504049840,504049840.dsg,8000,10,10,10,10,10
5801970066,bolzano,5801970066,5801970066.dsg,8000,10,10,10,10,10
5802093875,FPT,5802093875,5802093875.dsg,2000,10,10,10,10,10
5801368939,fpt,5801368939,5801368939.dsg,2000,10,10,10,10,10
5802195441,fpt,5802195441,5802195441.dsg,2000,10,10,10,10,10
003934,dts,003934,003934.dsg,2000,10,10,10,10,10
5802093832,FPT,5802093832,5802093832.dsg,2000,10,10,10,10,10
5802422752,fpt,5802422752,5802422752.dsg,2000,10,10,05,20,10
5801632026,FPT,5801632026,5801632026.dsg,2000,10,10,10,10,10
5801404445,fpt,5801404445,5801404445.dsg,2000,10,10,10,10,10
5801970064,bolzano,5801970064,5801970064.dsg,8000,10,10,10,10,10
5801615767,irisbus,5801615767,5801615767.dsg,10000,10,10,10,10,10
5006217212,IVECO CDR,5006217212,5006217212 IVECO CDR.dsg,10000,20,20,10,10,10
5801664502,fpt,5801664502,5801664502.dsg,2000,10,10,10,10,07
5801871355,fpt,5801871355,TEST.dsg,2000,10,10,10,10,10
5802457210,heuliez bus,5802457210,5802457210.dsg,10000,10,10,10,10,10
5801541811,fpt,5801541811,5801541811.dsg,2000,10,10,10,10,10
5802011990,fpt,5802011990,5802011990.dsg,2000,10,10,10,10,10
5801970067,bolzano,5801970067,5801970067.dsg,8000,10,10,10,10,10
5802772051,IVECO,5802772051,5802772051.dsg,10000,20,20,10,20,10
5802832212,fpt,5802832212,5802832212.dsg,2000,10,10,10,20,40
504354067,fpt,504354067,504354067.dsg,2000,10,10,10,10,10
5801565620,fpt,5801565620,5801565620.dsg,2000,10,10,10,10,10
5801565599,fpt,5801565599,5801565599.dsg,2000,10,10,10,10,10
5803012724,cnh,5803012724,5803012724.dsg,10000,30,30,5,5,10
504321531,bolzano,504321531,504321531.dsg,8000,10,10,10,10,10
5802771992,IVECO,5802771992,5802771992.dsg,10000,20,20,05,10,10
5802753762,fpt,5802753762,5802753762.dsg,2000,10,10,10,20,60
5802729983,lancia bolzano,5802729983,5802729983.dsg,8000,10,10,10,10,10
5801592617,fpt,5801592617,5801592617.dsg,2000,10,10,10,10,10
5801501533,fpt,5801501533,5801501533.dsg,2000,10,10,10,10,10
579970920,iveco magirus,579970920,579970920.dsg,8000,20,20,10,10,10
5801869610,fpt,5801869610,5801869610.dsg,6000,30,30,05,05,20
5801666343,fpt,5801666343,5801666343.dsg,2000,10,10,10,10,10
5801616061,irisbus,5801616061,5801616061.dsg,10000,10,10,10,10,10
5006217211,IVECO CDR,5006217211,5006217211 IVECO CDR.dsg,10000,20,20,10,10,10
5802362019,fpt,5802362019,5802362019.dsg,2000,10,10,10,10,10
504385052,fpt,504385052,504385052.dsg,10000,10,10,10,10,10
5802991065,cnh,5802991065,5802991065.dsg,10000,30,30,5,5,10
5801821750,fpt,5801821750,5801821750.dsg,2000,10,10,10,10,10
5802282454,fpt,5802282454,5802282454.dsg,2000,10,10,10,20,20
5802771977,IVECO,5802771977,5802771977.dsg,10000,20,20,05,10,10
5801970018,lancia bolzano,5801970018,5801970018.dsg,8000,10,10,10,10,10
60192054,lancia,60192054,60192054.dsg,8000,10,10,10,10,10
5802991066,cnh,5802991066,5802991066.dsg,10000,30,30,5,5,10
5801384839,lancia bolzano,5801384839,5801384839.dsg,8000,10,10,10,10,10
5801384838,lancia bolzano,5801384838,5801384838.dsg,8000,10,10,10,10,10
5802912912,fpt,5802912912,5802912912.dsg,2000,10,10,10,20,60
5802399858,fpt,5802399858,5802399858.dsg,2000,10,10,05,20,10
5801615766,irisbus,5801615766,5801615766.dsg,10000,10,10,10,10,10
5801636018,fpt,5801636018,5801636018.dsg,2000,10,10,10,10,10
5802170804,bolzano,5802170804,5802170804.dsg,8000,10,10,10,10,10
5802459861,lancia bolzano,5802459861,5802459861.dsg,3000,10,10,05,25,10
5801744070,fpt,5801744070,5801744070.dsg,2000,10,10,10,10,10
504354065,fpt,504354065,504354065.dsg,2000,10,10,10,10,10
5801429438,fpt,5801429438,5801429438.dsg,3000,10,10,10,10,10
5801501538,fpt,5801501538,5801501538.dsg,2000,10,10,10,10,10
5801871355,fpt,5801871355,5801871355.dsg,2000,10,10,10,10,10
5802912988,fpt,5802912988,5802912988.dsg,2000,10,10,10,20,70
579970907,iveco magirus,579970907,579970907.dsg,8000,20,20,10,10,10
5802901208,fpt,5802901208,FPT_5802901208.dsg,3000,30,30,05,25,10
5802399842,fpt,5802399842,5802399842.dsg,2000,10,10,10,20,57
5801744059,fpt,5801744059,5801744059.dsg,2000,10,10,10,10,10
5801779215,fpt,5801779215,5801779215.dsg,6000,30,30,05,05,20
504321532,lancia bolzano,504321532,504321532.dsg,8000,10,10,10,10,10
5802518329,fpt,5802518329,5802518329.dsg,2000,10,10,05,20,10
5801404450,fpt,5801404450,5801404450.dsg,10000,30,30,30,30,10
5801384841,lqncia bolzano,5801384841,5801384841.dsg,8000,10,10,10,10,10
5801384842,lancia bolzano,5801384842,5801384842.dsg,8000,10,10,10,10,10
504378974,fpt,504378974,504378974.dsg,5000,30,30,10,10,15
5802912853,fpt,5802912853,5802912853.dsg,2000,10,10,05,20,120
5801588464,fpt,5801588464,5801588464.dsg,2000,10,10,10,10,10
60192056,lancia bolzano,60192056,60192056.dsg,8000,10,10,10,10,10
5801770912,fpt,5801770912,5801770912.dsg,2000,10,10,10,10,10
5801780088,fpt,5801780088,5801780088.dsg,6000,30,30,05,05,20
test sonda 6,fpt,test sonda 6,Test controllo sonda n° 6.dsg,2000,10,10,10,10,10
5006217210,IVECO CDR,5006217210,5006217210 IVECO CDR.dsg,10000,10,10,10,10,10
5802011955,fpt,5802011955,5802011955.dsg,2000,10,10,10,10,10
5802506033,fpt,5802506033,5802506033.dsg,2000,20,20,10,20,30
5802195448,fpt,5802195448,5802195448.dsg,2000,10,10,10,10,10
5802170779,bolzano,5802170779,5802170779.dsg,8000,10,10,10,10,10
5801869604,fpt,5801869604,5801869604.dsg,6000,30,30,05,05,20
001030,dts,001030,001030.dsg,5000,10,10,10,30,30
5802782344,IVECO,5802782344,5802782344.dsg,5000,10,10,10,10,10
5802784037,IVECO,5802784037,5802784037.dsg,5000,10,10,10,10,10
5801615768,irisbus,5801615768,5801615768.dsg,10000,10,10,10,10,10
504354070,fpt,504354070,504354070.dsg,2000,10,10,10,10,10
5802401073,FPT,5802401073,5802401073.dsg,2000,10,10,05,20,10
5801912552,fpt,5801912552,5801912552.dsg,6000,30,30,05,05,20
5801524941,fpt,5801524941,5801524941.dsg,10000,30,30,10,30,30
5802753755,fpt,5802753755,5802753755.dsg,2000,10,10,10,20,60
5802930104,fpt,5802930104,5802930104.dsg,2000,10,10,05,20,120
5801613010,fpt,5801613010,5801613010.dsg,2000,10,10,10,10,10
5801603399,fpt,5801603399,5801603399.dsg,2000,10,10,10,10,10
5801925887,fpt,5801925887,5801925887.dsg,3000,10,10,10,10,10
5802990926,cnh,5802990926,5802990926.dsg,10000,30,30,5,5,10
5801576299,fpt,5801576299,5801576299.dsg,2000,10,10,10,10,10
011356,dts,011356,011356.dsg,5000,10,10,10,30,30
5802269836,fpt,5802269836,5802269836.dsg,2000,30,30,05,10,10
504049844,lancia bolzano,504049844,504049844.dsg,8000,10,10,10,10,10
5801378904,fpt,5801378904,5801378904.dsg,2000,10,10,10,10,10
5801970019,lancia bolzano,5801970019,5801970019.dsg,8000,10,10,10,10,10
5802965967,fpt,5802965967,5802965967.dsg,2000,10,10,10,20,99
5802832205,fpt,5802832205,5802832205.dsg,2000,10,10,10,20,40
579970916,iveco magirus,579970916,579970916.dsg,8000,20,20,10,10,10
5802889710,IVECO BUS,5802889710,5802889710.dsg,15000,15,15,10,30,50
5802506036,fpt,5802506036,5802506036.dsg,2000,20,20,10,20,20
5801429431,fpt,5801429431,5801429431.dsg,3000,10,10,10,10,20
5801869609,fpt,5801869609,5801869609.dsg,6000,30,30,5,5,20
5802425718,FPT,5802425718,5802425718.dsg,2000,10,10,10,20,20
5802425688,fpt,5802425688,5802425688.dsg,2000,10,10,10,20,45
504326641,lancia boolzano,504326641,504326641.dsg,8000,10,10,10,10,10
5801780089,fpt,5801780089,5801780089.dsg,6000,30,30,05,05,20
504365800,fpt,504365800,504365800.dsg,2000,10,10,10,10,10
504291548,bolzano,504291548,504291548.dsg,8000,10,10,10,10,10
5802195453,fpt,5802195453,5802195453.dsg,2000,10,10,10,10,10
5801429403,fpt,5801429403,5801429403.dsg,3000,10,10,10,10,10
5801384840,lancia bolzano,5801384840,5801384840.dsg,8000,10,10,10,10,10
504126777,bolzano,504126777,504126777.dsg,8000,10,10,10,10,10
5801862227,lbz,5801862227,5801862227.dsg,8000,10,10,10,10,10
5801368948,fpt,5801368948,5801368948.dsg,2000,10,10,10,10,10
5801565573,fpt,5801565573,5801565573.dsg,2000,10,10,10,10,10
5801743988,fpt,5801743988,5801743988.dsg,2000,10,10,10,10,10
5801923370,fpt,5801923370,5801923370.dsg,2000,10,10,10,10,10
5801743980,fpt,5801743980,5801743980.dsg,2000,10,10,10,10,10
MY83-6B747-BA,ASTON MARTIN,MY83-6B747-BA,MY83-6B747-BA.dsg,7000,20,20,05,05,30
MY83-6B748-BA,ASTON MARTIN,MY83-6B748-BA,MY83-6B748-BA.dsg,7000,20,20,05,05,30
MY83-6L694-AB,ASTON MARTIN,MY83-6L694-AB,MY83-6L694-AB.dsg,7000,20,20,05,05,30
MY83-6L701-AB,ASTON MARTIN,MY83-6L701-AB,MY83-6L701-AB.dsg,7000,20,20,05,05,30
1 codice_ricetta cliente codice_prodotto descrizione pressione_di_test pressione_di_test_delta_minimo pressione_di_test_delta_massimo tempo_riempimento tempo_assestamento tempo_di_test
2 5802011947 fpt 5802011947 5802011947.dsg 2000 10 10 10 10 10
3 5801970021 lancia bolzano 5801970021 5801970021.dsg 8000 10 10 10 10 10
4 5802401058 FPT 5802401058 5802401058.dsg 2000 10 10 05 20 10
5 579970919 iveco magirus 579970919 579970919.dsg 8000 20 20 10 10 10
6 5801404429 fpt 5801404429 5801404429.dsg 2000 10 10 10 10 10
7 5802108501 bolzano 5802108501 5802108501.dsg 8000 10 10 10 10 10
8 5801871355 fpt 5801871355 test sonda 6 (2).dsg 2000 10 10 10 10 10
9 5802195437 fpt 5802195437 5802195437.dsg 2000 10 10 10 10 10
10 5802990922 cnh 5802990922 5802990922.dsg 10000 30 30 5 5 10
11 5802754975 fpt 5802754975 5802754975.dsg 6000 30 30 10 10 10
12 5802506048 fpt 5802506048 5802506048.dsg 2000 20 20 10 20 40
13 5802772050 IVECO 5802772050 5802772050.dsg 10000 20 20 10 20 10
14 5802401142 FPT 5802401142 5802401142.dsg 2000 10 10 10 10 10
15 5801684362 fpt 5801684362 5801684362.dsg 2000 10 10 10 10 10
16 5802362033 fpt 5802362033 5802362033.dsg 2000 10 10 10 10 10
17 5801684373 fpt 5801684373 5801684373.dsg 2000 10 10 10 10 10
18 5801592607 fpt 5801592607 5801592607.dsg 2000 10 10 10 10 10
19 8051475 fpt 8051475 8051475.dsg 2000 10 10 10 10 10
20 5801779216 fpt 5801779216 5801779216.dsg 6000 30 30 05 05 20
21 5802731910 lancia bolzano 5802731910 5802731910.dsg 8000 10 10 10 10 10
22 5802108503 bolzano 5802108503 5802108503.dsg 8000 10 10 10 10 10
23 5801869611 fpt 5801869611 5801869611.dsg 6000 30 30 05 05 20
24 504291549 bolzano 504291549 504291549.dsg 8000 10 10 10 10 10
25 16L0001CP fpt 16L0001CP 16L0001CP mc laren.dsg 1000 10 10 10 10 10
26 504354068 fpt 504354068 504354068.dsg 2000 10 10 10 10 10
27 5801588455 fpt 5801588455 5801588455.dsg 2000 10 10 10 10 10
28 5802517329 fpt 5802517329 5802517329.dsg 2000 30 30 05 10 10
29 5802899148 fpt 5802899148 5802899148.dsg 2000 10 10 10 20 99
30 5803012719 cnh 5803012719 5803012719.dsg 10000 30 30 5 5 10
31 TGA001EL VANHOOL TGA001EL TGA001EL.dsg 120000 30 30 10 15 10
32 5801667698 fpt 5801667698 5801667698.dsg 2000 10 10 10 10 10
33 5802011985 fpt 5802011985 5802011985.dsg 2000 10 10 10 10 10
34 504126998 bolzano 504126998 504126998.dsg 8000 10 10 10 10 10
35 5801636013 fpt 5801636013 5801636013.dsg 2000 10 10 10 10 10
36 5802200725 CNH 5802200725 5802200725.dsg 3000 30 30 10 10 40
37 504049840 lancia bolzano 504049840 504049840.dsg 8000 10 10 10 10 10
38 5801970066 bolzano 5801970066 5801970066.dsg 8000 10 10 10 10 10
39 5802093875 FPT 5802093875 5802093875.dsg 2000 10 10 10 10 10
40 5801368939 fpt 5801368939 5801368939.dsg 2000 10 10 10 10 10
41 5802195441 fpt 5802195441 5802195441.dsg 2000 10 10 10 10 10
42 003934 dts 003934 003934.dsg 2000 10 10 10 10 10
43 5802093832 FPT 5802093832 5802093832.dsg 2000 10 10 10 10 10
44 5802422752 fpt 5802422752 5802422752.dsg 2000 10 10 05 20 10
45 5801632026 FPT 5801632026 5801632026.dsg 2000 10 10 10 10 10
46 5801404445 fpt 5801404445 5801404445.dsg 2000 10 10 10 10 10
47 5801970064 bolzano 5801970064 5801970064.dsg 8000 10 10 10 10 10
48 5801615767 irisbus 5801615767 5801615767.dsg 10000 10 10 10 10 10
49 5006217212 IVECO CDR 5006217212 5006217212 IVECO CDR.dsg 10000 20 20 10 10 10
50 5801664502 fpt 5801664502 5801664502.dsg 2000 10 10 10 10 07
51 5801871355 fpt 5801871355 TEST.dsg 2000 10 10 10 10 10
52 5802457210 heuliez bus 5802457210 5802457210.dsg 10000 10 10 10 10 10
53 5801541811 fpt 5801541811 5801541811.dsg 2000 10 10 10 10 10
54 5802011990 fpt 5802011990 5802011990.dsg 2000 10 10 10 10 10
55 5801970067 bolzano 5801970067 5801970067.dsg 8000 10 10 10 10 10
56 5802772051 IVECO 5802772051 5802772051.dsg 10000 20 20 10 20 10
57 5802832212 fpt 5802832212 5802832212.dsg 2000 10 10 10 20 40
58 504354067 fpt 504354067 504354067.dsg 2000 10 10 10 10 10
59 5801565620 fpt 5801565620 5801565620.dsg 2000 10 10 10 10 10
60 5801565599 fpt 5801565599 5801565599.dsg 2000 10 10 10 10 10
61 5803012724 cnh 5803012724 5803012724.dsg 10000 30 30 5 5 10
62 504321531 bolzano 504321531 504321531.dsg 8000 10 10 10 10 10
63 5802771992 IVECO 5802771992 5802771992.dsg 10000 20 20 05 10 10
64 5802753762 fpt 5802753762 5802753762.dsg 2000 10 10 10 20 60
65 5802729983 lancia bolzano 5802729983 5802729983.dsg 8000 10 10 10 10 10
66 5801592617 fpt 5801592617 5801592617.dsg 2000 10 10 10 10 10
67 5801501533 fpt 5801501533 5801501533.dsg 2000 10 10 10 10 10
68 579970920 iveco magirus 579970920 579970920.dsg 8000 20 20 10 10 10
69 5801869610 fpt 5801869610 5801869610.dsg 6000 30 30 05 05 20
70 5801666343 fpt 5801666343 5801666343.dsg 2000 10 10 10 10 10
71 5801616061 irisbus 5801616061 5801616061.dsg 10000 10 10 10 10 10
72 5006217211 IVECO CDR 5006217211 5006217211 IVECO CDR.dsg 10000 20 20 10 10 10
73 5802362019 fpt 5802362019 5802362019.dsg 2000 10 10 10 10 10
74 504385052 fpt 504385052 504385052.dsg 10000 10 10 10 10 10
75 5802991065 cnh 5802991065 5802991065.dsg 10000 30 30 5 5 10
76 5801821750 fpt 5801821750 5801821750.dsg 2000 10 10 10 10 10
77 5802282454 fpt 5802282454 5802282454.dsg 2000 10 10 10 20 20
78 5802771977 IVECO 5802771977 5802771977.dsg 10000 20 20 05 10 10
79 5801970018 lancia bolzano 5801970018 5801970018.dsg 8000 10 10 10 10 10
80 60192054 lancia 60192054 60192054.dsg 8000 10 10 10 10 10
81 5802991066 cnh 5802991066 5802991066.dsg 10000 30 30 5 5 10
82 5801384839 lancia bolzano 5801384839 5801384839.dsg 8000 10 10 10 10 10
83 5801384838 lancia bolzano 5801384838 5801384838.dsg 8000 10 10 10 10 10
84 5802912912 fpt 5802912912 5802912912.dsg 2000 10 10 10 20 60
85 5802399858 fpt 5802399858 5802399858.dsg 2000 10 10 05 20 10
86 5801615766 irisbus 5801615766 5801615766.dsg 10000 10 10 10 10 10
87 5801636018 fpt 5801636018 5801636018.dsg 2000 10 10 10 10 10
88 5802170804 bolzano 5802170804 5802170804.dsg 8000 10 10 10 10 10
89 5802459861 lancia bolzano 5802459861 5802459861.dsg 3000 10 10 05 25 10
90 5801744070 fpt 5801744070 5801744070.dsg 2000 10 10 10 10 10
91 504354065 fpt 504354065 504354065.dsg 2000 10 10 10 10 10
92 5801429438 fpt 5801429438 5801429438.dsg 3000 10 10 10 10 10
93 5801501538 fpt 5801501538 5801501538.dsg 2000 10 10 10 10 10
94 5801871355 fpt 5801871355 5801871355.dsg 2000 10 10 10 10 10
95 5802912988 fpt 5802912988 5802912988.dsg 2000 10 10 10 20 70
96 579970907 iveco magirus 579970907 579970907.dsg 8000 20 20 10 10 10
97 5802901208 fpt 5802901208 FPT_5802901208.dsg 3000 30 30 05 25 10
98 5802399842 fpt 5802399842 5802399842.dsg 2000 10 10 10 20 57
99 5801744059 fpt 5801744059 5801744059.dsg 2000 10 10 10 10 10
100 5801779215 fpt 5801779215 5801779215.dsg 6000 30 30 05 05 20
101 504321532 lancia bolzano 504321532 504321532.dsg 8000 10 10 10 10 10
102 5802518329 fpt 5802518329 5802518329.dsg 2000 10 10 05 20 10
103 5801404450 fpt 5801404450 5801404450.dsg 10000 30 30 30 30 10
104 5801384841 lqncia bolzano 5801384841 5801384841.dsg 8000 10 10 10 10 10
105 5801384842 lancia bolzano 5801384842 5801384842.dsg 8000 10 10 10 10 10
106 504378974 fpt 504378974 504378974.dsg 5000 30 30 10 10 15
107 5802912853 fpt 5802912853 5802912853.dsg 2000 10 10 05 20 120
108 5801588464 fpt 5801588464 5801588464.dsg 2000 10 10 10 10 10
109 60192056 lancia bolzano 60192056 60192056.dsg 8000 10 10 10 10 10
110 5801770912 fpt 5801770912 5801770912.dsg 2000 10 10 10 10 10
111 5801780088 fpt 5801780088 5801780088.dsg 6000 30 30 05 05 20
112 test sonda 6 fpt test sonda 6 Test controllo sonda n° 6.dsg 2000 10 10 10 10 10
113 5006217210 IVECO CDR 5006217210 5006217210 IVECO CDR.dsg 10000 10 10 10 10 10
114 5802011955 fpt 5802011955 5802011955.dsg 2000 10 10 10 10 10
115 5802506033 fpt 5802506033 5802506033.dsg 2000 20 20 10 20 30
116 5802195448 fpt 5802195448 5802195448.dsg 2000 10 10 10 10 10
117 5802170779 bolzano 5802170779 5802170779.dsg 8000 10 10 10 10 10
118 5801869604 fpt 5801869604 5801869604.dsg 6000 30 30 05 05 20
119 001030 dts 001030 001030.dsg 5000 10 10 10 30 30
120 5802782344 IVECO 5802782344 5802782344.dsg 5000 10 10 10 10 10
121 5802784037 IVECO 5802784037 5802784037.dsg 5000 10 10 10 10 10
122 5801615768 irisbus 5801615768 5801615768.dsg 10000 10 10 10 10 10
123 504354070 fpt 504354070 504354070.dsg 2000 10 10 10 10 10
124 5802401073 FPT 5802401073 5802401073.dsg 2000 10 10 05 20 10
125 5801912552 fpt 5801912552 5801912552.dsg 6000 30 30 05 05 20
126 5801524941 fpt 5801524941 5801524941.dsg 10000 30 30 10 30 30
127 5802753755 fpt 5802753755 5802753755.dsg 2000 10 10 10 20 60
128 5802930104 fpt 5802930104 5802930104.dsg 2000 10 10 05 20 120
129 5801613010 fpt 5801613010 5801613010.dsg 2000 10 10 10 10 10
130 5801603399 fpt 5801603399 5801603399.dsg 2000 10 10 10 10 10
131 5801925887 fpt 5801925887 5801925887.dsg 3000 10 10 10 10 10
132 5802990926 cnh 5802990926 5802990926.dsg 10000 30 30 5 5 10
133 5801576299 fpt 5801576299 5801576299.dsg 2000 10 10 10 10 10
134 011356 dts 011356 011356.dsg 5000 10 10 10 30 30
135 5802269836 fpt 5802269836 5802269836.dsg 2000 30 30 05 10 10
136 504049844 lancia bolzano 504049844 504049844.dsg 8000 10 10 10 10 10
137 5801378904 fpt 5801378904 5801378904.dsg 2000 10 10 10 10 10
138 5801970019 lancia bolzano 5801970019 5801970019.dsg 8000 10 10 10 10 10
139 5802965967 fpt 5802965967 5802965967.dsg 2000 10 10 10 20 99
140 5802832205 fpt 5802832205 5802832205.dsg 2000 10 10 10 20 40
141 579970916 iveco magirus 579970916 579970916.dsg 8000 20 20 10 10 10
142 5802889710 IVECO BUS 5802889710 5802889710.dsg 15000 15 15 10 30 50
143 5802506036 fpt 5802506036 5802506036.dsg 2000 20 20 10 20 20
144 5801429431 fpt 5801429431 5801429431.dsg 3000 10 10 10 10 20
145 5801869609 fpt 5801869609 5801869609.dsg 6000 30 30 5 5 20
146 5802425718 FPT 5802425718 5802425718.dsg 2000 10 10 10 20 20
147 5802425688 fpt 5802425688 5802425688.dsg 2000 10 10 10 20 45
148 504326641 lancia boolzano 504326641 504326641.dsg 8000 10 10 10 10 10
149 5801780089 fpt 5801780089 5801780089.dsg 6000 30 30 05 05 20
150 504365800 fpt 504365800 504365800.dsg 2000 10 10 10 10 10
151 504291548 bolzano 504291548 504291548.dsg 8000 10 10 10 10 10
152 5802195453 fpt 5802195453 5802195453.dsg 2000 10 10 10 10 10
153 5801429403 fpt 5801429403 5801429403.dsg 3000 10 10 10 10 10
154 5801384840 lancia bolzano 5801384840 5801384840.dsg 8000 10 10 10 10 10
155 504126777 bolzano 504126777 504126777.dsg 8000 10 10 10 10 10
156 5801862227 lbz 5801862227 5801862227.dsg 8000 10 10 10 10 10
157 5801368948 fpt 5801368948 5801368948.dsg 2000 10 10 10 10 10
158 5801565573 fpt 5801565573 5801565573.dsg 2000 10 10 10 10 10
159 5801743988 fpt 5801743988 5801743988.dsg 2000 10 10 10 10 10
160 5801923370 fpt 5801923370 5801923370.dsg 2000 10 10 10 10 10
161 5801743980 fpt 5801743980 5801743980.dsg 2000 10 10 10 10 10
162 MY83-6B747-BA ASTON MARTIN MY83-6B747-BA MY83-6B747-BA.dsg 7000 20 20 05 05 30
163 MY83-6B748-BA ASTON MARTIN MY83-6B748-BA MY83-6B748-BA.dsg 7000 20 20 05 05 30
164 MY83-6L694-AB ASTON MARTIN MY83-6L694-AB MY83-6L694-AB.dsg 7000 20 20 05 05 30
165 MY83-6L701-AB ASTON MARTIN MY83-6L701-AB MY83-6L701-AB.dsg 7000 20 20 05 05 30

View File

@ -0,0 +1,8 @@
codice_ricetta,cliente,codice_prodotto,descrizione,tempo_riempimento,tempo_assestamento,tempo_di_test,percentuale_minima_pressione_assestamento,percentuale_massima_pressione_assestamento,pressione_di_test_delta_minimo,pressione_di_test,pressione_di_test_delta_massimo,modello_etichetta,richiedi_inserimento_scarto,istruzione_abilitata,tempo_svuotamento
5803112815,IVECO,5803112815,Daily Automatico,5,10,10,5,5,30,5000,5,ETA30x16_203dpi.prn,x,x,1
5803112816,IVECO,5803112816,Daily Automatico,5,10,10,5,5,30,5000,5,ETA30x16_203dpi.prn,x,x,1
000746453 REV.5,FERRARI,000746453 REV.5,TUBO RITORNO OLIO,10,30,20,5,5,25,10000,5,ferrari_stten8.prn,,,1
MY83-6L701-AB,ASTON MARTIN,MY83-6L701-AB,TRANSMISSION OIL,5,10,10,5,5,30,7000,5,aston_martin.prn,,,1
MY83-6L694-AB,ASTON MARTIN,MY83-6L694-AB,TRANSMISSION OIL,5,10,10,5,5,30,7000,5,aston_martin.prn,,,1
MY83-6B747-BA,ASTON MARTIN,MY83-6B747-BA,ENGINE OIL,5,10,10,5,5,30,7000,5,aston_martin.prn,,,1
MY83-6B748-BA,ASTON MARTIN,MY83-6B748-BA,ENGINE OIL,5,10,10,5,5,30,7000,5,aston_martin.prn,,,1
1 codice_ricetta cliente codice_prodotto descrizione tempo_riempimento tempo_assestamento tempo_di_test percentuale_minima_pressione_assestamento percentuale_massima_pressione_assestamento pressione_di_test_delta_minimo pressione_di_test pressione_di_test_delta_massimo modello_etichetta richiedi_inserimento_scarto istruzione_abilitata tempo_svuotamento
2 5803112815 IVECO 5803112815 Daily Automatico 5 10 10 5 5 30 5000 5 ETA30x16_203dpi.prn x x 1
3 5803112816 IVECO 5803112816 Daily Automatico 5 10 10 5 5 30 5000 5 ETA30x16_203dpi.prn x x 1
4 000746453 REV.5 FERRARI 000746453 REV.5 TUBO RITORNO OLIO 10 30 20 5 5 25 10000 5 ferrari_stten8.prn 1
5 MY83-6L701-AB ASTON MARTIN MY83-6L701-AB TRANSMISSION OIL 5 10 10 5 5 30 7000 5 aston_martin.prn 1
6 MY83-6L694-AB ASTON MARTIN MY83-6L694-AB TRANSMISSION OIL 5 10 10 5 5 30 7000 5 aston_martin.prn 1
7 MY83-6B747-BA ASTON MARTIN MY83-6B747-BA ENGINE OIL 5 10 10 5 5 30 7000 5 aston_martin.prn 1
8 MY83-6B748-BA ASTON MARTIN MY83-6B748-BA ENGINE OIL 5 10 10 5 5 30 7000 5 aston_martin.prn 1

View File

@ -0,0 +1,2 @@
codice_ricetta,cliente,codice_prodotto,descrizione
R54967,Errecinque,R54967, Tubo in metallo
1 codice_ricetta cliente codice_prodotto descrizione
2 R54967 Errecinque R54967 Tubo in metallo

View File

@ -1,3 +1,3 @@
codice_ricetta,codice_prodotto,cliente,descrizione,prova_tenuta_abilitata,prova_tenuta_abilitata_2,config_elettrovalvole,config_elettrovalvole_2,modello_etichetta
codice_ricetta,codice_prodotto,cliente,descrizione,prova_tenuta_abilitata,prova_tenuta_abilitata_2,canale_di_prova,canale_di_prova_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 canale_di_prova config_elettrovalvole_2 canale_di_prova_2 modello_etichetta
2 5802820548 5802820548 IVECO Tubo doppio x x 0 0 1 1 EtichettaR5_Montaggio_2prove.prn
3 5802820549 5802820549 IVECO Tubo singolo x 0 0 1 1 EtichettaR5_Montaggio.prn

View File

@ -0,0 +1,13 @@
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
5803148257,IVECO,5803148257,Daily Himatic MY24,,,x,5,5,10,10,5,30,5000,30,1,100,x,ETA30x16.prn
5803148256,IVECO,5803148256,Daily Himatic MY24,,,x,5,5,10,10,5,30,5000,30,1,100,x,ETA30x16.prn
5803148263,IVECO,5803148263,Daily Himatic MY24,,,x,5,5,10,10,5,30,5000,30,1,100,x,ETA30x16.prn
5803148261,IVECO,5803148261,Daily Himatic MY24,,,x,5,5,10,10,5,30,5000,30,1,100,x,ETA30x16.prn
5803148264,IVECO,5803148264,Daily Himatic MY24,,,x,5,5,10,10,5,30,5000,30,1,100,x,ETA30x16.prn
5803148265,IVECO,5803148265,Daily Himatic MY24,,,x,5,5,10,10,5,30,5000,30,1,100,x,ETA30x16.prn
5803148267,IVECO,5803148267,Daily Himatic MY24,,,x,5,5,10,10,5,30,5000,30,1,100,x,ETA30x16.prn
5803148266,IVECO,5803148266,Daily Himatic MY24,,,x,5,5,10,10,5,30,5000,30,1,100,x,ETA30x16.prn
5803166717,IVECO,5803166717,Daily Himatic MY24,,,x,5,5,10,10,5,30,5000,30,1,100,x,ETA30x16.prn
5803148269,IVECO,5803148269,Daily Himatic MY24,,,x,5,5,10,10,5,30,5000,30,1,100,x,ETA30x16.prn
5803148268,IVECO,5803148268,Daily Himatic MY24,,,x,5,5,10,10,5,30,5000,30,1,100,x,ETA30x16.prn
5803167128,IVECO,5803167128,Daily Himatic MY24,,,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_svuotamento stampa_etichetta_abilitata modello_etichetta
2 5803148257 IVECO 5803148257 Daily Himatic MY24 x 5 5 10 10 5 30 5000 30 1 100 x ETA30x16.prn
3 5803148256 IVECO 5803148256 Daily Himatic MY24 x 5 5 10 10 5 30 5000 30 1 100 x ETA30x16.prn
4 5803148263 IVECO 5803148263 Daily Himatic MY24 x 5 5 10 10 5 30 5000 30 1 100 x ETA30x16.prn
5 5803148261 IVECO 5803148261 Daily Himatic MY24 x 5 5 10 10 5 30 5000 30 1 100 x ETA30x16.prn
6 5803148264 IVECO 5803148264 Daily Himatic MY24 x 5 5 10 10 5 30 5000 30 1 100 x ETA30x16.prn
7 5803148265 IVECO 5803148265 Daily Himatic MY24 x 5 5 10 10 5 30 5000 30 1 100 x ETA30x16.prn
8 5803148267 IVECO 5803148267 Daily Himatic MY24 x 5 5 10 10 5 30 5000 30 1 100 x ETA30x16.prn
9 5803148266 IVECO 5803148266 Daily Himatic MY24 x 5 5 10 10 5 30 5000 30 1 100 x ETA30x16.prn
10 5803166717 IVECO 5803166717 Daily Himatic MY24 x 5 5 10 10 5 30 5000 30 1 100 x ETA30x16.prn
11 5803148269 IVECO 5803148269 Daily Himatic MY24 x 5 5 10 10 5 30 5000 30 1 100 x ETA30x16.prn
12 5803148268 IVECO 5803148268 Daily Himatic MY24 x 5 5 10 10 5 30 5000 30 1 100 x ETA30x16.prn
13 5803167128 IVECO 5803167128 Daily Himatic MY24 x 5 5 10 10 5 30 5000 30 1 100 x ETA30x16.prn

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 215 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 319 KiB

View File

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
width="1200"
height="700"
viewBox="0 0 1200 700"
version="1.1"
id="svg5"
xml:space="preserve"
inkscape:version="1.2.2 (1:1.2.2+202212051550+b0a8486541)"
sodipodi:docname="DEFAULT.svg"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><sodipodi:namedview
id="namedview7"
pagecolor="#505050"
bordercolor="#eeeeee"
borderopacity="1"
inkscape:showpageshadow="0"
inkscape:pageopacity="0"
inkscape:pagecheckerboard="0"
inkscape:deskcolor="#505050"
inkscape:document-units="mm"
showgrid="false"
inkscape:zoom="1.0570734"
inkscape:cx="365.15913"
inkscape:cy="357.59106"
inkscape:window-width="2560"
inkscape:window-height="1023"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="layer1" /><defs
id="defs2" /><g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"><text
xml:space="preserve"
style="font-style:normal;font-weight:normal;font-size:40px;line-height:1.25;font-family:sans-serif;letter-spacing:0px;word-spacing:0px;fill:#ff7f2a;fill-opacity:1;stroke:#aa4400"
x="277.31964"
y="373.9111"
id="text226"><tspan
sodipodi:role="line"
id="tspan224"
x="277.31964"
y="373.9111"
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:53.3333px;font-family:sans-serif;-inkscape-font-specification:'sans-serif, Normal';font-variant-ligatures:normal;font-variant-caps:normal;font-variant-numeric:normal;font-variant-east-asian:normal;stroke:#aa4400;fill:#ff7f2a">DISEGNO NON DISPONIBILE</tspan></text></g></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 66 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.

Binary file not shown.

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,56 @@
CT~~CD,~CC^~CT~
^XA
~TA000
~JSN
^LT0
^MNW
^MTT
^PON
^PMN
^LH0,0
^JMA
^PR2,2
~SD15
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW472
^LL1654
^LS0
^FT40,729^A0N,38,33^FH\^CI28^FD{DD}/{MO}/{YY}^FS^CI27
^FT259,729^A0N,38,33^FH\^CI28^FD{HH}:{MI}:{SS}^FS^CI27
^FT27,1497^A0N,46,46^FH\^CI28^FDESITO:^FS^CI27
^FT213,1497^A0N,46,46^FH\^CI28^FDCONFORME^FS^CI27
^FT43,107^A0N,38,38^FH\^CI28^FDNumero Disegno^FS^CI27
^FT40,683^A0N,38,38^FH\^CI28^FDData/Ora Prova^FS^CI27
^FT40,784^A0N,38,38^FH\^CI28^FDStazione: {STATION}^FS^CI27
^FT40,615^A0N,38,38^FH\^CI28^FDN. Pezzo:^FS^CI27
^FT200,617^A0N,38,38^FH\^CI28^FD{SN4}^FS^CI27
^FT40,831^A0N,38,38^FH\^CI28^FDOPERATORE: {BADGE_NUM}^FS^CI27
^FO77,960^GB318,0,12^FS
^FT28,1043^A0N,38,38^FH\^CI28^FDP. prova:^FS^CI27
^FT28,1090^A0N,38,38^FH\^CI28^FDP. rilevata:^FS^CI27
^FT214,1090^A0N,38,38^FH\^CI28^FD{RESPSET}mbar^FS^CI27
^FT28,1130^A0N,38,38^FH\^CI28^FDCaduta ammessa:^FS^CI27
^FT305,1130^A0N,38,38^FH\^CI28^FD{PMIN} mbar^FS^CI27
^FT28,1179^A0N,38,38^FH\^CI28^FDCaduta rilevata:^FS^CI27
^FT264,1179^A0N,38,38^FH\^CI28^FD{RESLEAK} mbar^FS^CI27
^FT28,1342^A0N,38,38^FH\^CI28^FDT.Prova^FS^CI27
^FT306,1348^A0N,38,38^FH\^CI28^FD{TTEST} s^FS^CI27
^FT27,1278^A0N,38,38^FH\^CI28^FDT.Riempim.^FS^CI27
^FT306,1278^A0N,38,38^FH\^CI28^FD{TFILL} s^FS^CI27
^FT28,1310^A0N,38,38^FH\^CI28^FDT.Stabilizzazione^FS^CI27
^FT306,1313^A0N,38,38^FH\^CI28^FD{TSET} s^FS^CI27
^FT214,1043^A0N,38,38^FH\^CI28^FD{PTEST} mbar^FS^CI27
^FT46,370^BXN,9,200,0,0,1,_,1
^FH\^FD{PART}{HH}{MI}{JJJ}{YY}^FS
^FT43,161^A0N,38,38^FH\^CI28^FD992752^FS^CI27
^FT43,425^A0N,38,38^FH\^CI28^FD{PART}{HH}{MI}{JJJ}{YY}^FS^CI27
^FT40,879^A0N,38,38^FH\^CI28^FDGB16897 / {DD}/{MO}/{YY}^FS^CI27
^FT40,925^A0N,38,38^FH\^CI28^FDERRECINQUE / 21882^FS^CI27
^PQ1,0,1,Y
^XZ

View File

@ -0,0 +1,59 @@
CT~~CD,~CC^~CT~
^XA
~TA000
~JSN
^LT0
^MNW
^MTT
^PON
^PMN
^LH0,0
^JMA
^PR2,2
~SD20
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW336
^LL1055
^LS0
^FT65,66^A0N,39,38^FH\^CI28^FDERRECINQUE^FS^CI27
^BY1,3,56^FT52,291^BCN,,N,N
^FH\^FD>:{PART}^FS
^FT23,382^A0N,31,30^FH\^CI28^FDPart number:^FS^CI27
^FT23,455^A0N,31,30^FH\^CI28^FD{PART}^FS^CI27
^FT25,101^A0N,17,18^FH\^CI28^FDVia Meucci 31/A - 10079 Mappano(TO)^FS^CI27
^FT61,173^A0N,39,38^FH\^CI28^FD{CLIENT}^FS^CI27
^FT61,211^A0N,39,38^FH\^CI28^FDLEAK TEST^FS^CI27
^FT23,921^A0N,23,23^FH\^CI28^FD{DD}/{MO}/{YY}^FS^CI27
^FT169,921^A0N,23,23^FH\^CI28^FD{HH}:{MI}:{SS}^FS^CI27
^FT25,1006^A0N,31,30^FH\^CI28^FDCHECK:^FS^CI27
^FT151,1006^A0N,31,30^FH\^CI28^FDPASSED^FS^CI27
^FT23,964^A0N,25,25^FH\^CI28^FDOperator:^FS^CI27
^FT151,964^A0N,25,25^FH\^CI28^FD{OPERATOR}^FS^CI27
^FT51,323^A0N,31,30^FH\^CI28^FD{PART}^FS^CI27
^FT23,417^A0N,31,30^FH\^CI28^FD{DESCRIPTION}^FS^CI27
^FT23,513^A0N,31,30^FH\^CI28^FDSequential number:^FS^CI27
^FT23,548^A0N,31,30^FH\^CI28^FD{SN5}^FS^CI27
^FT27,658^A0N,28,28^FH\^CI28^FDTest 1:^FS^CI27
^FT27,685^A0N,23,23^FH\^CI28^FDMeasured press.:^FS^CI27
^FT199,687^A0N,20,20^FH\^CI28^FD{RESPSET} mbar^FS^CI27
^FT27,707^A0N,23,23^FH\^CI28^FDAllowed leak:^FS^CI27
^FT199,709^A0N,20,20^FH\^CI28^FD{PMIN} mbar^FS^CI27
^FT27,730^A0N,23,23^FH\^CI28^FDMeasured leak:^FS^CI27
^FT187,731^A0N,20,20^FH\^CI28^FD{RESLEAK} mbar^FS^CI27
^FT27,817^A0N,23,23^FH\^CI28^FDMeasure time:^FS^CI27
^FT215,818^A0N,20,20^FH\^CI28^FD{TTEST} s^FS^CI27
^FT26,773^A0N,23,23^FH\^CI28^FDFill time:^FS^CI27
^FT215,770^A0N,20,20^FH\^CI28^FD{TFILL} s^FS^CI27
^FT27,795^A0N,23,23^FH\^CI28^FDSettling time:^FS^CI27
^FT215,794^A0N,20,20^FH\^CI28^FD{TSET} s^FS^CI27
^FT136,658^A0N,28,28^FH\^CI28^FD{PTEST} mbar^FS^CI27
^FT151,124^A0N,17,18^FH\^CI28^FDItaly^FS^CI27
^FT27,893^A0N,23,23^FH\^CI28^FDTest date/time:^FS^CI27
^PQ1,0,1,Y
^XZ

View File

@ -0,0 +1,53 @@
CT~~CD,~CC^~CT~
^XA
~TA000
~JSN
^LT0
^MNW
^MTT
^PON
^PMN
^LH0,0
^JMA
^PR2,2
~SD20
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW472
^LL1654
^LS0
^FT40,729^A0N,38,33^FH\^CI28^FD{DD}/{MO}/{YY}^FS^CI27
^FT259,729^A0N,38,33^FH\^CI28^FD{HH}:{MI}:{SS}^FS^CI27
^FT27,1497^A0N,46,46^FH\^CI28^FDESITO:^FS^CI27
^FT213,1497^A0N,46,46^FH\^CI28^FDCONFORME^FS^CI27
^FT43,130^A0N,38,38^FH\^CI28^FDNumero Disegno^FS^CI27
^FT40,683^A0N,38,38^FH\^CI28^FDData/Ora Prova^FS^CI27
^FT40,784^A0N,38,38^FH\^CI28^FDStazione: {STATION}^FS^CI27
^FT40,615^A0N,38,38^FH\^CI28^FDN. Pezzo:^FS^CI27
^FT200,617^A0N,38,38^FH\^CI28^FD{SN5}^FS^CI27
^FT40,831^A0N,38,38^FH\^CI28^FDOPERATORE: {OPERATOR}^FS^CI27
^FO77,960^GB318,0,12^FS
^FT28,1043^A0N,38,38^FH\^CI28^FDP. prova:^FS^CI27
^FT28,1090^A0N,38,38^FH\^CI28^FDP. rilevata:^FS^CI27
^FT214,1090^A0N,38,38^FH\^CI28^FD{RESPSET}mbar^FS^CI27
^FT28,1130^A0N,38,38^FH\^CI28^FDCaduta ammessa:^FS^CI27
^FT305,1130^A0N,38,38^FH\^CI28^FD{PMIN} mbar^FS^CI27
^FT28,1179^A0N,38,38^FH\^CI28^FDCaduta rilevata:^FS^CI27
^FT264,1179^A0N,38,38^FH\^CI28^FD{RESLEAK} mbar^FS^CI27
^FT28,1342^A0N,38,38^FH\^CI28^FDT.Prova^FS^CI27
^FT306,1348^A0N,38,38^FH\^CI28^FD{TTEST} s^FS^CI27
^FT27,1278^A0N,38,38^FH\^CI28^FDT.Riempim.^FS^CI27
^FT306,1278^A0N,38,38^FH\^CI28^FD{TFILL} s^FS^CI27
^FT28,1310^A0N,38,38^FH\^CI28^FDT.Stabilizzazione^FS^CI27
^FT306,1313^A0N,38,38^FH\^CI28^FD{TSET} s^FS^CI27
^FT214,1043^A0N,38,38^FH\^CI28^FD{PTEST} mbar^FS^CI27
^FT46,352^BXN,9,200,0,0,1,_,1
^FH\^FD{PART}{MO}{YY}{SN5}^FS
^FT43,425^A0N,38,38^FH\^CI28^FD{PART}{MO}{YY}{SN5}^FS^CI27
^PQ1,0,1,Y
^XZ

View File

@ -0,0 +1,58 @@
CT~~CD,~CC^~CT~
^XA
~TA000
~JSN
^LT0
^MNW
^MTT
^PON
^PMN
^LH0,0
^JMA
^PR2,2
~SD20
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW336
^LL1055
^LS0
^FT65,66^A0N,39,38^FH\^CI28^FDERRECINQUE^FS^CI27
^FT52,403^BQN,2,7
^FH\^FDLA,{PART}^FS
^FT23,436^A0N,31,30^FH\^CI28^FDPart number:^FS^CI27
^FT23,527^A0N,31,30^FH\^CI28^FD{PART}^FS^CI27
^FT25,101^A0N,17,18^FH\^CI28^FDVia Meucci 31/A - 10079 Mappano(TO)^FS^CI27
^FT61,173^A0N,39,38^FH\^CI28^FD{CLIENT}^FS^CI27
^FT61,211^A0N,39,38^FH\^CI28^FDLEAK TEST^FS^CI27
^FT23,921^A0N,23,23^FH\^CI28^FD{DD}/{MO}/{YY}^FS^CI27
^FT169,921^A0N,23,23^FH\^CI28^FD{HH}:{MI}:{SS}^FS^CI27
^FT25,1006^A0N,31,30^FH\^CI28^FDCHECK:^FS^CI27
^FT151,1006^A0N,31,30^FH\^CI28^FDPASSED^FS^CI27
^FT23,964^A0N,25,25^FH\^CI28^FDOperator:^FS^CI27
^FT151,964^A0N,25,25^FH\^CI28^FD{OPERATOR}^FS^CI27
^FT23,489^A0N,31,30^FH\^CI28^FD{DESCRIPTION}^FS^CI27
^FT23,567^A0N,31,30^FH\^CI28^FDSequential number:^FS^CI27
^FT23,602^A0N,31,30^FH\^CI28^FD{SN5}^FS^CI27
^FT27,658^A0N,28,28^FH\^CI28^FDTest 1:^FS^CI27
^FT27,685^A0N,23,23^FH\^CI28^FDMeasured press.:^FS^CI27
^FT199,687^A0N,20,20^FH\^CI28^FD{RESPSET} mbar^FS^CI27
^FT27,707^A0N,23,23^FH\^CI28^FDAllowed leak:^FS^CI27
^FT199,709^A0N,20,20^FH\^CI28^FD{PMIN} mbar^FS^CI27
^FT27,730^A0N,23,23^FH\^CI28^FDMeasured leak:^FS^CI27
^FT187,731^A0N,20,20^FH\^CI28^FD{RESLEAK} mbar^FS^CI27
^FT27,817^A0N,23,23^FH\^CI28^FDMeasure time:^FS^CI27
^FT215,818^A0N,20,20^FH\^CI28^FD{TTEST} s^FS^CI27
^FT26,773^A0N,23,23^FH\^CI28^FDFill time:^FS^CI27
^FT215,770^A0N,20,20^FH\^CI28^FD{TFILL} s^FS^CI27
^FT27,795^A0N,23,23^FH\^CI28^FDSettling time:^FS^CI27
^FT215,794^A0N,20,20^FH\^CI28^FD{TSET} s^FS^CI27
^FT136,658^A0N,28,28^FH\^CI28^FD{PTEST} mbar^FS^CI27
^FT151,124^A0N,17,18^FH\^CI28^FDItaly^FS^CI27
^FT27,893^A0N,23,23^FH\^CI28^FDTest date/time:^FS^CI27
^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
~SD15
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW679
^LL200
^LS0
^FT137,147^A0B,42,41^FH\^CI28^FDMB 1^FS^CI27
^FO148,86^GB8,61,4^FS
^FT394,147^A0B,42,41^FH\^CI28^FDMB 1^FS^CI27
^FO405,86^GB8,61,4^FS
^FT239,34^A0R,42,41^FH\^CI28^FDMB 1^FS^CI27
^FO220,33^GB8,61,4^FS
^FT504,34^A0R,42,41^FH\^CI28^FDMB 1^FS^CI27
^FO485,33^GB8,61,4^FS
^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO100,33^GB56,0,53^FS^LRN
^LRY^FO357,33^GB56,0,53^FS^LRN
^LRY^FO220,94^GB56,0,53^FS^LRN
^LRY^FO485,94^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
~SD15
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW679
^LL200
^LS0
^FT137,147^A0B,42,41^FH\^CI28^FDMB 2^FS^CI27
^FO148,86^GB8,61,4^FS
^FT394,147^A0B,42,41^FH\^CI28^FDMB 2^FS^CI27
^FO405,86^GB8,61,4^FS
^FT239,34^A0R,42,41^FH\^CI28^FDMB 2^FS^CI27
^FO220,33^GB8,61,4^FS
^FT504,34^A0R,42,41^FH\^CI28^FDMB 2^FS^CI27
^FO485,33^GB8,61,4^FS
^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO100,33^GB56,0,53^FS^LRN
^LRY^FO357,33^GB56,0,53^FS^LRN
^LRY^FO220,94^GB56,0,53^FS^LRN
^LRY^FO485,94^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
~SD15
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW679
^LL200
^LS0
^FT137,137^A0B,42,41^FH\^CI28^FDMI 1^FS^CI27
^FO148,86^GB8,61,4^FS
^FT394,137^A0B,42,41^FH\^CI28^FDMI 1^FS^CI27
^FO405,86^GB8,61,4^FS
^FT239,40^A0R,42,41^FH\^CI28^FDMI 1^FS^CI27
^FO220,33^GB8,61,4^FS
^FT506,44^A0R,42,41^FH\^CI28^FDMI 1^FS^CI27
^FO487,35^GB8,61,4^FS
^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO100,33^GB56,0,53^FS^LRN
^LRY^FO357,33^GB56,0,53^FS^LRN
^LRY^FO220,94^GB56,0,53^FS^LRN
^LRY^FO487,97^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
~SD15
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW679
^LL200
^LS0
^FT137,137^A0B,42,41^FH\^CI28^FDMI 2^FS^CI27
^FO148,86^GB8,61,4^FS
^FT394,137^A0B,42,41^FH\^CI28^FDMI 2^FS^CI27
^FO405,86^GB8,61,4^FS
^FT239,40^A0R,42,41^FH\^CI28^FDMI 2^FS^CI27
^FO220,33^GB8,61,4^FS
^FT506,44^A0R,42,41^FH\^CI28^FDMI 2^FS^CI27
^FO487,35^GB8,61,4^FS
^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO100,33^GB56,0,53^FS^LRN
^LRY^FO357,33^GB56,0,53^FS^LRN
^LRY^FO220,94^GB56,0,53^FS^LRN
^LRY^FO487,97^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
~SD15
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW679
^LL200
^LS0
^FT393,150^A0B,42,43^FH\^CI28^FDRB 1^FS^CI27
^FO404,89^GB8,61,4^FS
^FT138,150^A0B,42,43^FH\^CI28^FDRB 1^FS^CI27
^FO149,89^GB8,61,4^FS
^FT245,35^A0R,42,43^FH\^CI28^FDRB 1^FS^CI27
^FO226,32^GB8,61,4^FS
^FT501,35^A0R,42,43^FH\^CI28^FDRB 1^FS^CI27
^FO484,32^GB8,61,4^FS
^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO356,32^GB56,0,56^FS^LRN
^LRY^FO101,32^GB56,0,56^FS^LRN
^LRY^FO226,94^GB56,0,56^FS^LRN
^LRY^FO484,94^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
~SD15
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW679
^LL200
^LS0
^FT393,150^A0B,42,43^FH\^CI28^FDRB 2^FS^CI27
^FO404,89^GB8,61,4^FS
^FT138,150^A0B,42,43^FH\^CI28^FDRB 2^FS^CI27
^FO149,89^GB8,61,4^FS
^FT245,35^A0R,42,43^FH\^CI28^FDRB 2^FS^CI27
^FO226,32^GB8,61,4^FS
^FT501,35^A0R,42,43^FH\^CI28^FDRB 2^FS^CI27
^FO484,32^GB8,61,4^FS
^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO356,32^GB56,0,56^FS^LRN
^LRY^FO101,32^GB56,0,56^FS^LRN
^LRY^FO226,94^GB56,0,56^FS^LRN
^LRY^FO484,94^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
~SD15
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW679
^LL200
^LS0
^FT139,151^A0B,42,43^FH\^CI28^FDRM 1^FS^CI27
^FO149,85^GB8,66,4^FS
^FT245,26^A0R,42,43^FH\^CI28^FDRM 1^FS^CI27
^FO226,29^GB8,66,4^FS
^FT397,151^A0B,42,43^FH\^CI28^FDRM 1^FS^CI27
^FO407,85^GB8,66,4^FS
^FT503,26^A0R,42,43^FH\^CI28^FDRM 1^FS^CI27
^FO484,29^GB8,66,4^FS
^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO101,29^GB56,0,56^FS^LRN
^LRY^FO226,95^GB56,0,56^FS^LRN
^LRY^FO359,29^GB56,0,56^FS^LRN
^LRY^FO484,95^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
~SD15
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW679
^LL200
^LS0
^FT139,151^A0B,42,43^FH\^CI28^FDRM 2^FS^CI27
^FO149,85^GB8,66,4^FS
^FT245,26^A0R,42,43^FH\^CI28^FDRM 2^FS^CI27
^FO226,29^GB8,66,4^FS
^FT397,151^A0B,42,43^FH\^CI28^FDRM 2^FS^CI27
^FO407,85^GB8,66,4^FS
^FT503,26^A0R,42,43^FH\^CI28^FDRM 2^FS^CI27
^FO484,29^GB8,66,4^FS
^LRY^FO2,1^GB676,0,198^FS^LRN
^LRY^FO101,29^GB56,0,56^FS^LRN
^LRY^FO226,95^GB56,0,56^FS^LRN
^LRY^FO359,29^GB56,0,56^FS^LRN
^LRY^FO484,95^GB56,0,56^FS^LRN
^PQ1,0,1,Y
^XZ

View File

@ -0,0 +1,32 @@
CT~~CD,~CC^~CT~
^XA
~TA000
~JSN
^LT0
^MNW
^MTT
^PON
^PMN
^LH0,0
^JMA
^PR2,2
~SD15
^JUS
^LRN
^CI27
^PA0,1,1,0
^XZ
^XA
^MMT
^PW256
^LL144
^LS0
^FT156,132^BQN,2,3
^FH\^FDLA,{PART}_{SN5}_{DATE}_{TIME}^FS
^FT61,47^A0N,23,23^FH\^CI28^FD{PART}^FS^CI27
^FT19,72^A0N,23,23^FH\^CI28^FDNum:{SN5}^FS^CI27
^FT19,97^A0N,23,23^FH\^CI28^FD{DATE}^FS^CI27
^FT19,122^A0N,23,23^FH\^CI28^FD{TIME}^FS^CI27
^FO19,21^GFA,169,248,8,:Z64:eJxFz7ENAyEMBdCPrnCZEVgjRQQrUaY46RjtRmGElFec4vgbrNA82Rhji+qAnax60ar6pbulaAOkT7dzmsIxBX0v7X3Y2+zrRv656trf6BP9/T/rl+kLopyjQG6fs28fKgMeW1SoRV6Pyis7j56i0BdLa0Ec7g8asjdJ:20D6
^PQ1,0,1,Y
^XZ

View File

@ -11,12 +11,13 @@ barcode_recipe_selection: absent
; label_printer: present
; extra_label_printer: absent
; multicomp: present
; neo_pixels: present
; neo_pixels: absent
; remote_api: present
; screwdriver: present
; uvc_camera: present
; vision_saver: present
; vision: present
; screwdriver: absent
; uvc_camera: absent
; vision_saver: absent
; vision: absent
; external_flush_blow: absent # EXTERNAL BOX CONTROLLING MULTI-CHANNEL TEST (IF PRESENT), BLOW-CLEANING AND EXTERNAL FLUSH
[galaxy_camera]
horizontal_resolution: 2448
@ -102,6 +103,7 @@ cliente: specificare cliente
part_number: specificare part number
dimensione_lotto_abilitata: x
dimensione_lotto: 0
richiedi_inserimento_scarto:
verifica_connettore_abilitata: x
connettore: SCRx
verifica_codice_a_barre_abilitata:
@ -109,9 +111,6 @@ codice_a_barre:
avvitatura_abilitata:
viti: 0
istruzione_abilitata:
numero nastri (n):0
numero sensori anello (sa):0
numero sensori presenza (sp):0
verifica_resistenza_connettore_abilitata: x
scala_resistenza: 500
@ -120,6 +119,14 @@ tolleranza_resistenza_pos: 10
tolleranza_resistenza_neg: 5
prova_tenuta_abilitata: x
warning_img:
#TECNA RECIPE PARAMETERS
pid_mode: 0 # 0=FAST 1=MEDIUM 2=SLOW 4 = FIXED 5 = AUTOMATIC 6 = FLOW 7 = LEAK WITH FLOW
pid_level: 1
pid_speed: 1
tester_discharge_enable: no
pid_pressure_correction: 110
tempo_pre_riempimento: 0
pressione_pre_riempimento: 1000
tempo_riempimento: 10
@ -132,7 +139,9 @@ pressione_di_test: 1111
pressione_di_test_delta_massimo: 30
tempo_svuotamento: 1
pressione_svuotamento: 100
config_elettrovalvole: 0
canale_di_prova: 0
tempo_soffiaggio_esterno: 3
tempo_svuotamento_esterno: 2
prova_tenuta_abilitata_2:
tempo_pre_riempimento_2: 0
pressione_pre_riempimento_2: 1000
@ -146,7 +155,9 @@ pressione_di_test_2: 2222
pressione_di_test_delta_massimo_2: 200
tempo_svuotamento_2: 1
pressione_svuotamento_2: 100
config_elettrovalvole_2: 0
tempo_soffiaggio_esterno_2: 3
tempo_svuotamento_esterno_2: 2
canale_di_prova_2: 0
test_visione_abilitato:
ricetta_visione: termorestringente_923578.ini
stampa_etichetta_abilitata: x
@ -165,8 +176,8 @@ test_time: 10
test_pressure_qneg: 5
test_pressure: 9000
test_pressure_qpos: 5
flush_time: 1
flush_pressure: 100
flush_time: 0
flush_pressure: 0
[autotest_resistance]
enabled: false

View File

@ -7,3 +7,4 @@ st-ten-5: st-ten-5
st-ten-6: st-ten-6
st-ten-7: st-ten-7
st-ten-8: st-ten-8
ST-TEN-9: st-ten-9

View File

@ -1,29 +0,0 @@
[machine]
description = MINO
[hardware_config]
archive_synchronizer: present
galaxy_camera: absent
label_printer: present
multicomp: present
neo_pixels: present
remote_api: present
screwdriver: present
tecna_t3: present
uvc_camera: present
vision_saver: present
vision: present
[tecna_t3]
model: t3l
port: /dev/ttyUSB0
[multicomp]
port: /dev/ttyACM0
[neo_pixels]
port: /dev/ttyACM1
[archive_synchronizer]
poll_time: 6
hold_time: 1

View File

@ -1,18 +0,0 @@
[machine]
description = NEO-DL
[hardware_config]
archive_synchronizer: absent
galaxy_camera: present
label_printer: present
neo_pixels: present
remote_api: absent
tecna_t3: present
vision_saver: present
vision: present
[tecna_t3]
port: /dev/ttyUSB0
[neo_pixels]
port: /dev/ttyACM0

View File

@ -0,0 +1,62 @@
[machine]
description = ST-TEN-2 - COLLAUDO TUBI RISCALDATI VOLPIANO
[hardware_config]
archive_synchronizer: present
label_printer: present
remote_api: absent
tecna_t3: present
[digital_io]
# OUTPUT MAP FOR EXTERNAL FLUSH/BLOW UNIT
id_flush_blow: USB-5860,BID#0
blow_on: 0 # INPUT VALVE TO SERVICE AIR
flush_on: 1 # OUTPUT VALVE TO DIRT COLLECTOR
blow_led:2 # CLEAN INDICATOR
test_on_led:3 # LEAK TEST ACTIVE INDICATOR
flush_led:4 # FLUSH INDICATOR
[tecna_t3]
port: /dev/ttyUSB0
[recipe]
recipe_name_field: cod finito cliente
part_number_field: cod finito r5
barcode_enable_field: verifica_codice_a_barre_abilitata
barcode_serial_field: codice_a_barre
label_template_field: etichetta
description_field: cod semilavorato costampato
[recipes_defaults]
prova_tenuta_abilitata: x
warning_img:
tempo_pre_riempimento: 0
pressione_pre_riempimento: 1000
tempo_riempimento: 10
tempo_assestamento: 10
percentuale_minima_pressione_assestamento: 5
percentuale_massima_pressione_assestamento: 5
tempo_di_test: 10
pressione_di_test_delta_minimo: 30
pressione_di_test: 15000
pressione_di_test_delta_massimo: 30
tempo_svuotamento: 1
pressione_svuotamento: 100
canale_di_prova: 0
tester_discharge_enable: yes
[autotest_leak]
enabled: true
pre_filling_time: 0
pre_filling_pressure: 1000
filling_time: 5
settling_time: 10
settling_pressure_min_percent: 5
settling_pressure_max_percent: 5
test_time: 10
test_pressure_qneg: 5
test_pressure: 9000
test_pressure_qpos: 5
flush_time: 1
flush_pressure: 100
relay_config: 1

View File

@ -3,7 +3,7 @@ description = ST-TEN-1
[hardware_config]
archive_synchronizer: present
; galaxy_camera: present
# galaxy_camera: present
uvc_camera: present
label_printer: present
neo_pixels: present
@ -31,12 +31,10 @@ platform: windows
printer: zd420
[recipes_defaults]
codice_ricetta: specificare ricetta
cliente: IVECO
part_number: specificare part number
config_elettrovalvole: 0
canale_di_prova: 0
warning_img:
dimensione_lotto_abilitata:
@ -82,14 +80,16 @@ descrizione: inserire descrizione ricetta
enabled: true
pre_filling_time: 0
pre_filling_pressure: 1000
filling_time: 15
filling_time: 10
settling_time: 10
settling_pressure_min_percent: 5
settling_pressure_max_percent: 5
test_time: 10
test_pressure_qneg: 10
test_pressure: 7000
test_pressure_qpos: 5
test_time: 10
test_pressure_qpos: 10 #Q+ Upper test leak limit
test_pressure_qneg: 20 #Q- Lower test leak limit
test_pressure_tt_qpos: 1 # Q+ Upper test leak limit (tube-tube)
test_pressure_tt_qneg: 5 # Q- Lower test leak limit (tube-tube)
flush_time: 1
flush_pressure: 100
relay_config: 1

View File

@ -0,0 +1,67 @@
[machine]
description = ST-TEN-2 - COLLAUDO TUBI RISCALDATI VOLPIANO
[hardware_config]
archive_synchronizer: present
label_printer: present
multicomp: present
remote_api: absent
tecna_t3: present
[digital_io]
# OUTPUT MAP FOR EXTERNAL FLUSH/BLOW UNIT
id_flush_blow: USB-5860,BID#0
blow_on: 0 # INPUT VALVE TO SERVICE AIR
flush_on: 1 # OUTPUT VALVE TO DIRT COLLECTOR
blow_led:2 # CLEAN INDICATOR
test_on_led:3 # LEAK TEST ACTIVE INDICATOR
flush_led:4 # FLUSH INDICATOR
[tecna_t3]
port: /dev/ttyUSB0
[multicomp]
port: COM10
4wire: enabled
[recipe]
recipe_name_field: cod finito cliente
part_number_field: cod finito r5
barcode_enable_field: verifica_codice_a_barre_abilitata
barcode_serial_field: codice_a_barre
label_template_field: etichetta
description_field: cod semilavorato costampato
[recipes_defaults]
prova_tenuta_abilitata: x
warning_img:
tempo_pre_riempimento: 0
pressione_pre_riempimento: 1000
tempo_riempimento: 10
tempo_assestamento: 10
percentuale_minima_pressione_assestamento: 5
percentuale_massima_pressione_assestamento: 5
tempo_di_test: 10
pressione_di_test_delta_minimo: 30
pressione_di_test: 15000
pressione_di_test_delta_massimo: 30
tempo_svuotamento: 1
pressione_svuotamento: 100
canale_di_prova: 0
tester_discharge_enable: yes
[autotest_leak]
enabled: true
pre_filling_time: 0
pre_filling_pressure: 1000
filling_time: 5
settling_time: 10
settling_pressure_min_percent: 5
settling_pressure_max_percent: 5
test_time: 10
test_pressure_qneg: 5
test_pressure: 9000
test_pressure_qpos: 5
flush_time: 1
flush_pressure: 100
relay_config: 1

View File

@ -8,6 +8,15 @@ multicomp: present
remote_api: absent
tecna_t3: present
[digital_io]
# OUTPUT MAP FOR EXTERNAL FLUSH/BLOW UNIT
id_flush_blow: USB-5860,BID#0
blow_on: 0 # INPUT VALVE TO SERVICE AIR
flush_on: 1 # OUTPUT VALVE TO DIRT COLLECTOR
blow_led:2 # CLEAN INDICATOR
test_on_led:3 # LEAK TEST ACTIVE INDICATOR
flush_led:4 # FLUSH INDICATOR
[tecna_t3]
port: COM6
@ -38,7 +47,8 @@ pressione_di_test: 15000
pressione_di_test_delta_massimo: 30
tempo_svuotamento: 1
pressione_svuotamento: 100
config_elettrovalvole: 0
canale_di_prova: 0
tester_discharge_enable: yes
[autotest_leak]
enabled: true

View File

@ -38,4 +38,23 @@ pressione_di_test: 15000
pressione_di_test_delta_massimo: 30
tempo_svuotamento: 1
pressione_svuotamento: 100
config_elettrovalvole: 0
canale_di_prova: 0
tester_discharge_enable: yes
[autotest_leak]
enabled: true
pre_filling_time: 0
pre_filling_pressure: 1000
filling_time: 10
settling_time: 10
settling_pressure_min_percent: 5
settling_pressure_max_percent: 5
test_pressure: 7000
test_time: 10
test_pressure_qpos: 1 #Q+ Upper test leak limit
test_pressure_qneg: 10 #Q- Lower test leak limit
test_pressure_tt_qpos: 1 # Q+ Upper test leak limit (tube-tube)
test_pressure_tt_qneg: 5 # Q- Lower test leak limit (tube-tube)
flush_time: 1
flush_pressure: 100
relay_config: 1

View File

@ -1,31 +1,80 @@
[machine]
description = ST-TEN-4 - TERMOFORMATURA MAPPANO
description = ST-TEN-4 - REPARTO PREFORMATURA - MAPPANO
[hardware_config]
archive_synchronizer: present
; galaxy_camera: present
uvc_camera: present
uvc_camera: absent
label_printer: present
neo_pixels: present
neo_pixels: absent
remote_api: absent
tecna_t3: present
vision_saver: absent
vision: absent
screwdriver: present
screwdriver: absent
[tecna_t3]
port: COM4
model: t3l
model: t3p
[neo_pixels]
port: COM5
[label_printer]
platform: windows
printer: zd421
[recipe]
recipe_name_field: codice_ricetta
part_number_field: codice_prodotto
label_template_field: modello_etichetta
description_field: descrizione
[label_printer]
platform: windows
printer: zd420
[recipes_defaults]
dimensione_lotto_abilitata:
tempo_pre_riempimento: 0
pressione_pre_riempimento: 1000
tempo_riempimento: 10
tempo_assestamento: 10
tempo_di_test: 10
percentuale_minima_pressione_assestamento: 5
percentuale_massima_pressione_assestamento: 5
pressione_di_test_delta_minimo: 30
pressione_di_test: 7000
pressione_di_test_delta_massimo: 30
tempo_svuotamento: 1
pressione_svuotamento: 100
canale_di_prova: 1
prova_tenuta_abilitata_2:
tempo_pre_riempimento_2: 0
pressione_pre_riempimento_2: 1000
tempo_riempimento_2: 10
tempo_assestamento_2: 10
tempo_di_test_2: 10
percentuale_minima_pressione_assestamento_2: 5
percentuale_massima_pressione_assestamento_2: 5
pressione_di_test_delta_minimo_2: 30
pressione_di_test_2: 15000
pressione_di_test_delta_massimo_2: 30
tempo_svuotamento_2: 1
pressione_svuotamento_2: 100
canale_di_prova_2: 2
modello_etichetta: EtichettaR5_Montaggio_1prova.prn
pid_pressure_correction: 140
[autotest_leak]
enabled: true
pre_filling_time: 0
pre_filling_pressure: 1000
filling_time: 10
settling_time: 10
settling_pressure_min_percent: 5
settling_pressure_max_percent: 5
test_pressure: 2000
test_time: 10
test_pressure_qpos: 3 #Q+ Upper test leak limit (negative mbar)
test_pressure_qneg: 15 #Q- Lower test leak limit (negative mbar)
test_pressure_tt_qpos: 1 # Q+ Upper test leak limit (tube-tube) (positive mbar)
test_pressure_tt_qneg: 5 # Q- Lower test leak limit (tube-tube) (negative mbar)
flush_time: 1
flush_pressure: 100
relay_config: 1

View File

@ -9,7 +9,9 @@ extra_label_printer: present
remote_api: absent
tecna_t3: present
digital_io: present
digital_io_flush_blow: present
barcode_recipe_selection: present
external_flush_blow: present # EXTERNAL BOX CONTROLLING MULTI-CHANNEL TEST (IF PRESENT), BLOW-CLEANING AND EXTERNAL FLUSH
show_instructions: yes
[tecna_t3]
@ -33,14 +35,20 @@ printer: xlp504
[digital_io]
id: USB-5862,BID#0
[digital_io_flush_blow]
id: USB-5860,BID#0
# OUTPUT MAP FOR EXTERNAL FLUSH/BLOW UNIT
blow_on: 0 # INPUT VALVE TO SERVICE AIR
flush_on: 1 # OUTPUT VALVE TO DIRT COLLECTOR
blow_led:2 # CLEAN INDICATOR
ch1_led:3 # CHANNEL 1 ACTIVE INDICATOR
flush_led:4 # FLUSH INDICATOR
[recipes_defaults]
codice_ricetta: specificare ricetta
cliente: IVECO
part_number: specificare part number
config_elettrovalvole: 0
canale_di_prova: 0
warning_img:
dimensione_lotto_abilitata:
@ -90,10 +98,12 @@ filling_time: 15
settling_time: 10
settling_pressure_min_percent: 5
settling_pressure_max_percent: 5
test_time: 10
test_pressure_qneg: 10
test_pressure: 5000
test_time: 10
test_pressure_qpos: 5
test_pressure_qneg: 17
test_pressure_tt_qpos: 1 # Q+ Upper test leak limit (tube-tube) (positive mbar)
test_pressure_tt_qneg: 5 # Q- Lower test leak limit (tube-tube) (negative mbar)
flush_time: 1
flush_pressure: 100
relay_config: 1

View File

@ -11,8 +11,10 @@ tecna_t3: present
vision_saver: absent
vision: absent
screwdriver: absent
digital_io: present
digital_io_flush_blow: present
second_leak_test: present
external_flush_blow: present # EXTERNAL BOX CONTROLLING MULTI-CHANNEL TEST (IF PRESENT), BLOW-CLEANING AND EXTERNAL FLUSH
dual_channel: present
[tecna_t3]
port: COM4
@ -25,8 +27,17 @@ port: COM5
platform: windows
printer: zd421
[digital_io]
[digital_io_flush_blow]
id: USB-5860,BID#0
# OUTPUT MAP FOR EXTERNAL FLUSH/BLOW UNIT
blow_on: 3 # INPUT VALVE TO SERVICE AIR
out_channel_select: 2 # AIR OUT VALVE (0=CH1, 1=CH2)
in_channel_select: 0 # AIR IN VALVE (0=CH1, 1=CH2)
flush_on: 1 # OUTPUT VALVE TO DIRT COLLECTOR
blow_led:7 # CLEAN INDICATOR
ch1_led:6 # CHANNEL 1 ACTIVE INDICATOR
ch2_led:5 # CHANNEL 2 ACTIVE INDICATOR
flush_led:4 # FLUSH INDICATOR
[recipe]
recipe_name_field: codice_ricetta
@ -36,6 +47,7 @@ description_field: descrizione
[recipes_defaults]
dimensione_lotto_abilitata:
tempo_soffiaggio: 5
tempo_pre_riempimento: 0
pressione_pre_riempimento: 1000
tempo_riempimento: 10
@ -48,7 +60,7 @@ pressione_di_test: 7000
pressione_di_test_delta_massimo: 30
tempo_svuotamento: 1
pressione_svuotamento: 100
config_elettrovalvole: 1
canale_di_prova: 0
prova_tenuta_abilitata_2:
tempo_pre_riempimento_2: 0
pressione_pre_riempimento_2: 1000
@ -62,7 +74,7 @@ pressione_di_test_2: 15000
pressione_di_test_delta_massimo_2: 30
tempo_svuotamento_2: 1
pressione_svuotamento_2: 100
config_elettrovalvole_2: 2
canale_di_prova_2: 1
modello_etichetta: EtichettaR5_Montaggio_1prova.prn
[autotest_leak]
@ -77,8 +89,8 @@ test_pressure: 7000
test_time: 10
test_pressure_qpos: 5 #Q+ Upper test leak limit
test_pressure_qneg: 15 #Q- Lower test leak limit
test_pressure_tt_qpos: 0 # Q+ Upper test leak limit (tube-tube)
test_pressure_tt_qpos: 1 # Q+ Upper test leak limit (tube-tube)
test_pressure_tt_qneg: 5 # Q- Lower test leak limit (tube-tube)
flush_time: 1
flush_pressure: 100
relay_config: 1
chan_sel: 0

View File

@ -5,65 +5,82 @@ description = ST-TEN-7 SECONDO BANCO IVECO DAILY ELETTRICO
archive_synchronizer: present
uvc_camera: absent
label_printer: present
neo_pixels: present
extra_label_printer: present
remote_api: absent
tecna_t3: present
vision_saver: absent
vision: absent
screwdriver: absent
digital_io: present
second_leak_test: present
digital_io: absent
barcode_recipe_selection: present
show_instructions: no
[tecna_t3]
port: COM4
model: t3l
[neo_pixels]
port: COM5
[recipe]
recipe_name_field: codice_ricetta
part_number_field: codice_ricetta
label_template_field: modello_etichetta
description_field: descrizione
[label_printer]
platform: windows
printer: zd421
[digital_io]
id: USB-5860,BID#0
[extra_label_printer]
platform: windows
printer: zt231
[recipe]
recipe_name_field: codice_ricetta
part_number_field: codice_prodotto
label_template_field: modello_etichetta
description_field: descrizione
[digital_io]
id: USB-5862,BID#0
[recipes_defaults]
codice_ricetta: specificare ricetta
cliente: IVECO
part_number: specificare part number
canale_di_prova: 0
warning_img:
dimensione_lotto_abilitata:
istruzione_abilitata: x
numero nastri (n):0
numero sensori anello (sa):0
numero sensori presenza (sp):0
prova_tenuta_abilitata: x
tempo_pre_riempimento: 0
pressione_pre_riempimento: 1000
tempo_riempimento: 15
tempo_assestamento: 15
tempo_di_test: 10
pressione_pre_riempimento: 5000
tempo_riempimento: 5
tempo_assestamento: 10
percentuale_minima_pressione_assestamento: 5
percentuale_massima_pressione_assestamento: 5
tempo_di_test: 10
pressione_di_test_delta_minimo: 30
pressione_di_test: 7000
pressione_di_test: 5000
pressione_di_test_delta_massimo: 30
tempo_svuotamento: 1
pressione_svuotamento: 100
config_elettrovalvole: 1
prova_tenuta_abilitata_2:
tempo_pre_riempimento_2: 0
pressione_pre_riempimento_2: 1000
tempo_riempimento_2: 20
tempo_assestamento_2: 20
tempo_di_test_2: 10
tempo_riempimento_2: 5
tempo_assestamento_2: 5
percentuale_minima_pressione_assestamento_2: 5
percentuale_massima_pressione_assestamento_2: 5
pressione_di_test_delta_minimo_2: 30
pressione_di_test_2: 15000
pressione_di_test_delta_massimo_2: 30
tempo_di_test_2: 5
pressione_di_test_delta_minimo_2: 200
pressione_di_test_2: 1000
pressione_di_test_delta_massimo_2: 200
tempo_svuotamento_2: 1
pressione_svuotamento_2: 100
config_elettrovalvole_2: 2
modello_etichetta: EtichettaR5_Montaggio_1prova.prn
stampa_etichetta_abilitata: x
modello_etichetta: ETA30x16_203dpi.prn
descrizione: inserire descrizione ricetta
[autotest_leak]
enabled: true
@ -73,10 +90,12 @@ filling_time: 15
settling_time: 10
settling_pressure_min_percent: 5
settling_pressure_max_percent: 5
test_pressure: 5000
test_time: 10
test_pressure_qneg: 35
test_pressure: 15000
test_pressure_qpos: 5
test_pressure_qpos: 7
test_pressure_qneg: 17
test_pressure_tt_qpos: 1 # Q+ Upper test leak limit (tube-tube) (positive mbar)
test_pressure_tt_qneg: 5 # Q- Lower test leak limit (tube-tube) (negative mbar)
flush_time: 1
flush_pressure: 100
relay_config: 1

View File

@ -12,9 +12,11 @@ vision_saver: absent
vision: absent
screwdriver: absent
digital_io: present
second_leak_test: absent
barcode_recipe_selection: present
fixture_id: present
discard_box: present
enforce_piece_removal: yes
external_flush_blow: present # EXTERNAL BOX CONTROLLING MULTI-CHANNEL TEST (IF PRESENT), BLOW-CLEANING AND EXTERNAL FLUSH
[tecna_t3]
port: COM4
@ -25,8 +27,20 @@ platform: windows
printer: zd421
[digital_io]
id: USB-5860,BID#0
discard_idx:15 # BIT NUMBER OF THE I/0 MODULE USED FOR DISCARD SENSING
# OUTPUT MAP FOR EXTERNAL FLUSH/BLOW UNIT
id_flush_blow: USB-5860,BID#0
blow_on: 3 # INPUT VALVE TO SERVICE AIR
out_channel_select: 2 # AIR OUT VALVE (0=CH1, 1=CH2)
in_channel_select: 0 # AIR IN VALVE (0=CH1, 1=CH2)
flush_on: 1 # OUTPUT VALVE TO DIRT COLLECTOR
blow_led:7 # CLEAN INDICATOR
ch1_led:6 # CHANNEL 1 ACTIVE INDICATOR
ch2_led:5 # CHANNEL 2 ACTIVE INDICATOR
flush_led:4 # FLUSH INDICATOR
# OUTPUT MAP FOR FIXTURE CONNECTOR
id_fixture: USB-5862,BID#0
discard_idx:12 # BIT NUMBER OF THE I/0 MODULE USED FOR DISCARD SENSING
[fixture_rfid]
port: COM5
@ -38,7 +52,8 @@ label_template_field: modello_etichetta
description_field: descrizione
[recipes_defaults]
dimensione_lotto_abilitata:
tester_discharge_enable: yes
dimensione_lotto_abilitata: x
tempo_pre_riempimento: 0
pressione_pre_riempimento: 1000
tempo_riempimento: 15
@ -51,7 +66,7 @@ pressione_di_test: 7000
pressione_di_test_delta_massimo: 30
tempo_svuotamento: 1
pressione_svuotamento: 100
config_elettrovalvole: 1
canale_di_prova: 1
prova_tenuta_abilitata_2:
tempo_pre_riempimento_2: 0
pressione_pre_riempimento_2: 1000
@ -65,21 +80,24 @@ pressione_di_test_2: 15000
pressione_di_test_delta_massimo_2: 30
tempo_svuotamento_2: 1
pressione_svuotamento_2: 100
config_elettrovalvole_2: 2
canale_di_prova_2: 2
modello_etichetta: EtichettaR5_Montaggio_1prova.prn
pid_pressure_correction: 110
[autotest_leak]
enabled: true
pre_filling_time: 0
pre_filling_pressure: 1000
filling_time: 15
filling_time: 10
settling_time: 10
settling_pressure_min_percent: 5
settling_pressure_max_percent: 5
test_pressure: 7000
test_time: 10
test_pressure_qneg: 35
test_pressure: 15000
test_pressure_qpos: 5
test_pressure_qpos: 10 #Q+ Upper test leak limit
test_pressure_qneg: 30 #Q- Lower test leak limit
test_pressure_tt_qpos: 1 # Q+ Upper test leak limit (tube-tube)
test_pressure_tt_qneg: 5 # Q- Lower test leak limit (tube-tube)
flush_time: 1
flush_pressure: 100
relay_config: 1

View File

@ -0,0 +1,83 @@
[machine]
description = ST-TEN-9 SATIL SRL - BANCO PROVA TENUTA 10 BAR
[hardware_config]
archive_synchronizer: absent
label_printer: present
remote_api: absent
tecna_t3: absent
furness_controls: present
[archive_synchronizer]
archive_endpoint: https://satilportal.it/api/st-ten-save/
poll_time: 60
hold_time: 1
[furness_controls]
port: COM3
model: fco730
[label_printer]
platform: windows
printer: zd421
[digital_io]
# OUTPUT MAP FOR EXTERNAL FLUSH/BLOW UNIT
id_flush_blow: USB-5860,BID#0
blow_on: 3 # INPUT VALVE TO SERVICE AIR
out_channel_select: 2 # AIR OUT VALVE (0=CH1, 1=CH2)
in_channel_select: 0 # AIR IN VALVE (0=CH1, 1=CH2)
flush_on: 1 # OUTPUT VALVE TO DIRT COLLECTOR
blow_led:7 # CLEAN INDICATOR
ch1_led:6 # CHANNEL 1 ACTIVE INDICATOR
ch2_led:5 # CHANNEL 2 ACTIVE INDICATOR
flush_led:4 # FLUSH INDICATOR
# OUTPUT MAP FOR FIXTURE CONNECTOR
id_fixture: USB-5862,BID#0
discard_idx:12 # BIT NUMBER OF THE I/0 MODULE USED FOR DISCARD SENSING
[fixture_rfid]
port: COM5
[recipe]
recipe_name_field: codice_ricetta
part_number_field: codice_prodotto
label_template_field: modello_etichetta
description_field: descrizione
[recipes_defaults]
tester_discharge_enable: yes
dimensione_lotto_abilitata:
tempo_pre_riempimento: 0
pressione_pre_riempimento: 0
tempo_riempimento: 5
tempo_assestamento: 10
tempo_di_test: 10
percentuale_minima_pressione_assestamento: 5
percentuale_massima_pressione_assestamento: 5
pressione_di_test_delta_minimo: 20 # +mbar
pressione_di_test: 5000 # mbar
pressione_di_test_delta_massimo: 20 # -mbar
tempo_svuotamento: 1
pressione_svuotamento: 100
canale_di_prova: 1
modello_etichetta: R5_30x17_203dpi.prn
[autotest_leak]
enabled: true
pre_filling_time: 0
pre_filling_pressure: 0
filling_time: 10
settling_time: 10
settling_pressure_min_percent: 5
settling_pressure_max_percent: 5
test_pressure: 5000
test_time: 10
test_pressure_qpos: 10 #Q+ Upper test leak limit
test_pressure_qneg: 30 #Q- Lower test leak limit
test_pressure_tt_qpos: 1 # Q+ Upper test leak limit (tube-tube)
test_pressure_tt_qneg: 5 # Q- Lower test leak limit (tube-tube)
flush_time: 1
flush_pressure: 100
relay_config: 1

View File

@ -1,8 +0,0 @@
[machine]
description = VM
[tecna_t3]
port: COM4
[neo_pixels]
port: COM3

View File

@ -1,7 +1 @@
#!/bin/bash -x
cd "$(dirname "$0")"
source "./venv/bin/activate" || source "./venv/Scripts/activate" || :
#python3 -m pip install --upgrade qt5-tools
#"$(python3 -c "import sys; print(sys.path[-1])")/qt5_applications/Qt/bin/designer" $*
$(pwd)/venv/lib/python3.9/site-packages/qt5_applications/Qt/bin/designer $*
#$(pwd)/venv/lib/python3.8/site-packages/qt5_applications/Qt/bin/designer $*
pyqt5-tools designer

View File

@ -1 +1 @@
.\venv\Lib\site-packages\qt5_applications\Qt\bin\designer.exe
pyqt5-tools designer

View File

@ -4,11 +4,11 @@ here="$(realpath "$(dirname "$0")")"
cd "$here"
echo "---------- initialize venv ----------"
sudo apt-get install python3-venv
sudo apt-get install python3 python3-venv python-is-python3 python3-pip
lsof "./venv/bin/python" | awk 'NR > 1 {print $2}' | xargs kill || :
lsof "./venv/Scripts/activate" | awk 'NR > 1 {print $2}' | xargs kill || :
python="python"
"${python}" -m pip install --upgrade pip
#"${python}" -m pip install --upgrade pip
"${python}" -m venv venv
source "./venv/bin/activate" || source "./venv/Scripts/activate" || :
"${python}" -m pip install --upgrade pip
@ -42,7 +42,7 @@ source "./venv/bin/activate" || source "./venv/Scripts/activate" || :
# DOCKER_IMAGE="ubuntu:18.04" DOCKER_TARGETS=libedgetpu make docker-build
# sudo make install
# cd "$here"
#echo "---------- install gxlpy ----------"
#echo "---------- install gxipy ----------"
#sudo apt-get install -y g++ libc-bin
#mkdir -p "$here/tmp"
#cd "$here/tmp"

View File

@ -9,6 +9,9 @@ cd tmp
:: Advantech XNAVI
Invoke-WebRequest -uri "https://downloadt.advantech.com/download/downloadsr.aspx?File_Id=1-2BZC0F1" -usebasicparsing -outfile xnavi.zip
Expand-Archive .\xnavi.zip
cd xnavi
./xnavi.exe
:: GXIPY
Invoke-WebRequest -uri "https://dahengimaging.com/downloads/Galaxy_Windows_EN_32bits%2064bits_1.18.2208.9301.zip" -usebasicparsing -OutFile Galaxy_Windows_EN_32bits_64bits_1.18.2208.9301.zip

View File

@ -0,0 +1,9 @@
set SCRIPT="%TEMP%\%RANDOM%-%RANDOM%-%RANDOM%-%RANDOM%.vbs"
echo Set oWS = WScript.CreateObject("WScript.Shell") >> %SCRIPT%
echo sLinkFile = "%USERPROFILE%\Desktop\NO AUTOTEST.lnk" >> %SCRIPT%
echo Set oLink = oWS.CreateShortcut(sLinkFile) >> %SCRIPT%
echo oLink.TargetPath = "%userprofile%\PycharmProjects\st-ten-1\runme_noautotest.bat" >> %SCRIPT%
echo oLink.IconLocation = "%userprofile%\PycharmProjects\st-ten-1\src\ui\imgs\neo_red.ico"
echo oLink.Save >> %SCRIPT%
cscript /nologo %SCRIPT%
del %SCRIPT%

1
open_osk.bat Normal file
View File

@ -0,0 +1 @@
osk

View File

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

View File

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

View File

@ -9,8 +9,9 @@ from .remote_api import RemoteAPI
from .serial_label_printer import Serial_Label_Printer
from .tecna_marposs_provaset_t3 import TecnaMarpossProvasetT3
from .tecna_screwdriver import TecnaScrewdriver
from .test_component import TestComponent
from .usb_586x import USB_586x
from .rfid_pn532 import RFID_PN532
from .furness_controls_leak_tester import FurnessControlsLeakTester
if "--vision" in sys.argv:
from .galaxy_camera import GalaxyCamera
from .neo_pixels import NeoPixels

View File

@ -43,6 +43,8 @@ class ArchiveSynchronizer(Component):
record.archived = self.remote_archive(record) is True
if record.uploaded is not True:
record.uploaded = self.remote_store(record) is True
else:
self.log.info("simulated archive synchronizer cycle")
record.save()
if self.hold_time > 0:
QThread.msleep(self.hold_time)

View File

@ -85,6 +85,7 @@ class Component(QObject):
"""
super().__init__()
self.config = config
self.log=logging.getLogger(f"{self.__class__.__name__}")
self.name = name if name is not None else str(id(self))
self._threaded = threaded
self._period = period

View File

@ -10,9 +10,6 @@ if platform.architecture()[0] == '32bit':
c_uint64 = c_uint32
if platform.system().lower() == 'windows':
dll = windll.LoadLibrary(r"biodaq")
else:
dll = None

View File

@ -16,11 +16,11 @@ class ModbusClient:
return Readout([0] * count)
def write_register(self, register, data, unit=None, **kwargs):
self.log.debug(f"{unit}->{register} ({kwargs}) write: {data}, ", flush=True)
self.log.debug(f"{unit}->{register} ({kwargs}) write: {data}, ")
return Readout()
def write_registers(self, registers, data, unit=None, **kwargs):
self.log.debug(f"{unit}->{registers} ({kwargs}) write: {data}, ", flush=True)
self.log.debug(f"{unit}->{registers} ({kwargs}) write: {data}, ")
return Readout()
def close(self):

View File

@ -0,0 +1,82 @@
registers = {
"commands": {
"program_data": b'A000',
"product_data": b'B050',
"function_data": b'D000',
"counters": b'E000',
"change_cur_prod": b'F000',
"change_cur_prod_50": b'F050',
"start_test": b'G000',
"reset_test": b'H000',
"version_num_range": b'I000',
"reset_counters": b'J000',
"self_check": b'K000',
"last_test_result": b'L000',
"current_status": b'M000',
"zero_pressure": b'O000',
"security_data": b'P000',
"printer_settings": b'S000',
"comm_settings": b'x000'
},
"product_tags": {
"product_id": b'a',
"test_pressure": b'b',
"tolerance": b'c',
"+fail": b'd',
"-fail": b'e',
"fill_time": b'f',
"stab_time": b'g',
"test_time": b'h',
"prefill_time": b'l',
"vent_time": b'm',
"test_type": b'n',
"fail_high": b'o',
"fail_low": b'p',
"outputs_a_h": b'q',
"prefill_pressure": b'r',
},
"program_tags": {
"leak_units": b'a',
"press_units": b'b',
"leak_at_eot": b'c',
"product": b'l',
},
"enums": {
"status_status": {
'0': 'ready_to_start',
'1': 'fault',
'2':'awaiting_reset',
'3': 'pressure_high',
'4': 'pressure_low',
'5': 'testing',
},
"status_current_stage": {
'0': 'STANDBY',
'1': 'RIEMPIMENTO',
'2': 'ASSESTAMENTO',
'3': 'MISURA',
'4': 'ATTESA RESET',
'5': 'ATTESA START',
'6': 'ERRORE',
'7': 'PRESSIONE ALTA',
'8': 'PRESSIONE BASSA',
'9': 'jig_delay',
'10': 'prefilling',
'11': 'SCARICO',
'12': 'reserverd',
'13': 'sequence_delay',
'14': 'jig_open'
},
"status_result":{
'0': 'PASSED',
'1': 'NEGATIVE FAIL',
'2': 'POSITIVE FAIL',
'3': 'RESERVED',
'4': 'PRESSURE GROSS FAIL',
'5': 'RESET DURING TEST',
'6': 'GLOBAL FAIL',
}
}
}

View File

@ -0,0 +1,45 @@
registers = {
"commands": {
"program_data": b'A000',
"product_data": b'B050',
"function_data": b'D000',
"counters": b'E000',
"change_cur_prod": b'F000',
"change_cur_prod_50": b'F050',
"start_test": b'G000',
"reset_test": b'H000',
"version_num_range": b'I000',
"reset_counters": b'J000',
"self_check": b'K000',
"last_test_result": b'L000',
"current_status": b'M000',
"zero_pressure": b'O000',
"security_data": b'P000',
"printer_settings": b'S000',
"comm_settings": b'x000'
},
"product_tags": {
"product_id": b'a',
"test_pressure": b'b',
"tolerance": b'c',
"+fail": b'd',
"-fail": b'e',
"fill_time": b'f',
"stab_time": b'g',
"test_time": b'h',
"prefill_time": b'l',
"vent_time": b'm',
"test_type": b'n',
"fail_high": b'o',
"fail_low": b'p',
"outputs_a_h": b'q',
"prefill_pressure": b'r',
},
"program_tags": {
"leak_units": b'a',
"press_units": b'b',
"leak_at_eot": b'c',
"product": b'l',
}
}

View File

@ -0,0 +1,291 @@
import re
import sys
import time
from collections import OrderedDict
from PyQt5.QtCore import QMutex
from components.component import Component
from components.furness_controls_fco730_registers import registers as fco730_registers
from components.furness_controls_fco780_registers import registers as fco780_registers
if "--sim-furness-controls" in sys.argv:
from components.dummies.serial import serial
else:
import serial
ETX = b'\x03'
EOT = b'\x04'
ENQ = b'\x05'
ACK = b'\x06'
NACK = b'\x15'
class FurnessControlsLeakTester(Component):
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)
self.enums = None
self.current_status = None
self.product_tags = None
self.bytesize = None
self.timeout = None
self.parity = None
self.conn = None
self.lock = QMutex()
self.stopbits = None
self.baudrate = None
self.port = None
self.model = None
self.settings = None
self.commands = None
self.id1 = b'0'
self.id2 = b'1'
def config_changed(self):
super().config_changed()
self.model = self.config[self.name]["model"].lower()
if self.model == "fco730":
self.commands = fco730_registers["commands"]
self.product_tags = fco730_registers["product_tags"]
self.enums = fco730_registers["enums"]
else:
raise NotImplementedError(f"Furness Controls model {self.model!r} not implemented.")
self.port = self.config[self.name]["port"]
self.baudrate = 9600
self.stopbits = 1
self.parity = serial.PARITY_NONE
self.bytesize = serial.EIGHTBITS
self.timeout = 0.1
if self.conn is not None:
self.conn.close()
self.conn = serial.Serial(
self.port,
baudrate=self.baudrate,
stopbits=self.stopbits,
parity=self.parity,
bytesize=self.bytesize,
timeout=self.timeout,
write_timeout=self.timeout,
)
def _convert_from_format(self, data, formatting=None, decoding_map=None):
if decoding_map is not None and data in decoding_map:
data = decoding_map[data]
if formatting is not None:
# units = self.units[formatting]
# data = [data * units[0], units[1]]
data = data * self.units[formatting][0]
return data
@Component.reconfig_on_error
def _get(self):
# READ INFO
current_status = self.get_status()
info = {
"Real time test pressure output": current_status["pressure_reading"],
"Real time differential pressure output": 0,
"Real time pressure line regulator": 0,
"Active alarm flags": 0,
"Active test program number": 0,
"Running test: active phase": current_status["current_stage"],
"Running test: measured leak": current_status["leak_reading"],
"Running test: test type": 0,
"Running test: sequence index": 0,
"Digital inputs status (mask)": 0,
}
if current_status['new_result_available'] == '1': # NEW TEST RESULT AVAILABLE
last_test_result = self.get_last_result() # READ RESULT TO RESET AVAILABLE FLAG
info.update({"Running test: result": last_test_result['status'],
"Running test: filling pressure": current_status["pressure_reading"],
"Running test: pressure at the end of settling": current_status["pressure_reading"],
})
for round_me in ["measured leak"]:
if round_me in info.keys():
info.update({round_me: float(f"{info[round_me]:.2f}")})
self.log.debug(str(info))
super()._get([info])
def start_test(self, table=None):
self.log.info(f"starting test")
self.send_command("start_test")
def stop_test(self):
self.log.warning("resetting state...")
current_status = self.get_status()
if current_status['status'] in ('ready_to_start',):
self.log.info("ready to start")
elif current_status['status'] in ('pressure_high', 'pressure_low', 'fault'):
self.log.info(f"{current_status['status']}, performing self check to reset")
elif current_status['status'] == "testing":
self.log.info("stop running test")
self.send_command("reset_test")
else:
self.log.error(f"unknown state {current_status['status']}")
time.sleep(2)
def get_status(self):
status_str = str(self.send_enquiry("current_status"), encoding="ascii")
status_str += 'z' # dummy terminator
status_vars = OrderedDict(
{
'a': 'counter',
'b': 'product_number',
'c': 'step_number',
'd': 'new_result_available',
'e': 'mode',
'f': 'status',
'g': 'pressure_reading',
'h': 'pressure_units',
'i': 'leak_reading',
'j': 'leak_offset',
'k': 'current_stage',
'z': 'dummy'
})
status_decoded = {}
for tag, param in status_vars.items():
next_tag = list(status_vars)[list(status_vars.keys()).index(tag) + 1]
match = re.search(f"{tag}([0-9.-]+){next_tag}", status_str)
value = None
if match is not None:
value = match.group(1)
if param == 'status':
value = self.enums['status_status'][value]
elif param == 'current_stage':
value = self.enums['status_current_stage'][value]
elif param == 'pressure_reading':
value = f"{float(value) * 1000:.1f}"
status_decoded[param] = value
if next_tag == 'z':
break
return status_decoded
def get_last_result(self):
res_str = str(self.send_enquiry("last_test_result"), encoding="ascii")
res_str += 'z' # dummy terminator
status_vars = OrderedDict(
{
'a': 'counter',
'b': 'step_number',
'c': 'product_number',
'd': 'status',
'z': 'dummy'
})
res_decoded = {}
for tag, param in status_vars.items():
next_tag = list(status_vars)[list(status_vars.keys()).index(tag) + 1]
match = re.search(f"{tag}([0-9.-]+){next_tag}", res_str)
value = None
if match is not None:
value = match.group(1)
if param == 'status':
value = self.enums['status_result'].get(value, 'NOK')
res_decoded[param] = value
if next_tag == 'z':
break
return res_decoded
def write_recipe(self, recipe, step, table=None):
# PREPARE DATA
product_id = '"' + recipe.part_number[:16] + '"'
product_id = product_id.encode("ascii")
test_press_bar = step.spec["test_pressure"] / 1000
prefill_press_bar = step.spec["pre_filling_pressure"] / 1000
tolerance = int(step.spec["settling_pressure_min_percent"])
fail_pos = (int(step.spec["test_pressure_qpos"]))
fail_neg = (int(step.spec["test_pressure_qneg"]))
fill_time = float(step.spec["filling_time"])
stab_time = float(step.spec["settling_time"])
test_time = float(step.spec["test_time"])
prefill_time = float(step.spec["pre_filling_time"])
vent_time = float(step.spec["flush_time"])
# SEND RECIPE PARAMETERS
self.send_command("change_cur_prod_50")
self.send_product_tag("product_id", product_id)
self.send_product_tag("prefill_pressure", f"{prefill_press_bar:2.3f}")
self.send_product_tag("test_pressure", f"{test_press_bar:2.3f}")
self.send_product_tag("tolerance", f"{tolerance:3.1f}")
self.send_product_tag("+fail", f"{fail_pos:3.1f}")
self.send_product_tag("-fail", f"{fail_neg:3.1f}")
self.send_product_tag("fill_time", f"{fill_time:3.1f}")
self.send_product_tag("stab_time", f"{stab_time:3.1f}")
self.send_product_tag("test_time", f"{test_time:3.1f}")
self.send_product_tag("prefill_time", f"{prefill_time:3.1f}")
self.send_product_tag("vent_time", f"{vent_time:3.1f}")
self.send_product_tag("fail_high", f"{fail_pos:3.1f}")
self.send_product_tag("fail_low", f"{fail_neg:3.1f}")
self.send_product_tag("outputs_a_h", f"{int(0b01000000)}")
self.get_last_result() # CLEAR POSSIBLE NEW RESULT AVAILABLE FLAG
def send_command(self, command):
if type(command) is str:
command = self.commands[command]
out_bytes = bytearray()
out_bytes.extend(EOT)
out_bytes.extend(self.id1)
out_bytes.extend(self.id2)
out_bytes.extend(command)
out_bytes.extend(ETX)
checksum = self.calc_checksum(out_bytes)
out_bytes.append(checksum)
self.lock.lock()
self.conn.write(out_bytes)
response = self.conn.read(1)
self.lock.unlock()
if response == ACK:
return True
else:
self.log.error(f"SEND COMMAND({command}):{response}")
return None
def send_enquiry(self, enquiry):
if type(enquiry) is str:
enquiry = self.commands[enquiry]
out_bytes = bytearray(EOT)
out_bytes.extend(self.id1)
out_bytes.extend(self.id2)
out_bytes.extend(enquiry)
out_bytes.extend(ENQ)
checksum = self.calc_checksum(out_bytes)
out_bytes.append(checksum)
self.lock.lock()
self.conn.write(out_bytes)
response = self.conn.read(100)
self.lock.unlock()
if len(response):
read_checksum = response[-1]
else:
read_checksum = None
calculated_checksum = self.calc_checksum(response[0:-1], start_idx=0)
if read_checksum != calculated_checksum:
self.log.error(f"ENQUIRY RESPONSE CHECKSUM:{read_checksum}!={calculated_checksum}")
return None
else:
response = response[:-2] # strip checksum & ETX
return response
def send_product_tag(self, tag, tag_data):
self.log.info(f"Sending tag:{tag}={tag_data}")
command = bytearray(self.commands["product_data"])
if type(tag_data) is str:
tag_data = bytearray(tag_data, encoding="ascii")
command.extend(self.product_tags[tag])
command.extend(tag_data)
self.send_command(command)
@staticmethod
def calc_checksum(data, start_idx=1):
checksum = 0
for i, data_byte in enumerate(data):
if i < start_idx:
continue # skip EOT
checksum = checksum ^ data_byte
return checksum

View File

@ -33,8 +33,8 @@ class ModbusComponent(Component):
self.stopbits = getattr(serial, self.config[self.name].get("stopbits", "stopbits_one").upper())
self.parity = getattr(serial, self.config[self.name].get("parity", "parity_none").upper())
self.bytesize = getattr(serial, self.config[self.name].get("bytesize", "eightbits").upper())
self.byteorder = getattr(Endian, self.config[self.name].get("byteorder", "Big").title())
self.wordorder = getattr(Endian, self.config[self.name].get("wordorder", "Little").title())
self.byteorder = getattr(Endian, self.config[self.name].get("byteorder", "Big").upper())
self.wordorder = getattr(Endian, self.config[self.name].get("wordorder", "Little").upper())
self.timeout = int(self.config[self.name].get("timeout", 1))
self.lock.lock()
self.client = ModbusClient(

View File

@ -1,6 +1,6 @@
import sys
if "--sim-serial" in sys.argv:
if "--sim-multicomp" in sys.argv:
from components.dummies.serial import serial
else:
import serial

View File

@ -8,7 +8,7 @@ from PyQt5.QtWidgets import QMessageBox
from .component import Component
if platform.system() == "Windows":
if platform.system().lower() == "windows":
import win32print
@ -34,8 +34,19 @@ class Os_Label_Printer(Component):
def print_label(self, template, context=None):
if context is None:
context = {}
custom_label_folder=f"config/label_templates/{str(self.config.machine_id)}/"
standard_label_folder=f"config/label_templates/"
if os.path.exists(custom_label_folder):
label_folder = custom_label_folder
else:
label_folder = standard_label_folder
label_path = label_folder+str(template)
if os.path.exists(label_path):
pass
else:
label_path = standard_label_folder+str(template)
# LOAD LABEL TEMPLATE
with open(f"config/label_templates/{str(template)}", "r", errors="surrogateescape", encoding='iso-8859-1') as f:
with open(label_path, "r", errors="surrogateescape", encoding='iso-8859-1') as f:
label_file_contents = f.read()
# LABEL PRINT
#label = label.format(**context)
@ -43,7 +54,7 @@ class Os_Label_Printer(Component):
for key, val in context.items():
key = "{" + key + "}"
label_file_contents = label_file_contents.replace(key, val)
if platform.system() == "Windows":
if platform.system().lower() == "windows":
try:
printer = win32print.OpenPrinter(self.printer)
job = win32print.StartDocPrinter(printer, 1, ("label", None, "RAW"))
@ -64,16 +75,14 @@ class Os_Label_Printer(Component):
label_file = "tmp/label.prn"
with open(label_file, "w", errors="surrogateescape") as f:
f.write(label_file_contents)
if self.platform == "windows":
if platform.system().lower() == "windows":
cmd = f'print /d:"{self.printer}" "{label_file}"'
elif self.platform == "cups":
cmd = f'lp -d "{self.printer}" "{label_file}"'
else:
raise NotImplementedError(f"platform {self.platform!r} is not supported")
cmd = f'lp -d "{self.printer}" "{label_file}"'
if not self.simulate:
p = subprocess.run(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, shell=True) # unsafe
if p.returncode != 0:
self.log.exception(f"failed to print: returncode: {p.returncode}\noutput:\n{p.stdout}")
self.log.exception(f"failed to print: return code: {p.returncode}\noutput:\n{p.stdout}")
QMessageBox.critical(
None,
"Errore Stampante",

View File

@ -1,42 +0,0 @@
import ctypes
import sys
import platform
from PyQt5.QtCore import QMutex, Qt, QTimer, pyqtSlot, pyqtSignal
from .component import Component
import nfc
from nfc.clf import RemoteTarget
is_win = platform.system() == "Windows"
class RFID(Component):
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)
self.mutex = QMutex()
self.simulate="--sim-rfid" in sys.argv
self.clf = nfc.ContactlessFrontend()
def open_device(self):
self.clf.open('tty:USB0:pn532')
def close_device(self):
pass
@pyqtSlot()
def start(self):
# ACQUISITION TIMER
self.timer = QTimer()
self.timer.setTimerType(Qt.PreciseTimer)
self.timer.setInterval(int(1000 / 20))
self.timer.timeout.connect(self.get)
self.timer.start()
super().start()
@pyqtSlot()
def get(self):
data=None
if data is not None:
super()._get([data])

View File

@ -0,0 +1,81 @@
import copy
import ctypes
import sys
import platform
from PyQt5.QtCore import QMutex, Qt, QTimer, pyqtSlot, pyqtSignal
from .component import Component
import ndef
import nfc
from nfc.clf import RemoteTarget
class RFID_PN532(Component):
new_id_signal = pyqtSignal(str)
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)
self.data_to_write = None
self.mutex = QMutex()
self.simulate="--sim-rfid" in sys.argv
self.clf = None
self.connected=False
self.tag_present=False
self.current_data=None
self.is_win = platform.system().lower() == "windows"
self.dev_list = [f"{'com'if self.is_win else 'tty'}:{self.config['fixture_rfid']['port']}:pn532"]
self._period = 1
def open_device(self):
self.clf = nfc.ContactlessFrontend()
for dev in self.dev_list:
self.connected = self.clf.open(dev)
if self.connected:
self.log.info(f"CONNECTED TO {dev}")
break
else:
self.log.info(f"UNABLE TO CONNECT TO {dev}")
def close_device(self):
self.clf.close()
@pyqtSlot()
def start(self):
super().start()
@pyqtSlot()
def _get(self):
if not self.simulate:
if self.mutex.tryLock():
try:
if not self.connected:
self.open_device()
else:
target = self.clf.sense(RemoteTarget('106A'), RemoteTarget('106B'), RemoteTarget('212F'))
if target is not None:
tag = nfc.tag.activate(self.clf, target)
if tag is not None:
self.log.debug("tag present")
if tag.ndef is not None:
tag_content=tag.ndef.records[0].text
if tag_content!=self.current_data:
self.log.info(f"new tag detected:{tag_content}")
self.current_data=tag_content
self.new_id_signal.emit(self.current_data)
else:
self.log.error("tag is not NDEF")
else:
if self.current_data:
self.log.info(f"tag removed:{self.current_data}")
self.current_data = None
self.new_id_signal.emit(None)
self.log.debug("no target present")
except Exception as e:
self.log.info(f"{e}")
self.connected = False
finally:
self.mutex.unlock()
def write_tag(self,data):
self.data_to_write=copy.deepcopy(data)

View File

@ -24,7 +24,7 @@ class TecnaMarpossProvasetT3(ModbusComponent):
elif self.model == "t3l":
self.registers = t3l_registers
else:
raise NotImplementedError(f"techna t3 model {self.model!r} not implemented.")
raise NotImplementedError(f"tecna t3 model {self.model!r} not implemented.")
self.set_measure_units()
self.units = self.get_measure_units()
self.max_program_number = self.read("Max number of programs")
@ -67,7 +67,7 @@ class TecnaMarpossProvasetT3(ModbusComponent):
}.items():
self.write(register, unit) # (decimals << 8) + unit)
else:
raise NotImplementedError(f"techna t3 model {self.model!r} not implemented.")
raise NotImplementedError(f"tecna t3 model {self.model!r} not implemented.")
def get_measure_units(self):
units = {}
@ -105,7 +105,7 @@ class TecnaMarpossProvasetT3(ModbusComponent):
for unit_name in unit_names:
units[unit_name] = unit_spec
else:
raise NotImplementedError(f"techna t3 model {self.model!r} not implemented.")
raise NotImplementedError(f"tecna t3 model {self.model!r} not implemented.")
return units
def _convert_from_format(self, data, formatting=None, decoding_map=None):
@ -205,16 +205,15 @@ class TecnaMarpossProvasetT3(ModbusComponent):
# READ INFO
info = {r: self.read(r) for r in [
"Real time test pressure output",
"Real time differential pressure output",
"Real time pressure line regulator",
#"Real time differential pressure output",
#"Active alarm flags",
#"Active test program number",
"Active alarm flags",
"Active test program number",
"Running test: active phase",
"Running test: test type",
"Running test: measured leak",
"Running test: sequence index",
"Digital inputs status (mask)",
"Digital outputs status (mask)",
# "Digital outputs status (mask)",
]}
if self.model == "t3p":
pass
@ -272,6 +271,10 @@ class TecnaMarpossProvasetT3(ModbusComponent):
recipe_name += b"\x00" * (16 - len(recipe_name))
recipe_barcode = f"j{recipe.part_number}"[:16].encode("ascii")
recipe_barcode += b"\x00" * (24 - len(recipe_barcode))
test_flags = 0b0110100001010100 if (step.spec.get("autotest", False) in ["ko_check"]) else 0b0110000001010100
pid_mode = int(self.config["recipes_defaults"]["pid_mode"])<<4
test_flags = test_flags | pid_mode
pid_ramps=0b0000000000000000 | int(self.config["recipes_defaults"]["pid_level"])<<8 | int(self.config["recipes_defaults"]["pid_speed"])<<12
spec = {
"Flag: Instrument settings": 0b0000000000000000,
"Test program for read/write operation": table,
@ -281,8 +284,7 @@ class TecnaMarpossProvasetT3(ModbusComponent):
# **{769 - 1 + i: (recipe_name[i * 2 + 1] << 8) + recipe_name[i * 2] for i in range(8)}, # print field 2
"Print options": 0b0000000000000000 | self.saver_label_count << 12 | self.saver_print_on_fail << 8 | self.saver_label_template,
"Test type": "Leak Test",
# "Test flags": 0b0110000001011100 if step.spec.get("autotest", False) is not True else 0b0110000001010100,
"Test flags": 0b0110100001010100 if step.spec.get("autotest", False) in ("ok_check","ko_check") else 0b0110000001010100,
"Test flags": test_flags,
"T0 - Pre-filling time": step.spec["pre_filling_time"],
"P0 - Pre-filling pressure": step.spec["pre_filling_pressure"],
"T1 - Filling time": step.spec["filling_time"],
@ -295,6 +297,11 @@ class TecnaMarpossProvasetT3(ModbusComponent):
"Q+ Upper test leak limit": step.spec["test_pressure_qpos"],
"FST - Discharge time": step.spec["flush_time"],
"FSL - Discharge limit": step.spec["flush_pressure"],
"PSQ - Next sequence program PSOUT mode": 0,
"RAMPS: T1 configuration": pid_ramps,
"PID: pressure correction": int(self.config["recipes_defaults"]["pid_pressure_correction"]),
"Various flags": 0b0000000000010000 if self.config["recipes_defaults"]["tester_discharge_enable"] == "yes" else 0b0000000000000000
}
if self.model == "t3p":
pass
@ -305,7 +312,7 @@ class TecnaMarpossProvasetT3(ModbusComponent):
"Pn - Nominal test pressure": step.spec["test_pressure"],
})
else:
raise NotImplementedError(f"techna t3 model {self.model!r} not implemented.")
raise NotImplementedError(f"tecna t3 model {self.model!r} not implemented.")
self.log.debug(str(spec))
for register, value in spec.items():
self.write(register, value)

View File

@ -275,9 +275,7 @@ registers = {
# T1/Pr: Filling mode 0=TIME 1=PRESSURE (*)
# T1/Pr (T3LPQ) = 0 - 250 (seconds)
# T3/Q: Fail mode 0=TIME 1=PRESSURE (*)
# PID MODE: 0=FAST 1=MEDIUM 2=SLOW 4 = FIXED 5 = AUTOMATIC 6 = FLOW 7 = LEAK WITH
# -----
# FLOW
# PID MODE: 0=FAST 1=MEDIUM 2=SLOW 4 = FIXED 5 = AUTOMATIC 6 = FLOW 7 = LEAK WITH FLOW
# P0-: 0= P0 pre-filling pressure is positive 1=P0 pre-filling pressure is negative (vacuum)
# Pr-: 0= Pr filling pressure is positive 1=Pr filling pressure is negative (vacuum)
# B: = beep (not used)
@ -337,5 +335,7 @@ registers = {
"T1 Steps - T1 Step %": [753 - 1, {"dt": "16bit_uint", }],
# | 15 14 13 12 11 10 9 8 | 7 6 5 4 3 2 1 0 |
# | Step % T1 | T1 Steps |
"Sequence": [754 - 1, {"dt": "16bit_uint", }],
"PSQ - Next sequence program PSOUT mode": [754 - 1, {"dt": "16bit_uint", }],
"RAMPS: T1 configuration": [755-1, {"dt": "16bit_uint", }],
"Various flags": [758-1, {"dt": "16bit_uint", }]
}

View File

@ -274,7 +274,7 @@ registers = {
"PB - Minimum burst pressure": [743 - 1, {"dt": "16bit_uint", "f": 23, }],
"BD - Burst gap / PD - Delta Aperture": [744 - 1, {"dt": "16bit_uint", "f": 23, }],
"FSL - Discharge limit": [745 - 1, {"dt": "16bit_uint", "f": 23, }],
"RP% - Pressure ratio": [746 - 1, {"dt": "16bit_uint", "g": 100, }],
"PID: pressure correction": [746 - 1, {"dt": "16bit_uint", "g": 100, }],
# Format; x.xx %
"PR+ - Max pressure tolerance % (P+)": [747 - 1, {"dt": "16bit_uint", "g": 10, }],
# Format: x.x %
@ -297,6 +297,7 @@ registers = {
# | 15 14 13 12 11 10 9 8 | 7 6 5 4 | 3 2 1 0 |
# | PSQ | | PSOUT |
# PSOUT MODE: 0 = While test run 1 = After start delay 2 = Always 3 = Only during start delay
"Various flags": [758 - 1, {"dt": "16bit_uint", }]
# 1001-1060 Table of the last test performed X The order of the parameters is always the same, as indicated for register from 701 to 759.
# 10001-10060 Direct access to test program table number 1 X X The order of the parameters is always the same, as indicated for register from 701 to 759.

View File

@ -1,30 +0,0 @@
from random import random
from .component import Component
class TestComponent(Component):
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,
)
self.parameter = self.config[self.name]["parameter"]
def _get(self, data=None):
super()._get([self.parameter] + [random() for i in range(2)])
def _set(self, val=None):
super()._set(val)

View File

@ -5,10 +5,11 @@ import time
from enum import Enum
from PyQt5.QtCore import QMutex, Qt, QTimer, pyqtSlot, pyqtSignal
from PyQt5.QtWidgets import QMessageBox, QApplication
from .component import Component
is_win = platform.system() == "Windows"
is_win = platform.system().lower() == "windows"
if "--sim-io" not in sys.argv:
if is_win:
@ -38,10 +39,12 @@ class USB_586x(Component):
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)
self.buffer = None
self.io_ok = False
self.mutex = QMutex()
self.simulate="--sim-io" in sys.argv
# DEVICE INFORMATION
self.id=config["digital_io"]["id"]
self.id=config[name]["id"]
if "5860" in self.id:
self.type = "5860"
self.in_size = 1
@ -53,15 +56,14 @@ class USB_586x(Component):
self.info = self.DeviceInformation()
self.info.Description = self.id
# self.info.DeviceNumber = -1
self.info.DeviceMode = 1
self.info.ModuleIndex = 0
self.open_device()
# SET ALL RELAYS OFF
for bit in range(0, self.out_size*8):
self.set_bit(int(bit/8), bit%8, False)
for bit in range(0, self.out_size * 8):
self.set_bit(int(bit/8), bit % 8, False)
self.state_delay = 1
self.last_get = None
@ -69,14 +71,23 @@ class USB_586x(Component):
self.last_out = None
def open_device(self):
# DIGITAL INPUTS CLASS
# DIGITAL I/O CLASS
if not self.simulate:
self.log.info("OPENING USB MODULE...")
if is_win:
self.di_ctrl = InstantDiCtrl(self.info.Description)
self.do_ctrl = InstantDoCtrl(self.info.Description)
self.di_read = self.di_ctrl.readAny
self.do_write_bit = self.do_ctrl.writeBit
self.buffer = ctypes.create_string_buffer(2)
try:
self.di_ctrl = InstantDiCtrl(self.info.Description)
self.do_ctrl = InstantDoCtrl(self.info.Description)
self.di_read = self.di_ctrl.readAny
self.do_write_bit = self.do_ctrl.writeBit
self.buffer = ctypes.create_string_buffer(2)
self.io_ok=True
except ValueError:
QMessageBox.critical(None, "ERRORE", f"ERRORE I/O DIGITALE - VERIFICARE CONNESSIONE USB")
exit(-1)
self.io_ok = False
time.sleep(1)
else:
self.di_create = libbiodaq.AdxInstantDiCtrlCreate
self.di_create.restype = ctypes.c_void_p
@ -108,12 +119,14 @@ class USB_586x(Component):
self.do_ctrl = self.do_create()
self.di_init_status = self.di_setSelectedDevice(self.di_ctrl, ctypes.byref(self.info))
self.do_init_status = self.do_setSelectedDevice(self.do_ctrl, ctypes.byref(self.info))
self.io_ok = True
else:
self.di_ctrl = InstantDiCtrl(self.info.Description)
self.do_ctrl = InstantDoCtrl(self.info.Description)
self.di_read = self.di_ctrl.readAny
self.do_write_bit = self.do_ctrl.writeBit
self.buffer = ctypes.create_string_buffer(2)
self.io_ok = True
def close_device(self):
pass
@ -156,25 +169,42 @@ class USB_586x(Component):
def get(self):
self.mutex.lock()
read = []
if is_win or self.simulate:
if self.simulate:
read=[1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0]
else:
ret = self.di_read(0, self.in_size)
if ret[0].value == ErrorCode.Success.value:
self.buffer = ret[1]
for byte_num in range(len(self.buffer)):
byte = self.buffer[byte_num]
read.append([bool(byte & m) for m in self.masks])
retry=0
max_retry = 3
while retry < max_retry:
if is_win or self.simulate:
if self.simulate:
read=[1,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0]
break
else:
self.buffer = None
else:
self.di_read(self.di_ctrl, 0, self.in_size, self.buffer)
if self.io_ok:
ret = self.di_read(0, self.in_size)
if ret[0].value == ErrorCode.Success.value:
self.buffer = ret[1]
for byte_num in range(len(self.buffer)):
byte = self.buffer[byte_num]
read.append([bool(byte & m) for m in self.masks])
else:
self.buffer = None
self.log.error(f"READ ERROR")
self.di_ctrl.dispose()
self.do_ctrl.dispose()
self.io_ok = False
for byte_num in range(len(self.buffer)):
byte = int.from_bytes(self.buffer[byte_num], "little")
read.append([bool(byte & m) for m in self.masks])
if self.io_ok:
break
else:
time.sleep(1)
self.open_device()
else:
self.di_read(self.di_ctrl, 0, self.in_size, self.buffer)
for byte_num in range(len(self.buffer)):
byte = int.from_bytes(self.buffer[byte_num], "little")
read.append([bool(byte & m) for m in self.masks])
self.mutex.unlock()
return read
@ -193,13 +223,17 @@ class USB_586x(Component):
def set_bit(self, byte, bit, val):
self.mutex.lock()
# print("set", byte, bit, not val, flush=True)
if not self.simulate:
if is_win:
ret=self.do_write_bit(byte, bit, int(val))
if self.io_ok:
if not self.simulate:
if is_win:
ret=self.do_write_bit(byte, bit, int(val))
else:
ret=self.do_write_bit(self.do_ctrl, byte, bit, int(val))
else:
ret=self.do_write_bit(self.do_ctrl, byte, bit, int(val))
ret = ErrorCode.Success
else:
ret = ErrorCode.Success
ret =False
self.mutex.unlock()
return ret
@ -208,15 +242,15 @@ class USB_586x(Component):
ok = False
retry=0
max_retry = 3
while not ok and retry <max_retry:
while not ok and retry < max_retry:
ret = self.set_bit(byte, bit, val)
if ret.value != ErrorCode.Success.value and not self.simulate:
self.log.error(f"SET BIT ERROR")
time.sleep(1)
self.open_device()
retry+=1
retry += 1
else:
ok = True
return ok
# val from buffer channel

View File

@ -37,6 +37,8 @@ class VisionSaver(Component):
save_time = int(save_time)
if type(save_time) is int:
save_time = datetime.fromtimestamp(save_time)
if type(save_time) is str:
save_time = datetime.now()
if type(save_time) is not datetime:
raise ValueError(f"save_time must be float int or datetime, not {type(save_time)}")
timestamp = save_time.strftime(self.time_format)

View File

@ -0,0 +1,25 @@
from PyQt5.QtCore import QSharedMemory
class SingleProcess:
def __init__(self, key='memory_condition_key'):
self._shm = QSharedMemory(key)
if not self._shm.attach():
if not self._shm.create(1):
raise RuntimeError('error creating shared memory: %s' %
self._shm.errorString())
self.condition = False
def __enter__(self):
self._shm.lock()
if self._shm.data()[0] == b'\x00':
self.condition = True
self._shm.data()[0] = b'\x01'
self._shm.unlock()
return self.condition
def __exit__(self, exc_type, exc_value, traceback):
if self.condition:
self._shm.lock()
self._shm.data()[0] = b'\x00'
self._shm.unlock()

View File

@ -11,6 +11,8 @@ import weakref
from datetime import datetime
from pathlib import Path
from lib.helpers.single_process import SingleProcess
if platform.system().lower() == "windows":
sys.path.append(f"{os.getcwd()}\src\components")
else:
@ -41,13 +43,13 @@ logs_dir = Path(".") / "data" / "logs"
os.makedirs(logs_dir, exist_ok=True)
logging.basicConfig(
format="{asctime}:{name}:{levelname}:{message}",
datefmt="%Y-%m-%dT%H-%M-%S%z",
datefmt="%Y-%m-%d_%H-%M-%S",
style="{",
level="INFO",
level="DEBUG" if "--debug" in sys.argv else "INFO",
handlers=[
logging.StreamHandler(stream=sys.stderr),
logging.FileHandler(
logs_dir / f"{datetime.now().isoformat().replace(':', '_')}.log",
logs_dir / f"{datetime.now().strftime('%Y-%m-%d_%H-%M-%S')}.log",
mode="a",
encoding="utf-8",
delay=False,
@ -60,15 +62,16 @@ logging.basicConfig(
)
try:
# IMPORT PROJECT ONLY AFTER SETTING UP SIGNAL, FAULTHANDLER AND LOGGHING
# IMPORT PROJECT ONLY AFTER SETTING UP SIGNAL, FAULTHANDLER AND LOGGING
from components import (ArchiveSynchronizer, Multicomp730424,
Os_Label_Printer, RemoteAPI,
TecnaMarpossProvasetT3, TecnaScrewdriver, USB_586x)
TecnaMarpossProvasetT3,FurnessControlsLeakTester, TecnaScrewdriver, USB_586x,RFID_PN532)
from lib.db import Users
from lib.helpers import ConfigReader
from PyQt5.QtCore import QObject, QThread, pyqtSignal
from PyQt5.QtWidgets import QApplication, QMessageBox
from ui import About, Archive, Login, Main_Window, Test, Users_Management, Recipe_Selection
from ui import About, Archive, Login, Main_Window, Test, Users_Management, Recipe_Selection, \
Barcode_Recipe_Selection
if "--vision" in sys.argv:
from components import GalaxyCamera, NeoPixels, UVCCamera, Vision, VisionSaver
@ -91,6 +94,7 @@ try:
system_id = args.system_id if "system_id" in args else None
self.config = ConfigReader(system_id=system_id)
logging.info(f"STARTING SESSION ON MACHINE {self.config['machine']['description']}")
self.config["autotest_done"] = False
# INIT COMPONENT
self.components_specs = {
@ -101,7 +105,10 @@ try:
"remote_api": {"c": RemoteAPI, "k": {"main": self}},
"screwdriver": {"c": TecnaScrewdriver, "k": {"paused": True}},
"tecna_t3": {"c": TecnaMarpossProvasetT3, "k": {"paused": True}},
"digital_io":{"c":USB_586x,"k":{"paused":True}}
"furness_controls": {"c": FurnessControlsLeakTester, "k": {"paused": True}},
"digital_io":{"c":USB_586x,"k":{"paused":True}},
"digital_io_flush_blow":{"c":USB_586x,"k":{"paused":True}},
"fixture_id":{"c":RFID_PN532,"k":{"paused":False, "lazy":False}},
}
# VISION COMPONENT IS OPTIONAL AND DISABLED BY DEFAULT
if "--vision" in sys.argv:
@ -146,15 +153,18 @@ try:
logging.exception(traceback.format_exc())
QMessageBox.critical(None, "Errore", f"Errore di avvio del programma di collaudo:\n\n{e}")
quit()
# connect camera frames to vision
if "vision" in self.components and "uvc_camera" in self.components:
self.components["vision"].set_sources({"uvc_camera": self.components["uvc_camera"].out})
elif "vision" in self.components and "galaxy_camera" in self.components:
self.components["vision"].set_sources({"galaxy_camera": self.components["galaxy_camera"].out})
# connect tecna to screwdriver
if "screwdriver" in self.components and "tecna_t3" in self.components:
self.components["tecna_t3"].set_requestors({"screwdriver": self.components["screwdriver"].request})
self.components["screwdriver"].set_sources({"tecna_t3": self.components["tecna_t3"].out})
# GUI INIT
if "--no-gui" not in sys.argv:
# self.main_window = Main_Window(self.bench)
@ -177,7 +187,7 @@ try:
self.main_window.users_management_a.triggered.connect(lambda checked, self=weakref.ref(self): self().main_window.open_dialog(Users_Management()))
self.main_window.table_selection_a.triggered.connect(self.set_recipe_mode_table)
self.main_window.barcode_selection_a.triggered.connect(self.set_recipe_mode_barcode)
self.main_window.ristampa_etichetta_a.triggered.connect(self.reprint_label)
if "--users-management" in sys.argv:
self.main_window.users_management_a.trigger()
@ -219,21 +229,24 @@ try:
self.main_window.admin_m.menuAction().setVisible(False)
# open test
self.main_window.open_tab(Test(self.config, self.components,self))
self.main_window.centralWidget().request_autotest("login")
else:
self.main_window.admin_m.menuAction().setVisible(False)
def logout(self):
Users.logout()
#Users.logout()
self.main_window.admin_m.menuAction().setVisible(False)
if type(self.main_window.centralWidget().centralWidget.widget) is Recipe_Selection:
if type(self.main_window.centralWidget().centralWidget.widget) in (Recipe_Selection,Barcode_Recipe_Selection):
# LOGOUT IMMEDIATELY IF NOT TESTING
Users.logout()
self.open_login()
else:
if not self.main_window.centralWidget().autotesting:
self.main_window.centralWidget().change_recipe() # STOP CURRENT TEST
# LOGOUT AFTER AUTOTEST IF TESTING
self.main_window.centralWidget().request_autotest("logout")
else:
# LOGOUT IMMEDIATELY IF AUTOTESTING
Users.logout()
self.open_login()
def set_recipe_mode_table(self):
@ -241,20 +254,28 @@ try:
def set_recipe_mode_barcode(self):
self.main_window.centralWidget().set_recipe_mode_barcode()
def reprint_label(self):
self.main_window.centralWidget().reprint_label()
if __name__ == "__main__":
app = QApplication(sys.argv)
main = Main()
if "--no-gui" not in sys.argv:
app.exec()
if "--interact" in sys.argv:
import code
import readline
variables = globals().copy()
variables.update(locals())
shell = code.InteractiveConsole(variables)
shell.interact()
with SingleProcess() as single_process_lock:
if not single_process_lock:
logging.error(f"Program already opened, exiting...")
QMessageBox.critical(None, "ERRORE", "IL PROGRAMMA E' GIA' IN ESECUZIONE")
exit(0)
main = Main()
if "--no-gui" not in sys.argv:
app.exec()
if "--interact" in sys.argv:
import code
import readline
variables = globals().copy()
variables.update(locals())
shell = code.InteractiveConsole(variables)
shell.interact()
except Exception:
logging.exception(traceback.format_exc())
# extype, value, tb = sys.exc_info()

View File

@ -4,6 +4,7 @@ bottle
google-cloud-storage
imutils
lxml
nfcpy
numpy
opencv-python-headless
peewee
@ -16,5 +17,5 @@ pyserial
pyserial-asyncio
requests
tensorflow
tflite-runtime
#tflite-runtime
zebra

View File

@ -0,0 +1,5 @@
-- REMEMBER TO BACKUP DB FIRST --
update steps set spec = json_insert(spec,"$.test_pressure_qpos",(json_extract(steps.spec, '$.test_pressure_max_delta'))) where type == "leak_1" or type=="leak_2";
update steps set spec = json_insert(spec,"$.test_pressure_qneg",(json_extract(steps.spec, '$.test_pressure_min_delta'))) where type == "leak_1" or type=="leak_2";
update steps set spec = json_insert(spec,"$.test_pressure_qpos",(json_extract(steps.spec, '$.test_pressure_max_delta'))) where type == "leak_1" or type=="leak_2";
update steps set spec = json_insert(spec,"$.test_pressure_qneg",(json_extract(steps.spec, '$.test_pressure_min_delta'))) where type == "leak_1" or type=="leak_2";

View File

@ -8,13 +8,19 @@ fieldnames = [
"cliente",
"codice_prodotto",
"descrizione",
"prova_tenuta_abilitata_2"
"pressione_di_test",
"pressione_di_test_delta_minimo",
"pressione_di_test_delta_massimo",
"tempo_riempimento",
"tempo_assestamento",
"tempo_di_test",
#"prova_tenuta_abilitata_2"
]
# FOLDER CONFIGURATION
in_path="../../tmp/ricette/"
files=glob(f"{in_path}/**/*.dsg",recursive=True)
csv_path="../test/csv_import/importazione da banco montaggio.csv"
csv_path="../test/csv_import/importazione da banco preformatura.csv"
data=[]
#FOR EACH FILE CREATE A TEST RECIPE
@ -30,7 +36,13 @@ for file in files:
"cliente":list(read_values["cliente"].keys())[0],
"codice_prodotto":list(read_values["numero disegno"].keys())[0],
"descrizione":os.path.basename(file),
"prova_tenuta_abilitata_2":"x" if list(read_values["prova2:tempo di riempimento"].keys())[0] not in ("0","00") else ""
"pressione_di_test":str(int(list(read_values["prova2:pressione di test"].keys())[0])*10),
"pressione_di_test_delta_minimo":list(read_values["prova2:tolleranza"].keys())[0],
"pressione_di_test_delta_massimo":list(read_values["prova2:tolleranza"].keys())[0],
"tempo_riempimento":list(read_values["prova2:tempo di riempimento"].keys())[0],
"tempo_assestamento":list(read_values["prova2:tempo di stabilizzazione"].keys())[0],
"tempo_di_test": list(read_values["prova2:tempo di prova"].keys())[0],
#"prova_tenuta_abilitata_2":"x" if list(read_values["prova2:tempo di riempimento"].keys())[0] not in ("0","00") else ""
}
data.append(line)

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