Added custom changes EPICs fast boards drivers

This commit is contained in:
ferrog
2025-05-15 15:10:34 +00:00
parent 01dae2f39b
commit 13772b30aa
13 changed files with 900 additions and 10 deletions

View File

@@ -0,0 +1,4 @@
dbLoadTemplate("PCF0-nisync-device-info.substitution")
dbLoadTemplate("PCF0-pxi6528-module.substitution")
dbLoadTemplate("PCF0-NI6368-module.substitution")
dbLoadTemplate("PCF0-NI6259-module.substitution")

View File

@@ -0,0 +1,63 @@
#============================================================================
# NI-6259 DAQ I/O Module driver configuration commands
#============================================================================
# Reference: ITER_D_3DEY52 v1.3 - NI PXI-6259 EPICS Driver Users Guide
# For analogue input, analogue output, waveform, initialize using below function
# pxi6259_ai_init(uint8 cardnumber, uint32 range, uint32 clk_source, uint32 clk_edge);
# Example: pxi6259_ai_init(0, 1, 0, 0)
# For binary input, binary output, multi-bit binary input, multi bit binary output, initialize using below function
# pxi6259init(uint8 cardnumber, uint32 portmask0, uint8 portmask1, uint8 portmask2);
# Example: pxi6259_bio_init(0, 0xFF000000, 0xFF, 0xFF)
pxi6259_ai_init(0, 1, 0, 0 )
pxi6259_bio_init(0, 0x0, 0x0, 0x0 )
pxi6259_ai_init(1, 1, 0, 0 )
pxi6259_bio_init(1, 0x0, 0x0, 0x0 )
#============================================================================
# NI-6682 Timing and Synchronization I/O Module driver configuration commands
#============================================================================
# Reference ITER_D_33Q5TX v1.7 - NI Sync EPICS Driver Users Guide
# nisyncDrvInit(string port, char* type, int cardNumber);
# Example: nisyncDrvInit("S0", "PXI-6682", "0");
# Example: nisyncDrvInit("S0", "PXI-6683H", "0");
# nisyncTimeInit(int cardID, char* type, int cardNumber);
# Example: nisyncTimeInit("0", "PXI-6682", "0")
# Example: nisyncTimeInit("0", "PXI-6683H", "0")
nisyncDrvInit("ni6683h_0", "PXI-6683H", "0")
nisyncTimeInit("0", "PXI-6683H", "0")
#============================================================================================
# NI-6368 X Series - Multifunction Data Acquisition I/O Module driver configuration commands
#============================================================================================
# Reference ITER_D_3P4N3R v1.2 - NI X Series EPICS Driver Users Guide
# nixseriesInit(char *portName, char *nix6368Card);
# Example: nixseriesInit("ni6368_0", "/dev/ni6368.0");
nixseriesInit("ni6368_0", "/dev/pxie-6368.1")
nixseriesInit("ni6368_1", "/dev/pxie-6368.0")
#============================================================================
# NI-6528 DAQ I/O Module driver configuration commands
#============================================================================
# Reference ITER_D_433VEW - NI PXI-6528 EPICS Driver User's Manual
# ni6528_init(char *portName, char *ni6528Card);
# Example: pxi6528_init("ni6528_0", "/dev/ni6528.0")
# asynSetTraceMask("<port name>",0,255)
# Example: asynSetTraceMask("pxi6528_0",0,255)
# pxi6528_reset(char *portName)
# Example: pxi6528_reset("pxi6528_0")
pxi6528_init("ni6528_0", "/dev/pxi6528.0")
# asynSetTraceMask("ni6528_0",0,255)
# pxi6528_reset("ni6528_0")
pxi6528_init("ni6528_1", "/dev/pxi6528.1")
# asynSetTraceMask("ni6528_1",0,255)
# pxi6528_reset("ni6528_1")

View File

@@ -0,0 +1,64 @@
############################################################################
## User provided PLC or fast controller driver pre configuration
############################################################################
### PXIe-6368 setup
## AO Port ##
asynXseriesResetAoConfiguration("ni6368_0")
asynXseriesStaticAo("ni6368_0")
asynXseriesAddAoChannel("ni6368_0", 0, 0)
asynXseriesAddAoChannel("ni6368_0", 1, 0)
asynXseriesAddAoChannel("ni6368_0", 2, 0)
asynXseriesAddAoChannel("ni6368_0", 3, 0)
asynXseriesLoadAoConfiguration("ni6368_0")
asynXseriesStartAo("ni6368_0")
asynXseriesResetAoConfiguration("ni6368_1")
asynXseriesStaticAo("ni6368_1")
asynXseriesAddAoChannel("ni6368_1", 0, 0)
asynXseriesAddAoChannel("ni6368_1", 1, 0)
asynXseriesAddAoChannel("ni6368_1", 2, 0)
asynXseriesAddAoChannel("ni6368_1", 3, 0)
asynXseriesLoadAoConfiguration("ni6368_1")
asynXseriesStartAo("ni6368_1")
## AI Port ##
### PXI-6259 setup
pxi6259_ai_start_trig(0, 1, 0, 0) #boardnumber, enable, trigger_source, trigger_edge
pxi6259_ai_start_trig(1, 1, 0, 0) #boardnumber, enable, trigger_source, trigger_edge
### PXI-6528 setup
### set change detection to both
pxi6528_set_port_change_detection("ni6528_0", 0, 255, 255)
pxi6528_set_port_change_detection("ni6528_0", 1, 255, 255)
pxi6528_set_port_change_detection("ni6528_0", 2, 255, 255)
pxi6528_set_port_change_detection("ni6528_1", 0, 255, 255)
pxi6528_set_port_change_detection("ni6528_1", 1, 255, 255)
pxi6528_set_port_change_detection("ni6528_1", 2, 255, 255)
### enable IO intr mode
pxi6528_enable_io_intr_scanning("ni6528_0")
pxi6528_enable_io_intr_scanning("ni6528_1")
### Stream Device setup ####################################
### set appropriate IP address and port number
drvAsynIPPortConfigure("CCPS1", "192.168.5.2:5025")
drvAsynIPPortConfigure("FHPS1", "192.168.5.3:6000")
drvAsynIPPortConfigure("MC1", "192.168.5.4:6000")
drvAsynIPPortConfigure("GC1", "192.168.5.5:6000")
drvAsynIPPortConfigure("CCPS2", "192.168.5.6:5025")
drvAsynIPPortConfigure("FHPS2", "192.168.5.7:6000")
drvAsynIPPortConfigure("MC2", "192.168.5.8:6000")
drvAsynIPPortConfigure("GC2", "192.168.5.9:6000")