Added custom changes EPICs fast boards drivers
This commit is contained in:
@@ -0,0 +1,97 @@
|
||||
#+======================================================================
|
||||
# $HeadURL$
|
||||
# $Id$
|
||||
#
|
||||
# Project : JCSL-JAEA-GYRO-2012
|
||||
#
|
||||
# Description : StreamDevice protocol file for JASTEC SCM PS
|
||||
# superconducting magnet power supply controller.
|
||||
#
|
||||
#RS232C protocol : Baudrate 38400 bps
|
||||
# Data length 8 bit
|
||||
# Stop bit 1 bit
|
||||
# Parity None
|
||||
#
|
||||
#
|
||||
# Author : Takashi Nakamoto, Cosylab
|
||||
# Jack Oda, JAEA
|
||||
# Kazuhide Uchida, Cosylab Japan
|
||||
#
|
||||
# Copyright (c) : 2013 Cosylab d.d.
|
||||
# 2015 JAEA
|
||||
# 2017 Cosylab Japan Inc.
|
||||
#
|
||||
#-======================================================================
|
||||
|
||||
Terminator = CR;
|
||||
LockTimeout = 1000;
|
||||
ReplyTimeout = 200;
|
||||
|
||||
### set commands ######################################################
|
||||
|
||||
# set target current [A]
|
||||
setCurrent {
|
||||
out ":I%#+09.4f";
|
||||
in ":I%f";
|
||||
}
|
||||
|
||||
# set sweep rate [A/min]
|
||||
setSweep {
|
||||
out ":S%#05.2f";
|
||||
in ":S%f";
|
||||
}
|
||||
|
||||
# set operation state
|
||||
# L0 hold current state, L1 restart ramping current, L2 move to 0 A
|
||||
setActivity {
|
||||
out ":L%d";
|
||||
in ":L%d";
|
||||
}
|
||||
|
||||
|
||||
### Read commands ##################################################
|
||||
|
||||
# read operation state
|
||||
# 0:remote hold, 1:remote set, 2:remote down, 3:remote F.T. 4:remote zero
|
||||
# 5:local hold, 6: local set, 7:local down, 8:local F.T., 9:local zero
|
||||
readActivity {
|
||||
out ":L?";
|
||||
in ":L%d";
|
||||
}
|
||||
|
||||
# read target current [A]
|
||||
readTargCurrent {
|
||||
out ":I?";
|
||||
in ":%f";
|
||||
}
|
||||
|
||||
# read output current [A]
|
||||
readMeasCurrent {
|
||||
out ":A?";
|
||||
in ":%f";
|
||||
}
|
||||
|
||||
# read current voltage [V]
|
||||
readMeasVoltage {
|
||||
out ":V?";
|
||||
in ":%f";
|
||||
}
|
||||
|
||||
# read target sweep rate [A/min]
|
||||
readTargSweep {
|
||||
out ":S?";
|
||||
in ":%f";
|
||||
}
|
||||
|
||||
# read sweep rate upper limit[A/min]
|
||||
readSweepLim {
|
||||
out ":R?";
|
||||
in ":%f";
|
||||
}
|
||||
|
||||
# read error status
|
||||
readErrStat {
|
||||
Separator = ",";
|
||||
out ":E?";
|
||||
in ":%39c"
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
file "$(EPICS_ROOT)/db/pxi6259-module.template" {
|
||||
|
||||
pattern
|
||||
{
|
||||
AI_CONF,
|
||||
ALARM_PATH,
|
||||
BOARDTYPEIDX,
|
||||
BOY_LEVEL,
|
||||
CBS1,
|
||||
CBS2,
|
||||
DAQ_MODE,
|
||||
MODULEIDX,
|
||||
NUMSAMPLES,
|
||||
POSTTRIG_SAMPLES,
|
||||
PRETRIG_SAMPLES,
|
||||
SAMPLERATE,
|
||||
SRCCLK_CHAN,
|
||||
SRCCLK_TYPE,
|
||||
SWITCH_ACQ
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
"1",
|
||||
"/CODAC_AlarmHandler/EC/EC-GN/EC-GN-HWCF",
|
||||
"0",
|
||||
"ITER-EC-GN-HWCF",
|
||||
"EC",
|
||||
"GN",
|
||||
"1",
|
||||
"1",
|
||||
"5000",
|
||||
"4000",
|
||||
"2000",
|
||||
"1000000",
|
||||
"0",
|
||||
"0",
|
||||
"1"
|
||||
}
|
||||
|
||||
{
|
||||
"1",
|
||||
"/CODAC_AlarmHandler/EC/EC-GN/EC-GN-HWCF",
|
||||
"1",
|
||||
"ITER-EC-GN-HWCF",
|
||||
"EC",
|
||||
"GN",
|
||||
"1",
|
||||
"0",
|
||||
"5000",
|
||||
"4000",
|
||||
"2000",
|
||||
"1000000",
|
||||
"0",
|
||||
"0",
|
||||
"1"
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
file "$(EPICS_ROOT)/db/pxie6368-module.template" {
|
||||
|
||||
pattern
|
||||
{
|
||||
AIPU,
|
||||
AISR,
|
||||
AISTSP,
|
||||
AITB,
|
||||
ALARM_PATH,
|
||||
AOPU,
|
||||
AOSTSP,
|
||||
AOTB,
|
||||
BOARDTYPEIDX,
|
||||
BOY_LEVEL,
|
||||
CBS1,
|
||||
CBS2,
|
||||
CHAIMO,
|
||||
CHAOMO,
|
||||
LDAICF,
|
||||
LDAOCF,
|
||||
MODULEIDX,
|
||||
NO_SAMPLES,
|
||||
POSTTRIG_SAMPLES,
|
||||
PRETRIG_SAMPLES,
|
||||
SRCCLK_CHAN,
|
||||
SRCCLK_TYPE
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
"2",
|
||||
"1000000",
|
||||
"0",
|
||||
"0",
|
||||
"/CODAC_AlarmHandler/EC/EC-GN/EC-GN-HWCF",
|
||||
"2",
|
||||
"0",
|
||||
"0",
|
||||
"0",
|
||||
"ITER-EC-GN-HWCF",
|
||||
"EC",
|
||||
"GN",
|
||||
"2",
|
||||
"2",
|
||||
"0",
|
||||
"0",
|
||||
"1",
|
||||
"1",
|
||||
"1",
|
||||
"0",
|
||||
"0",
|
||||
"0"
|
||||
}
|
||||
|
||||
{
|
||||
"2",
|
||||
"1000000",
|
||||
"0",
|
||||
"0",
|
||||
"/CODAC_AlarmHandler/EC/EC-GN/EC-GN-HWCF",
|
||||
"2",
|
||||
"0",
|
||||
"0",
|
||||
"1",
|
||||
"ITER-EC-GN-HWCF",
|
||||
"EC",
|
||||
"GN",
|
||||
"2",
|
||||
"2",
|
||||
"0",
|
||||
"0",
|
||||
"0",
|
||||
"1",
|
||||
"1",
|
||||
"0",
|
||||
"0",
|
||||
"0"
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
file "$(EPICS_ROOT)/db/nisync_device_info.template" {
|
||||
|
||||
pattern
|
||||
{
|
||||
ALARM_PATH,
|
||||
BOARDTYPEIDX,
|
||||
BOY_LEVEL,
|
||||
CBS1,
|
||||
CBS2,
|
||||
MODULEIDX,
|
||||
PREFIXBOARDTYPE,
|
||||
SHORTBOARDTYPE
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
"/CODAC_AlarmHandler/EC/EC-GN/EC-GN-HWCF",
|
||||
"0",
|
||||
"ITER-EC-GN-HWCF",
|
||||
"EC",
|
||||
"GN",
|
||||
"0",
|
||||
"ni6683h_",
|
||||
"6683"
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,62 @@
|
||||
file "$(EPICS_ROOT)/db/pxi6528-module.template" {
|
||||
|
||||
pattern
|
||||
{
|
||||
ALARM_PATH,
|
||||
BOARDTYPEIDX,
|
||||
BOY_LEVEL,
|
||||
CBS1,
|
||||
CBS2,
|
||||
FILINT_VAL,
|
||||
MODULEIDX,
|
||||
POWUPSTAT3,
|
||||
POWUPSTAT4,
|
||||
POWUPSTAT5,
|
||||
RTSIINPROUT_VAL,
|
||||
RTSIOUTROUT_VAL,
|
||||
RTSIPCHANGE_VAL,
|
||||
RTSIPWDG_VAL,
|
||||
RTSIWDGTRIG_VAL,
|
||||
WDGTOUT_VAL
|
||||
}
|
||||
|
||||
|
||||
{
|
||||
"/CODAC_AlarmHandler/EC/EC-GN/EC-GN-HWCF",
|
||||
"0",
|
||||
"ITER-EC-GN-HWCF",
|
||||
"EC",
|
||||
"GN",
|
||||
"0",
|
||||
"1",
|
||||
"255",
|
||||
"255",
|
||||
"255",
|
||||
"0",
|
||||
"0",
|
||||
"0",
|
||||
"0",
|
||||
"0",
|
||||
"0"
|
||||
}
|
||||
|
||||
{
|
||||
"/CODAC_AlarmHandler/EC/EC-GN/EC-GN-HWCF",
|
||||
"1",
|
||||
"ITER-EC-GN-HWCF",
|
||||
"EC",
|
||||
"GN",
|
||||
"0",
|
||||
"0",
|
||||
"255",
|
||||
"255",
|
||||
"255",
|
||||
"0",
|
||||
"0",
|
||||
"0",
|
||||
"0",
|
||||
"0",
|
||||
"0"
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,249 @@
|
||||
#+======================================================================
|
||||
# $HeadURL$
|
||||
# $Id$
|
||||
#
|
||||
# Project : C-QST-ITERGyrotron
|
||||
#
|
||||
# Description : StreamDevice protocol file for PCR500LE
|
||||
# (Heater Power Supply)
|
||||
# PSU manual is "http://www.kikusui.co.jp/kiku_manuals/P/PCR_LE/manual_LE_i.html".
|
||||
#
|
||||
#RS232C protocol : Baudrate 9600bps / (19200 bps) / 38400 bps
|
||||
# Data length (8bit) / 7bit
|
||||
# Stop bit (1bit) / 2bit
|
||||
# Parity (None)
|
||||
# Flow Ctrl OFF / (RTS-CTS)
|
||||
#
|
||||
# Author : Kazuhide Uchida (Cosylab Japan)
|
||||
#
|
||||
# Copyright (c) : 2017 Cosylab Japan Inc.
|
||||
#
|
||||
#-======================================================================
|
||||
|
||||
#InTerminator = LF;
|
||||
#OutTerminator = LF;
|
||||
Terminator = LF;
|
||||
LockTimeout = 5000;
|
||||
ReplyTimeout = 2000;
|
||||
|
||||
# Device status query ##########################
|
||||
readDeviceID {
|
||||
ExtraInput = Ignore;
|
||||
out "*IDN?";
|
||||
in "%s";
|
||||
}
|
||||
|
||||
resetDevice {
|
||||
out "*RST";
|
||||
in "%s";
|
||||
}
|
||||
|
||||
# Operation command #############################
|
||||
|
||||
setCoupling {
|
||||
out "OUTP:COUP %{DC|AC|ACDC|EAC|EDC}";
|
||||
in "%s";
|
||||
}
|
||||
getCoupling {
|
||||
out "OUTP:COUP?";
|
||||
in "%s";
|
||||
}
|
||||
|
||||
### set output on/off
|
||||
setOut {
|
||||
out "OUTP %{ON|OFF|1|0}";
|
||||
in "%d";
|
||||
}
|
||||
getOut {
|
||||
out "OUTP?";
|
||||
in "%d";
|
||||
}
|
||||
|
||||
### set control source type (internal or external)
|
||||
setSource {
|
||||
out "FUNC:SOUR %{INT|EXT|SUM}";
|
||||
}
|
||||
getSource {
|
||||
out "FUNC:SOUR?";
|
||||
in "%s";
|
||||
}
|
||||
|
||||
### Command to descide AC voltage control by external voltage.
|
||||
setSourceON {
|
||||
out "VOLT:EXT:SOUR %{NONE|VOLT}";
|
||||
}
|
||||
getSourceON {
|
||||
out "VOLT:EXT:SOUR?";
|
||||
in "%{NONE|VOLT}";
|
||||
}
|
||||
|
||||
# DC output protocol set ########################
|
||||
### output range
|
||||
setVoltRange {
|
||||
out "VOLT:RANG %d";
|
||||
in "%d";
|
||||
}
|
||||
getVoltageRange {
|
||||
out "VOLT:RANG?";
|
||||
in "%d";
|
||||
}
|
||||
### DC voltage setpoint
|
||||
setVOffs {
|
||||
out "VOLTAGE:OFFS %f";
|
||||
in "%f";
|
||||
}
|
||||
getVOffs {
|
||||
out "VOLTAGE:OFFS?";
|
||||
in "%f";
|
||||
}
|
||||
### DC voltage offset upper limit
|
||||
setVOffsUL {
|
||||
out "VOLTAGE:OFFS:LIM %f";
|
||||
in "%f";
|
||||
}
|
||||
getVOffsUL {
|
||||
out "VOLTAGE:OFFS:LIM?";
|
||||
in "%f";
|
||||
}
|
||||
### DC voltage offset lower limit
|
||||
setVOffsLL {
|
||||
out "VOLTAGE:OFFS:LIM:LOW %f";
|
||||
in "%f";
|
||||
}
|
||||
getVOffsLL {
|
||||
out "VOLTAGE:OFFS:LIM:LOW?";
|
||||
in "%f";
|
||||
}
|
||||
|
||||
|
||||
# AC output protocol set ########################
|
||||
### AC frequency
|
||||
setFreq {
|
||||
out "FREQ %f";
|
||||
in "%f";
|
||||
}
|
||||
getFreq {
|
||||
out "FREQ?";
|
||||
in "%f";
|
||||
}
|
||||
### AC voltage amp.
|
||||
setVolt {
|
||||
out "VOLT %f";
|
||||
in "%f";
|
||||
}
|
||||
getVolt {
|
||||
out "VOLT?";
|
||||
in "%f";
|
||||
}
|
||||
setCurr {
|
||||
out "CURR %f";
|
||||
}
|
||||
getCurr {
|
||||
out "CURR?";
|
||||
in "%f";
|
||||
}
|
||||
|
||||
### Upper voltage limit
|
||||
setUpVoltUL {
|
||||
out "VOLTage:OFFS:LIM %f";
|
||||
in "%f";
|
||||
}
|
||||
getUpVoltUL {
|
||||
out "VOLT:OFFS:LIM?";
|
||||
in "%f";
|
||||
}
|
||||
|
||||
### Lower offset voltage limit
|
||||
setLowVoltLL {
|
||||
out "VOLT:OFFS:LIM:LOW %f";
|
||||
in "%f";
|
||||
}
|
||||
getLowVoltLL {
|
||||
out "VOLT:OFFS:LIM:LOW?";
|
||||
in "%f";
|
||||
}
|
||||
|
||||
# Query measured values##########################
|
||||
getMeasDCV {
|
||||
out "MEAS:VOLT:DC?";
|
||||
in "%f";
|
||||
}
|
||||
|
||||
getMeasDCI {
|
||||
out "MEAS:CURR:DC?";
|
||||
in "%f";
|
||||
}
|
||||
|
||||
getMeasDCP {
|
||||
out "MEAS:POW:DC?";
|
||||
in "%f";
|
||||
}
|
||||
|
||||
getMeasACV{
|
||||
out "MEAS:VOLT:AC?";
|
||||
in "%f";
|
||||
}
|
||||
getMeasACI{
|
||||
out "MEAS:CURR:AC?";
|
||||
in "%f";
|
||||
}
|
||||
getMeasACP{
|
||||
out "MEAS:POW:AC?";
|
||||
in "%f";
|
||||
}
|
||||
getMeasACF{
|
||||
out "MEAS:FREQ?";
|
||||
in "%f";
|
||||
}
|
||||
|
||||
#################################################
|
||||
|
||||
# Enable Local operation
|
||||
setLoc {
|
||||
out "SYST:LOC";
|
||||
}
|
||||
|
||||
setRem {
|
||||
out "SYST:REM";
|
||||
}
|
||||
|
||||
|
||||
# Sequencial operation ##########################
|
||||
# Set program
|
||||
setProg {
|
||||
out "PROGram:EDIT %d %{ON|OFF|0|1} %f 0 0 1 %f %f 0 1 0 0 1";
|
||||
|
||||
}
|
||||
getProg {
|
||||
out "PROGram:EDIT?";
|
||||
in "%d %f %d %f %d %f %f %d %d %d %d %d";
|
||||
}
|
||||
|
||||
# set sequence operation
|
||||
setSeqStat {
|
||||
out ":PROGram:STATe %{STOP|RUN|PAUSe|CONTinue}";
|
||||
}
|
||||
|
||||
# get program state
|
||||
getSeqStat {
|
||||
out ":PROGram:EXEC?";
|
||||
in "%s";
|
||||
}
|
||||
|
||||
# set trigger source
|
||||
setTrgSource {
|
||||
out "TRIGer:PROGram:SOURce %{IMMediate|BUS}";
|
||||
in "%s";
|
||||
}
|
||||
|
||||
# Query system error ##########################
|
||||
getError {
|
||||
ExtraInput = Ignore;
|
||||
out "SYST:ERR?";
|
||||
in "%39c";
|
||||
}
|
||||
|
||||
#################################################
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,154 @@
|
||||
#+======================================================================
|
||||
# $HeadURL$
|
||||
# $Id$
|
||||
#
|
||||
# Project : C-QST-ITERGyrotron
|
||||
#
|
||||
# Description : StreamDevice protocol file for PWX1500ML
|
||||
# (Heater Power Supply)
|
||||
# PSU manual is "https://www.kikusui.co.jp/kiku_manuals/P/PWX/i_f_manual/japanese/00-intro.html".
|
||||
# Ethernet Connection.
|
||||
#
|
||||
# Author : Kazuhide Uchida (Cosylab Japan)
|
||||
#
|
||||
# Copyright (c) : 2019 Cosylab Japan Inc.
|
||||
#
|
||||
#-======================================================================
|
||||
|
||||
#InTerminator = LF;
|
||||
#OutTerminator = LF;
|
||||
Terminator = LF;
|
||||
LockTimeout = 1000;
|
||||
ReplyTimeout = 100;
|
||||
|
||||
# Device status query ##########################
|
||||
readDeviceID {
|
||||
ExtraInput = Ignore;
|
||||
out "*IDN?";
|
||||
in "%s";
|
||||
}
|
||||
|
||||
resetDevice {
|
||||
out "*RST";
|
||||
in "%s";
|
||||
}
|
||||
|
||||
# Operation command #############################
|
||||
|
||||
### set output on/off
|
||||
setOut {
|
||||
out "OUTP %{ON|OFF|1|0}";
|
||||
in "%d";
|
||||
}
|
||||
getOut {
|
||||
out "OUTP?";
|
||||
in "%d";
|
||||
}
|
||||
|
||||
### set source on/off
|
||||
setSourceON {
|
||||
out "VOLT:EXT:SOUR %{NONE|VOLT}";
|
||||
}
|
||||
getSourceON {
|
||||
out "VOLT:EXT:SOUR?";
|
||||
in "%{NONE|VOLT}";
|
||||
}
|
||||
|
||||
# DC output protocol set ########################
|
||||
### OVP setpoint
|
||||
setOVP {
|
||||
out "VOLT:PROT %f";
|
||||
in "%d";
|
||||
}
|
||||
getOVP {
|
||||
out "VOLT:PROT?";
|
||||
in "%f";
|
||||
}
|
||||
### DC voltage setpoint
|
||||
setVolt {
|
||||
out "VOLT %f";
|
||||
}
|
||||
getVolt {
|
||||
out "VOLT?";
|
||||
in "%f";
|
||||
}
|
||||
setCurr {
|
||||
out "CURR %f";
|
||||
}
|
||||
getCurr {
|
||||
out "CURR?";
|
||||
in "%f";
|
||||
}
|
||||
|
||||
# Query measured values##########################
|
||||
getMeasDCV {
|
||||
out "FETC:VOLT:DC?";
|
||||
in "%f";
|
||||
}
|
||||
|
||||
getMeasDCI {
|
||||
out "FETC:CURR:DC?";
|
||||
in "%f";
|
||||
}
|
||||
|
||||
#getMeasV {
|
||||
# out "MEAS:VOLT?"
|
||||
# in "%f"
|
||||
#}
|
||||
#getMeasI {
|
||||
# out "MEAS:VOLT?"
|
||||
# in "%f"
|
||||
#}
|
||||
|
||||
#################################################
|
||||
|
||||
# Enable Local operation
|
||||
setRem {
|
||||
out "SYST:COMM:RLST %{LOC|REM|RWL}";
|
||||
}
|
||||
|
||||
getRem {
|
||||
out "SYST:COMM:RLST?";
|
||||
in "%{LOC|REM|RWL}";
|
||||
}
|
||||
|
||||
|
||||
# Sequencial operation ##########################
|
||||
# Set program
|
||||
setProg {
|
||||
out "PROGram:EDIT %d %{ON|OFF|0|1} %f 0 0 1 %f %f 0 1 0 0 1";
|
||||
|
||||
}
|
||||
getProg {
|
||||
out "PROGram:EDIT?";
|
||||
in "%d %f %d %f %d %f %f %d %d %d %d %d";
|
||||
}
|
||||
|
||||
# set sequence operation
|
||||
setSeqStat {
|
||||
out ":PROGram:STATe %{STOP|RUN|PAUSe|CONTinue}";
|
||||
}
|
||||
|
||||
# get program state
|
||||
getSeqStat {
|
||||
out ":PROGram:EXEC?";
|
||||
in "%s";
|
||||
}
|
||||
|
||||
# set trigger source
|
||||
setTrgSource {
|
||||
out "TRIGer:PROGram:SOURce %{IMMediate|BUS}";
|
||||
in "%s";
|
||||
}
|
||||
|
||||
# Query system error ##########################
|
||||
getError {
|
||||
ExtraInput = Ignore;
|
||||
out "SYST:ERR?";
|
||||
in "%39c";
|
||||
}
|
||||
|
||||
#################################################
|
||||
|
||||
|
||||
|
||||
Submodule ec-gn-ja-pcf-sdd-in updated: 0318d2002e...47c27a96e8
23
generate.sh
23
generate.sh
@@ -68,12 +68,13 @@ if [[ ${ok} != "0" ]]; then
|
||||
cp -rf ${project_name}-IN/.[^.]* ${project_name}/
|
||||
# cp -rf tmp_resources/* ${project_name}/src/main/resources
|
||||
# rm -rf tmp_resources
|
||||
mkdir ${project_name,,}-sdd-in/SDD_IN/templates
|
||||
/bin/cp -f /opt/codac/marte2-extensions/templates/* ${project_name,,}-sdd-in/SDD_IN/templates
|
||||
/bin/cp -f patches/* ${project_name,,}-sdd-in/SDD_IN/templates
|
||||
/bin/cp -rf /opt/codac/marte2-extensions/templates ${project_name,,}-sdd-in/SDD_IN/
|
||||
/bin/cp -f templates/* ${project_name,,}-sdd-in/SDD_IN/templates
|
||||
|
||||
cd ${project_name,,}-sdd-in/SDD_IN
|
||||
./sdd-generate.sh
|
||||
|
||||
rm -rf templates
|
||||
fi
|
||||
cid=$((cid+1))
|
||||
|
||||
@@ -85,15 +86,19 @@ cd ${current_dir}
|
||||
|
||||
ok=$(echo ${mask} | cut -c ${cid})
|
||||
|
||||
#if [[ ${ok} != "0" ]]; then
|
||||
if [[ ${ok} != "0" ]]; then
|
||||
|
||||
# cat patches/EC-GN-PCF0CORE_sddPreDriverConf.patch ${project_name}/src/main/epics/iocBoot/iocEC-GN-PCF0CORE/sddPreDriverConf.cmd > sddPreDriverConf_patched.cmd
|
||||
# mv -f sddPreDriverConf_patched.cmd ${project_name}/src/main/epics/iocBoot/iocEC-GN-PCF0CORE/sddPreDriverConf.cmd
|
||||
cat patches/EC-GN-PCF0CORE_sddPreDriverConf.patch ${project_name}/src/main/epics/iocBoot/iocEC-GN-PCF0CORE/sddPreDriverConf.cmd > sddPreDriverConf_patched.cmd
|
||||
mv -f sddPreDriverConf_patched.cmd ${project_name}/src/main/epics/iocBoot/iocEC-GN-PCF0CORE/sddPreDriverConf.cmd
|
||||
|
||||
# cat patches/EC-GN-PCF0CORE_userPreDriverConf.patch ${project_name}/src/main/epics/iocBoot/iocEC-GN-PCF0CORE/userPreDriverConf.cmd > userPreDriverConf_patched.cmd
|
||||
# mv -f userPreDriverConf_patched.cmd ${project_name}/src/main/epics/iocBoot/iocEC-GN-PCF0CORE/userPreDriverConf.cmd
|
||||
cat patches/EC-GN-PCF0CORE_userPreDriverConf.patch ${project_name}/src/main/epics/iocBoot/iocEC-GN-PCF0CORE/userPreDriverConf.cmd > userPreDriverConf_patched.cmd
|
||||
mv -f userPreDriverConf_patched.cmd ${project_name}/src/main/epics/iocBoot/iocEC-GN-PCF0CORE/userPreDriverConf.cmd
|
||||
|
||||
#fi
|
||||
sed -i "s/#__patch/$(cat patches/EC-GN-PCF0CORE_dbToLoad.patch | sed ':a;N;$!ba;s/\n/__nl__/g')/g" ${project_name}/src/main/epics/iocBoot/iocEC-GN-PCF0CORE/dbToLoad.cmd
|
||||
sed -i "s/__nl__/\n/g" ${project_name}/src/main/epics/iocBoot/iocEC-GN-PCF0CORE/dbToLoad.cmd
|
||||
|
||||
|
||||
fi
|
||||
|
||||
cid=$((cid+1))
|
||||
|
||||
|
||||
4
patches/EC-GN-PCF0CORE_dbToLoad.patch
Normal file
4
patches/EC-GN-PCF0CORE_dbToLoad.patch
Normal 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")
|
||||
63
patches/EC-GN-PCF0CORE_sddPreDriverConf.patch
Normal file
63
patches/EC-GN-PCF0CORE_sddPreDriverConf.patch
Normal 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 User’s 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 User’s 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 User’s 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")
|
||||
64
patches/EC-GN-PCF0CORE_userPreDriverConf.patch
Normal file
64
patches/EC-GN-PCF0CORE_userPreDriverConf.patch
Normal 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")
|
||||
26
templates/epics-dbToLoad.cmd
Normal file
26
templates/epics-dbToLoad.cmd
Normal file
@@ -0,0 +1,26 @@
|
||||
#======================================================================
|
||||
# Loading DBs
|
||||
#======================================================================
|
||||
cd $(TOP)/db
|
||||
@DBxx
|
||||
|
||||
#======================================================================
|
||||
# Loading Substitution Files
|
||||
#======================================================================
|
||||
cd $(TOP)/iocBoot/$(IOC)
|
||||
@SUBx
|
||||
#__patch
|
||||
|
||||
#======================================================================
|
||||
# PLC Communication Monitoring PVs DB Loading
|
||||
#======================================================================
|
||||
cd $(EPICS_ROOT)/db
|
||||
@PLCM
|
||||
|
||||
#======================================================================
|
||||
# IOC Monitor
|
||||
#======================================================================
|
||||
cd $(EPICS_ROOT)/db
|
||||
#dbLoadRecords("iocmon.db","CBS=@CBS1-@CBS2-SYSM, CTRLTYPE=@CTRT, IDX=@IDNx, IOCTYPE=@IOCT, PP=@PBS2, PPPP=@PBS1, NNNN=@PBS4, TTT=@PBS3")
|
||||
|
||||
#- End-of-file marker - do not delete or add lines below!
|
||||
Reference in New Issue
Block a user