Documents
Resources
Learning Center
Upload
Plans & pricing Sign in
Sign Out

Application development of EPICS

VIEWS: 5 PAGES: 19

									EPICS APPLICATION
  DEVELOPMENT

       EPICS Seminar
Presented by SHIFU XU ,IHEP
       20 August 2002
               Outline
PCI & ISA device driver on Linux Platform
Remote device driver via Ethernet
VME I/O device driver on vxWorks
Application to develop
     PCI & ISA device driver
OS:Linux Redhat 7.1
EPICS base release:3.14 alpha02/01
ISA board:PC6310 A/D,12bits,32 channels
 PCI board:PCI8020
   12bits A/D,8 channels (bipolar)
   8bits D/A, 2 channels
   0~5v unipolar or -5v~+5v bipolar (AI)
   Conversion time < 10us
PCI device driver--hardware

                          OPI
   Wo rk sta ti on                          PC

  unix or linux:                    Winnt/win98
 bepc19.ihep.ac.cn              control3.ihep.ac.cn
                                      ET HE RNE T
                         CA

 IOC                 PC motherboard
                       PCI ISA card

             PC
        Linux:
 controlx.ihep.ac.cn
PCI device driver--test
Ethernet-based Device driver
   Asynchronous Device driver
   IOC 3.13
   OPI MEDM
   vxworks5.31, tornado1.01
   compiler:ccppc
   gmake
Ethernet-based Device driver



  HP workstation
                                X terminator

                   Ethernet




                              DA100            PC
     IOC PPC603
Ethernet-based Device driver
       VME I/O device driver
Sun solaris 2.8 + Torado 2.02
vxWorks 5.4
MVME2431 cpu board
MVME512—004 I/O module
   12bits D/A, 2 channels
   16bits A/D, 16 channels (bipolar input)
VME I/O device driver
VME I/O device driver
VME I/O device driver
         Files involved
devM512.c, drvM512.c
mydbExample1.db, mydbExample2.db
exampleApp.dbd
st.cmd
Makefile
         exampleApp.dbd
include "base.dbd"
device(ai,VME_IO,devAiM512,"MVME512board")
device(ao,VME_IO,devAoM512,"MVME512board")
driver(drvM512)
           mydbExample1.db
record(ao, "$(user):myaoExample")
{
    field(DTYP, "MVME512board")
     field(OUT, "#C0 S1 @")
     field(SCAN, "Passive")
     field(LINR, "LINEAR")
     field(ESLO, "0.00488281") #20.0/0xFFF
     field(EGUF, "10.0")
     field(EGUL, "-10.0")
     field(OMSL, "closed_loop")
     field(DOL, "$(user):calcExample.VAL NPP NMS")
     field(HOPR, "10")
     field(LOPR, "-10")
}
     mydbExample1.db(cont.)
record(ai, "$(user):myaiExample")
{
   field(DTYP, "MVME512board")
   field(INP, "#C0 S0 @")
   field(SCAN,"Passive")
   field(LINR, "LINEAR")
   field(ESLO, "0.00030518") #20.0/0xFFFF
   field(EGUF, "10")
   field(EGUL, "-10")
   field(HOPR, "10")
   field(LOPR, "-10")
}
                      st.cmd
cd "/export/home/xusf/epicsapp/512/bin/ppc604"
ld < iocCore
ld < seq
ld < exampleLib
cd "/export/home/xusf/epicsapp/512/iocBoot/iocm512"
dbLoadDatabase("../../dbd/exampleApp.dbd")
dbLoadRecords("../../db/mydbExample1.db","user=xusf")
dbLoadRecords("../../db/mydbExample2.db","user=xusf")
drvM512Verbose=(short)1
devM512Verbose=(short)1
iocInit
             Our plan
CAN bus device driver based on VME
Controlnet device driver based on VME
or via ethernet
Thanks

								
To top