Vi en parallèle
Bonjour
J'ai plusieurs vi qui fonctionnent en parallèle. Je m'aperçois que si je ne met pas les bonnes tempo. dans mes boucles ( de chaque vi ) il y a une interaction d'un vi sur l'autre et donc un ralentissement d'exécution .Quelles sont les possibilités de gestion des vi et peux t'on affecter un vi sur un processeur en particulier ( si on dispose de 2 processeurs ) ?
J'ai essayé dans " propriété de vi " , "exécution" et " priorité" mais je n'ai pas trouvé de changement notable...
merci.
Bonjour Eric35,
Si tes 2 boucles ne fonctionnent pas réellement séparément (peu importe les tempos utilisées), c'est que tu dois avoir des interactions qui se font au niveau de tes variables et/ou des sous-VI qui doivent attendre d'être terminés avant de pouvoir donner l'accès à l'autre.
Typiquement dans ton cas, si tu as des sous-VI en double sur tes 2 boucles, je te suggère d'utiliser la fonction Exécution Réentrante que tu trouveras dans les propriétés de ton VI puis dans Exécution.
NB:"Exécution réentrante — Permet à un VI d'être appelé par
plusieurs appelants. Normalement, un VI ne peut être appelé que par un appelant
à la fois. Cependant, si vous voulez que deux appelants puissent simultanément
appeler le même VI, cochez la case de Exécution réentrante. "
Cordialement,
JP
Julien P.
Certified LabVIEW Developer
Similar Messages
-
How to instantiat​e a subvi multiple times parallely?
Hi,
I am developing an application which uses a set of input controls for performing a task. I have given eight such sets of these controls in the main vi. However, I want to provide user an option to add more sets if required by invoking a subvi (which will have one such set of control) and likewise invoking the same subvi to have few more sets (as windows of one set each).
The important things here to be noted are:
User should be able to invoke multiple instances of the same subvi parallely using the same menu item in the main vi(say).
User should be able to transfer the control from mainvi, to subvi instance1, subvi instance 2 and so on by mere mouse clicks on the respective windows.
How can I implement such case using labview? All suggestions are welcome.Hi mnx,
Just to correct me if I'm wrong:
You have 8 subVIs and each have their own jobs
For example, you want to control a temperature, you would press a button which pops up the control for the temperature and the subvi GUI will pop up for your to control
Well, if you want to open the subVI: you can find the example code here: http://forums.ni.com/t5/LabVIEW/Call-a-SubVi-in-Labview/m-p/1590320#M580140
To start 2 subvis parallely, you can use the error cluster to force execution just like the vis I modified from the example codes from the earlier link. The error cluster wires (error in and error out terminals) make use of the dataflow rule in LabVIEW to make 2 functions or subVI's to run in parallel.
Hope it helps
Warmest regards,
Lennard.C
Learning new things everyday...
Attachments:
SubVi.vi 10 KB
SubVi - Copy.vi 10 KB
MainVi.vi 13 KB -
How to shedule an abap report to run paralely in more background session
I wander how to shedule an abap report to run paralely in more background session.
I am afraid of parallel locking.Hi,
You can schedule different jobs with same program name.
Use ENQUEUE_ & DEQUEUE_ to lock/unlock the records being process. The lock objects can be created in SE11.
Best regards,
Prashant -
How to avoid a function module runnning parallely twice
Hello,
There is a scenario, where user calls a function module via RFC.
The requirement is to avoid the user from running the function module parallely twice or more because it may lead to dead lock problems.
To realize this creation of a new enqueue object and set up of enqueue of this object in the function is suggested.
If the object is blocked (which means the function is already being
running by the sorter), it should go out of the function.
Can i get help in locking this function module during execution.
With Best Regards,
Adarsh.Here's a sample of how you might do this - see comments in code for explanation.. run the program in two differ SAPGui sessions to see the effect.
report zlocal_jc_tfdir_lock.
start-of-selection.
perform set_and_check_lock.
form set_and_check_lock.
*" Use SAP enqueue to prevent multiple RFC calls of same object
data:
l_object like tfdir-funcname.
*" Build some name that is specific to your needs
*" Include sy-uname in key if lock is per user, not for process
concatenate '#Z LOCK:' sy-uname into l_object.
*" and enqueue
call function 'ENQUEUE_ESFUNCTION'
exporting
funcname = l_object
exceptions
foreign_lock = 1
system_failure = 2
others = 3.
if not sy-subrc is initial.
message e398(00)
with
l_object 'is held by' sy-msgv1 space.
else.
write: / l_object, 'is now locked - check sm12 for proof'.
endif.
endform. -
I want to load data parallely into two ods.
i want to load data parallely into two ods.
Hai ,
As Question is not clear........
U can do this by going in update tab in sechdule menu.
Regards
Suman -
I want to print two addresses in same window parallely
Hi All,
i want to print two addresses in same window parallely, I tried it with Template but not able to do it .Can any one tell me in detail.
Thanks in advance.
Regards,
Sudhakar Reddy.AHi Sudhakar,
You can kep two templates side by side. For that:
Keep vertical alignment for first template as 'Absolute from top' and horizontal alignment as 'Left'.
Keep vertical alignment for secondary template as 'Absolute from top' and horizontal alignment as 'Right'.
Provide same height to make them appear side by side. and provide the dimensions based on your requirement.
Regards,
Swarna Munukoti. -
How to use Parallal Processing
Hi All,
How to use Parallal processing in our report program, My report has to execute by forground. i have checked this bwlow link, they mentioned some small code here. but how to use and where to place this code in my report program.
http://help.sap.com/saphelp_nw70/helpdata/en/fa/096e92543b11d1898e0000e8322d00/content.htm
Thanks,
Subbu.Ok...
Below is the some part of the program...If it possible to insert the parallal processing please let me know...It very urgent for me....
LOOP AT ITAB.
PERFORM MOVE_GR_AMTS_TO_ITAB.
PERFORM ET_IR_AMTS_FOR_PO_LINE.
PERFORM IGURE_COMMITMENTS_COOI.
MODIFY ITAB.
ENDLOOP.
FORM MOVE_GR_AMTS_TO_ITAB.
CLEAR GR_TAB.
MOVE-CORRESPONDING ITAB TO GR_KEY.
READ TABLE GR_TAB WITH KEY GR_KEY BINARY SEARCH.
IF SY-SUBRC = '0'.
ITAB-GR_QTY = GR_TAB-GR_QTY.
ITAB-GR_VALUE_CO = GR_TAB-GR_VALUE_CO.
ITAB-GR_VALUE_DOC = GR_TAB-GR_VALUE_DOC.
ITAB-GR_VALUE_LOC = GR_TAB-GR_VALUE_LOC.
ENDIF.
ENDFORM.
FORM GET_IR_AMTS_FOR_PO_LINE.
data : begin of EKBE occurs 0,
BUDAT like EKBE-BUDAT,
MENGE like EKBE-MENGE,
DMBTR like EKBE-DMBTR,
WRBTR like EKBE-WRBTR,
WAERS like EKBE-WAERS,
SHKZG like EKBE-SHKZG,
end of ekbe.
SELECT BUDAT MENGE DMBTR WRBTR WAERS SHKZG FROM EKBE into table EKBE WHERE EBELN = ITAB-PO_NO
AND EBELP = ITAB-LINE
AND VGABE EQ '2'
AND ZEKKN EQ ITAB-ZEKKN.
if sy-subrc is not initial.
exit.
endif.
loop at EKBE.
IF EKBE-SHKZG = 'H'.
ekbe-MENGE = EKBE-MENGE * -1.
ekbe-DMBTR = EKBE-DMBTR * -1.
ekbe-WRBTR = EKBE-WRBTR * -1.
ENDIF.
ITAB-IR_QTY = ITAB-IR_QTY + ekbe-MENGE.
ITAB-IR_VALUE_DOC = ITAB-IR_VALUE_DOC + ekbe-WRBTR.
ITAB-IR_VALUE_LOC = ITAB-IR_VALUE_LOC + ekbe-MBTR.
IF ITAB-CURR_PO = ITAB-CURR_CO.
ITAB-IR_VALUE_CO = ITAB-IR_VALUE_CO + ekbe-WRBTR.
ELSE.
GS_CONV_AMT = ekbe-WRBTR / GS_CORATE.
PERFORM GET_CURR_RATE USING ekbe-WAERS ekbe-BUDAT CHANGING GS_RATE.
ITAB-IR_VALUE_CO = ITAB-IR_VALUE_CO +
GS_CONV_AMT * GS_RATE.
ENDIF.
endloop.
ENDFORM.
FORM FIGURE_COMMITMENTS_COOI .
data : begin of COOI occurs 0,
WKGBTR like COOI-WKGBTR,
WTGBTR like COOI-WTGBTR,
WHGBTR like COOI-WHGBTR,
end of COOI.
SELECT WKGBTR WTGBTR WHGBTR FROM COOI into table COOI WHERE REFBT = '020'
AND REFBN = ITAB-PO_NO
AND RFPOS = ITAB-LINE
AND RFKNT = ITAB-ZEKKN.
if sy-subrc is not initial.
exit.
endif.
loop at COOI.
itab-COMMIT_CO = itab-COMMIT_CO + COOI-WKGBTR.
itab-COMMIT_DOC = itab-COMMIT_DOC + COOI-WTGBTR.
itab-COMMIT_LOC = itab-COMMIT_LOC + COOI-WHGBTR.
endloop.
ENDFORM.
Thanks... -
Process success records parallely acknowledge for failed ones for File -XI
Hi Friends,
In our project requirement like this
file to Xi scenario
File consists of 1000 records and these records are to be updated in ECC but few records around 15 , are not having correct data (i.e Lenth of sender is greater than receiver field) its sender problem here in this case because of these failed one rest of them are also not updated
Is there any way to update the correct one and parallely acknowledge the failed ones to user for the records picked from ftp of the user
can any one help on this in detail
Thanks in advance
JittuHi,
Can you check if you get some error in ST22 or SM21 when you get time out in SM58 in PI?
Please check this in your SAP receiver system to which you sent the IDocs.
Most probably the error is coming from SAP receiver system.
Also check the value of work process timeout in SAP receiver system rdisp/max_wprun_time
I think default value is 600 seconds and then you get a timeout.. you might need to increase this.
regards,
francis -
Invoke node (parallely working VIs in a library)
Hello everyone,
I am trying to evaluate a temperature sensor.To do that I have to monitor thermocouple readings.Thermocouple is connected to FP-TC-120 temperature module. Besides, I have to acquire data from an optical spectrum analyzer. I am using 3650.VI to monitor the temperature and 86140B Trace_Screen Capture(2).llb o trace the data from the OSA.
I am trying to use Invoke Node VI to trace data from spectrum analyzer. To do that I specified the necessary file path as an input to the code. The problem is the necessary VI (Write Trace to File.VI) is inside of a llb. file and needs other codes to completely function.
That's when I run the code, (and when the stability condition is met) the computer asks me to save the spectrum analyzer data to a file called trace.csv. When I press ok, it just saves an empty file with a header (Power(dbm) Wavelength (nm)). Apparently it works parallely with other VI. How can I make use of the VIs inside of a .llb file with invoke node VI or should I use other VI to do combine temperature monitor VI with data tracing VI.
The second problem is with the stability criterion of temperature.In the attached VI, I check whether the thermocouple reading stays within 0.8 degree stability range for 900 seconds. I want to change this. I
want to check the stability of the temperature by comparing the final data with the previous ones. Is there any specific VI that should be exploited to check the fluctuations of waveforms?
Thanks a lot
Solved!
Go to Solution.
Attachments:
3650.vi 107 KB
86140B Trace_Screen Capture(2).llb 143 KBdeniz wrote:
I tried to implement the first method you suggested. But i had trouble since I am just a beginner. Could you please be more specific in explaining the solution? I am stating the problem again. Once the stability criterion is met I want the case structure to execute on the increments of 30 second or so. How can I do that by using shift registers? I tried to do what you suggested as in the code attached but it did not work. (I could not make the case structure dependent on two conditions)
I understood what you wanted perfectly fine. You just didn't implement it correctly. See attached. Please revisit my comment regarding the Write To Spreadsheet File that already exists inside of the "Trace Xfer" VI.
The other proplem is again about timing. The while loop execute only if the temperature value changes since it is dependent on FP Open sub VI.
The while loop has no dependence on the FP Open VI other than waiting for the error cluster and Fieldpoint refnum. There is no dependence on the while loop executing only if the temperature value changes. The while loop continuously acquires data, so I do not understand your statement.
Thus, the elapsed time VIs that are inside of the loop does not progress at 1 second increments. Is there any way to set an elapsed time that is independent of timestamp of thermocouple reading device?
They can't and won't. The Elapsed Time VIs simply tell you ... elapsed time. They have no bearing on how fast the loop runs. It seems as if you have contradictory requirements. Do you want to the loop to run once a second and record, or run at the advise rate and only do something once a second, or run at the advise rate and only do something if the temperature changes?
Attachments:
3650.vi 116 KB -
SSIS package execute Parallely
Hi All,
I have 300 Packages to be run parallely in real time.
How can i can group these packages into Sql Agent Jobs.
Each Package need to be run at an interval cycle of 5 Mins.
Thanks in Advance...Hi Visakh,
I have 300 Packages.
Requirement -1) I want to execute all packages parallely.
Requirement -2)
There is an SQL Agent Job containing a complex Integration Services Package performing some ETL Jobs. It takes between 1 and 4 hours to run, depending on our data sources. The Job currently runs daily, without problems. What I would like to do now is to let
it run in an endless loop, which means: When it's done, start over again.
The scheduler doesn't seem to provide this option. I found that it would be possible to use the steps interface to go to step one after the last step is finished, but there's a problem using that method: If I need to stop the job, I would need to do that in
a forceful way. However I would like to be able to let the job stop after the next iteration. How can I do that?
Thanks in advance for any help!
Sorry I'm getting confused
You say you want to run it continuosly
Then you say you want to stop it after next iteration The two statements seems to be contradictory
Please Mark This As Answer if it solved your issue
Please Vote This As Helpful if it helps to solve your issue
Visakh
My Wiki User Page
My MSDN Page
My Personal Blog
My Facebook Page -
Execute Storage Procedures Parallely
Hi,
I have a list of procedure's name in database table ProcList.
ProcList Table Contents are given below.
SrNo. ProcName
1 FetchData
2 ProcessData
3 InsertData
This all the procedures name I have to fetch from the table & execute all the procedure parallely. I can use dbms_job packet for that but the procedures name are dynamically fetch from the database table. so I'm not able to use it.
Can anybody help how to do it? Any help will be appreciable.It will wait for the 1st procedure to complete the
interation. If I statically provide two procedures
name using dbms_job then it will execute parallely
(without loop iteration).What will wait? Submitting jobs should take no time in you calling procedure. DBMS_JOB is transactional, so you need to commit before it runs. I think you also need the semi colon in the call.
Can you run this test and see if you get the same results:
SQL>select * from v$version;
BANNER
Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production
PL/SQL Release 9.2.0.8.0 - Production
CORE 9.2.0.8.0 Production
TNS for 64-bit Windows: Version 9.2.0.8.0 - Production
NLSRTL Version 9.2.0.8.0 - Production
Elapsed: 00:00:00.00
SQL>
SQL>CREATE OR REPLACE PROCEDURE FetchData AS
2 BEGIN
3 dbms_lock.sleep(30);
4 END;
5 /
Procedure created.
Elapsed: 00:00:00.00
SQL>
SQL>CREATE OR REPLACE PROCEDURE ProcessData AS
2 BEGIN
3 dbms_lock.sleep(30);
4 END;
5 /
Procedure created.
Elapsed: 00:00:00.00
SQL>
SQL>CREATE OR REPLACE PROCEDURE StoreData AS
2 BEGIN
3 dbms_lock.sleep(30);
4 END;
5 /
Procedure created.
Elapsed: 00:00:00.00
SQL>
SQL>CREATE OR REPLACE PROCEDURE JobTestProc
2 AS
3 nJob user_jobs.job%TYPE;
4 BEGIN
5 FOR rJob IN (SELECT 'FETCHDATA;' what FROM dual
6 UNION ALL
7 SELECT 'PROCESSDATA;' FROM dual
8 UNION ALL
9 SELECT 'STOREDATA;' FROM dual
10 )
11 LOOP
12 dbms_job.submit(nJob,rJob.what);
13 COMMIT;
14 dbms_output.put_line ('Job: '||TO_CHAR(nJob)||' - '||rJob.what||' Submitted');
15 END LOOP;
16 END JobTestProc;
17 /
Procedure created.
Elapsed: 00:00:00.00
SQL>sho err
No errors.
SQL>exec JobTestProc
Job: 3438 - FETCHDATA; Submitted
Job: 3439 - PROCESSDATA; Submitted
Job: 3440 - STOREDATA; Submitted
PL/SQL procedure successfully completed.
Elapsed: 00:00:00.09
SQL>
SQL>SELECT job, what, total_time
2 FROM user_jobs;
JOB WHAT TOTAL_TIME
3439 PROCESSDATA; 0
3440 STOREDATA; 0
3438 FETCHDATA; 0
Elapsed: 00:00:00.00
SQL>/
JOB WHAT TOTAL_TIME
3439 PROCESSDATA; 1
3440 STOREDATA; 1
3438 FETCHDATA; 1
Elapsed: 00:00:00.00
SQL>/
JOB WHAT TOTAL_TIME
3439 PROCESSDATA; 6
3440 STOREDATA; 6
3438 FETCHDATA; 6
Elapsed: 00:00:00.00
SQL>/
JOB WHAT TOTAL_TIME
3439 PROCESSDATA; 12
3440 STOREDATA; 12
3438 FETCHDATA; 12
Elapsed: 00:00:00.00
SQL>/
JOB WHAT TOTAL_TIME
3439 PROCESSDATA; 17
3440 STOREDATA; 17
3438 FETCHDATA; 17
Elapsed: 00:00:00.00
SQL>/
JOB WHAT TOTAL_TIME
3439 PROCESSDATA; 24
3440 STOREDATA; 24
3438 FETCHDATA; 24
Elapsed: 00:00:00.00
SQL>/
JOB WHAT TOTAL_TIME
3439 PROCESSDATA; 28
3440 STOREDATA; 28
3438 FETCHDATA; 28
Elapsed: 00:00:00.00
SQL>/
no rows selected
Elapsed: 00:00:00.00
SQL> -
Acquisition et génération en parallèle
Un sujet probablement un peu récurrant mais je ne trouve pas vraiment de réponse adaptée à ce que j'essaye de faire.
Nous avons des cartes PCMCIA 6036E et nous faisons sur le terrain des mesures de pressions, déplacement,... via nos capteurs.
Déjà pour commencer, nous ne sommes pas dans le kHz, une simple acquisition à 100Hz voir 500Hz parfois pour piéger un défaut nous suffit.
Mais nous devons générer en parallèle des acquisitions, la génération de signaux assez simples par ailleurs une rampe (très lente,~20min) ou un simple carré.
Dans le dernier code que j'ai fait, çà marche dans les valeurs numériques à l'écran et pourtant la réalité physique sur le bornier me donne un retard aléatoire du début de génération de mon signal !!! En résumé, il y a déjà un retard à l'alumage de ma boucle mais en plus quand le programme donne un échantillon en génération de 2V par exemple et qu'il l'écrit dans le fichier d'enregistrement, en fait à la sortie il y a au moins 0.3 V de moins. C'est le bon signal mais en retard.
Mon code n'est sûrement pas un exemple et je ne suis qu'un programmeur occasionel mais je sèche ce coup-ci.
Quelqu'un a t'il un exemple simple d'acquisition (jusqu'à 16 voies) et génération de signal sur des fréquences assez basses ?
Merci,Bonjour,
Merci d’avoir posté votre question sur les forums de
National Instruments.
Afin de vous aider au mieux j’aurais besoin de quelques
précisions supplémentaires par rapport à la façon dont vous réalisez votre
application.
Pour réaliser l’acquisition de données, utilisez-vous notre
driver DAQmx ou bien DAQ traditionnel ?
L’acquisition et la génération se font elles en continu, ou
point à point et l’écriture sur fichier se fait elle dans la même boucle ?
Si vous travaillez en mode continu, la carte est en quelque
sorte autonome et il est donc possible que l’écriture sur fichier ne se passe
pas exactement simultanément avec la génération.
En fonction de vos réponses, je serais plus à même de vous
orienter vers un exemple correspondant au mieux à vos besoins.
Je vous remercie par avance pour votre réponse,
Bien cordialement,
Guillaume H.
National Instruments France
#adMrkt{text-align: center;font-size:11px; font-weight: bold;} #adMrkt a {text-decoration: none;} #adMrkt a:hover{font-size: 9px;} #adMrkt a span{display: none;} #adMrkt a:hover span{display: block;}
>> NIDays 2011, le mardi 8 février au CNIT de Paris La Défense -
Transportable Tablespace parallism
Hi,
We are trying to move tablespaces from one database to another database using transportable tablespace feature. We are using parallism option of the rman convert tablespace command.
Is there any why to find out how much time each command will take and we are not seeing any log or anthing, to know whether the command is doing anything in database.
Thanks,
PrasadHello,
When you run a RMAN script you may specify a LOG, for instance:
RMAN @<rman_script> LOG <rman.log>Hope this help.
best regards,
Jean-Valentin -
How to update the Left shell string in Tree Parallely
Hi Friends,
I am using Tree Control and subpanel in the same front panel..... For example the subpanel will load the authentication.... in that he user will enter the name ... at the same time while the user types i want to update that value in the Tree control ..... how to do that....parallely.....parthabe wrote:
Darren wrote:
One of the right-click menu options on the string control is "Update Value While Typing". If you select this option, then you'll get a Value Change event firing every time someone enters a character in the string.
I never knew this before!
I guess that means it would make a good nugget...I'll add it to my list.
-D
Darren Nattinger, CLA
LabVIEW Artisan and Nugget Penman -
Loading multiple files into a target table parallely
Hi
We are building an interface to load from flat files to an Oracle table. The input can be more than one files all of th same format. I have created a variable for the flat file data store. I have created 2 packages
In package 1
I have put odi file wait to trigger whenever files come into the directory . The list of files is written to a metadata table table. A procedure is triggered which picks a record from the metadata table and calls the scenario for calls package 2 by passing the selected record as parameter.
In package 2
The variable value is set to the parameter passed from package 1 procedure
The interface runs to load the flat file = to the variable value into the target table
Now if the directory has more than one flat file , the procedure in package 1 calls the package 2 scenario more than one times. This causes sequential load from each flat file to the target table. Is there a way wherein the multiple flat files can be loaded in parallel to the same target table? At this point ,I am not sure if this is possible as there is only one interface and one variable for the source fileAs per your requirement , your process seems to be always continues like a loop[ reason being as you have mentiond - I dont want to wait for all files to come in. As soon as a file comes in the file has to be loaded. ] .
You can solve the issue of file capture using OdiFileWait to let you know when the files have arrived.
Tell me this what do you plan to when the File loading is complete, will that be in the same folder and when new files come will that update with the same name or different name , becuase irresptive of same file or different if the files are present in the same folder after loading into target , then we might do repetitive loading of files. Please tell me how do you plan to handle this.
When you have plan to use LKM file to sql , what is the average number of source records coming into each sample files. ?
Just to add to above question , what is the average numner of parallel loads you are expecting and what is the time interval between each paralled loading you are expecting. -
Hi,
I have a requirement of loading multiple files parallely using sql loader through odi.
Currently we are not using any odi km's and we are using ODI Procedure which calls shell script/sql loader script.
If i want to load all the files at the same time into different tables how can we do that?
CheersHi,
You can either use a Load Plan and define parallel steps ( http://www.rittmanmead.com/2011/06/odi-11g-new-mapping-and-interface-features-part-2-load-plans/ ), or use asynchronous steps in a package and add an extra step OdiWaitForChildSession : ( https://blogs.oracle.com/dataintegration/entry/parallel_processing_in_odi ).
Hope it helps.
Regards,
Jerome
Maybe you are looking for
-
Checkbox in integrated planning
Hi, I'm new in the IP area and i need to know if i am able to use WAD with IP to do the following : for each line of a financial query result i need to have : - a commentary text zone, so the user can be able to insert any remarks concerning the resu
-
Issue in reservation through MO
hi experts, i am facing issue in reservation through maintenance order. i want that reservation is created after release of maintenance order.is it possible through SPRO or i have to use some user exit.
-
Can't see query results in the grid
I am having a problem where some of my queries do not return results in the grid. Those same queries return results if I run them as a script. Or if I run them on a different server. And the same query run on someone else's SQL Developer also does no
-
Downloading Safari For Windows On A Mac?
Is there a way that you can download the Windows version of the Safari installer while using a Mac? Every time I try, it takes me to the Mac page with only options to download for Tiger or Leopard.
-
Adobe Acrobat Reader 6.0 standard
Hi i will like to know if Adobe Acrobat Reader 6.0 standard can be install on window 7 64 bit OS?