Experimental Physics and
| |||||||||||||||
|
Hi Mark,
even better.
Thanks!
Luca
On gio, 2016-11-10 at 17:35 +0000, Mark Rivers wrote:
Hi Luca, Note that you don't need to use asynDriver to implement the ideas in the database I sent you. If you have an input record from LabView and an output record to LabView that is all that is required to implement the logic in that database. My input record (FileNumber_RBV) happened to use an asynDriver and SCAN=I/O Intr, but neither of those is required. It could be SCAN="1 second" for example and some other driver/device support. Same thing holds for the FileNumber_write output record. It does not need to use asynDriver. Mark -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Luca Cavalli Sent: Thursday, November 10, 2016 10:54 AM To: [email protected] Subject: Re: Native NI LabVIEW/EPICS integration Mark, I love you! Never used asynDriver, but I'm reading the documentation right now from http://www.aps.anl.gov/epics/modules/soft/asyn/R4-30/asynDriver.html I will come back to the ML in case of problems. Thanks, Luca On gio, 2016-11-10 at 14:56 +0000, Mark Rivers wrote:Hi Luca, Here is a database idiom that can be used for that: For write you write to the FileNumber PV. It does the actual I/O through FileNumber_write. When LabView updates the value FileNumber_RBV is changed. That will update FileNumber without processing FileNumber_write again. ************************************************ record(longout, "$(P)$(R)FileNumber") { field(PINI, "YES") field(OUT, "$(P)$(R)FileNumber_write PP") field(VAL, "1") } record(longout, "$(P)$(R)FileNumber_write") { field(SDIS, "$(P)$(R)FileNumber_Sync.PACT") field(DISV, "1") field(DTYP, "asynInt32") field(OUT, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FILE_NUMBER") } record(longin, "$(P)$(R)FileNumber_RBV") { field(DTYP, "asynInt32") field(INP, "@asyn($(PORT),$(ADDR),$(TIMEOUT))FILE_NUMBER") field(SCAN, "I/O Intr") field(FLNK, "$(P)$(R)FileNumber_Sync") } record(longout, "$(P)$(R)FileNumber_Sync") { field(DOL, "$(P)$(R)FileNumber_RBV NPP") field(OMSL, "closed_loop") field(OUT, "$(P)$(R)FileNumber PP") } ************************************************ Mark ________________________________________ From: [email protected] [[email protected]] on behalf of Luca Cavalli [[email protected]] Sent: Thursday, November 10, 2016 8:38 AM To: [email protected] Subject: Native NI LabVIEW/EPICS integration Dear all, I have to control a NI PXI device. The software is written in LabVIEW using native NI LabVIEW/EPICS interface,unfortunately it seems to only support a subset of PV properties (no EGU, limits etc.). My idea is to write a tiny IOC that maps the "raw" LabView variable (e.g. PV_NAME_RAW) to a complete EPICS PV (e.g. PV_NAME) with precision, EGU, alarms and limits. [My IOC] <--PV_NAME--> [LV Mapper IOC] <--PV_NAME_RAW--> [NI PXI] The problem is that my PV must be both readable and writable at the same time. I.e. when I write the PV_NAME variable I want also the PV_NAME_RAW variable to be updated, and when LabVIEW modifies PV_NAME_RAW value I want PV_NAME to reflect the change. How can I define my db in LV Mapper IOC? I'm a bit lost, shall I use an input record or output record? So far I only achieved single direction control (either input or output, not both at the same time). Thanks for your help. Luca ________________________________ << Le informazioni contenute in questo messaggio di posta elettronica e relativi allegati sono riservate e confidenziali e ne è vietata la diffusione in qualunque modo eseguita. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo e a darcene gentile comunicazione. Quanto precede ai fini del rispetto delle Legge 675/96 e del Decreto Legislativo 30/06/2003 n.196, sulla tutela dei dati personali >> << This e-mail is confidential and may well also be legally privileged. If you have received it in error, you are on notice of its status. Please notify us immediately by reply e-mail and then delete this message from your system. Please do not copy it or use it for any purposes, or disclose its contents to any other person: to do so could be a breach of confidence. Thank you for your co-operation. Please contact our IT Helpdesk on +3902380481 or email it@cgspac e.it if you need assistance >>________________________________ << Le informazioni contenute in questo messaggio di posta elettronica e relativi allegati sono riservate e confidenziali e ne è vietata la diffusione in qualunque modo eseguita. Qualora Lei non fosse la persona a cui il presente messaggio è destinato, La invitiamo ad eliminarlo e a darcene gentile comunicazione. Quanto precede ai fini del rispetto delle Legge 675/96 e del Decreto Legislativo 30/06/2003 n.196, sulla tutela dei dati personali >> << This e-mail is confidential and may well also be legally privileged. If you have received it in error, you are on notice of its status. Please notify us immediately by reply e-mail and then delete this message from your system. Please do not copy it or use it for any purposes, or disclose its contents to any other person: to do so could be a breach of confidence. Thank you for your co-operation. Please contact our IT Helpdesk on +3902380481 or email [email protected] if you need assistance >>
| ||||||||||||||
ANJ, 11 Nov 2016 |
·
Home
·
News
·
About
·
Base
·
Modules
·
Extensions
·
Distributions
·
Download
·
· Search · EPICS V4 · IRMIS · Talk · Bugs · Documents · Links · Licensing · |