I designed an IOC for Keithley 6485 using asyn with following database
#! Generated by VisualDCT v2.6
# ###################################################################
# Copyright (c) 2011 Lawrence Berkeley National Laboratory, Accelerator
# Technology Group, Engineering Division
# This code is distributed subject to a Software License Agreement found
# in file LICENSE that is included with this distribution.
# #######################################################################
# Basic SCPI (IEEE488.2) commands
record(stringin, "$(BL)$(P)$(R)IDN") {
field(DESC, "SCPI identification string")
field(INP, "#L$(L) A$(A) @0")
record(bo, "$(BL)$(P)$(R)RST") {
field(DESC, "SCPI Reset")
field(OUT, "#L$(L) A$(A) @1")
record(bo, "$(BL)$(P)$(R)CLS") {
field(DESC, "SCPI Clear status")
field(OUT, "#L$(L) A$(A) @2")
record(longin, "$(BL)$(P)$(R)GetSTB") {
field(DESC, "SCPI get status byte")
field(INP, "#L$(L) A$(A) @3")
record(longin, "$(BL)$(P)$(R)GetESR") {
field(DESC, "SCPI get event status")
field(INP, "#L$(L) A$(A) @4")
record(longout, "$(BL)$(P)$(R)SetESE") {
field(DESC, "SCPI enable event status")
field(OUT, "#L$(L) A$(A) @5")
record(longin, "$(BL)$(P)$(R)GetESE") {
field(DESC, "SCPI enabled event status")
field(INP, "#L$(L) A$(A) @6")
record(longout, "$(BL)$(P)$(R)SetSRE") {
field(DESC, "SCPI enable service requests")
field(OUT, "#L$(L) A$(A) @7")
record(longin, "$(BL)$(P)$(R)GetSRE") {
field(DESC, "Enabled service requests")
field(INP, "#L$(L) A$(A) @8")
record(longin, "$(BL)$(P)$(R)GetOPC") {
field(DESC, "Output completion status")
field(INP, "#L$(L) A$(A) @9")
record(ai, "$(BL)$(P)$(R)Measure") {
field(DESC, "Measure current")
field(INP, "#L$(L) A$(A) @14")
#### record(waveform, "$(BL)$(P)$(R)FetchWF")
# field(DESC, "Fetch buffered data")
# field(INP, "L$(L) A$(A) @7")
# field(NELM, "$(NELM=1000)")
record(bo, "$(BL)$(P)$(R)ZeroCheck") {
field(DESC, "Disable/Enable zero check (input clamp)")
field(OUT, "#L$(L) A$(A) @12")
field(FLNK, "$(BL)$(P)$(R)ZeroCheckRBV")
record(bi, "$(BL)$(P)$(R)ZeroCheckRBV") {
field(DESC, "Disable/Enable zero check (input clamp)")
field(INP, "#L$(L) A$(A) @12")
record(bo, "$(BL)$(P)$(R)Autozero") {
field(DESC, "Disable/Enable Auto zero")
field(OUT, "#L$(L) A$(A) @11")
field(FLNK, "$(BL)$(P)$(R)AutozeroRBV")
record(bi, "$(BL)$(P)$(R)AutozeroRBV") {
field(DESC, "Disable/Enable Autozero")
field(INP, "#L$(L) A$(A) @11")
record(bo, "$(BL)$(P)$(R)Zerocorrect") {
field(DESC, "Disable/Enable Zero correct")
field(OUT, "#L$(L) A$(A) @13")
field(FLNK, "$(BL)$(P)$(R)ZerocorrectRBV")
record(bi, "$(BL)$(P)$(R)ZerocorrectRBV") {
field(DESC, "Disable/enable Zerocurrect")
field(INP, "#L$(L) A$(A) @13")
record(mbbo, "$(BL)$(P)$(R)Range") {
field(DESC, "Full-scale range")
field(OUT, "#L$(L) A$(A) @10")
field(FLNK, "$(BL)$(P)$(R)RangeRBV")
record(mbbi, "$(BL)$(P)$(R)RangeRBV") {
field(DESC, "Full-scale range readback")
field(INP, "#L$(L) A$(A) @10")
record(bo, "$(BL)$(P)$(R)Display") {
field(DESC, "disable /enable display")
field(FLNK, "$(BL)$(P)$(R)DisplayRBV")
field(OUT, "#L$(L) A$(A) @15")
record(bi, "$(BL)$(P)$(R)DisplayRBV") {
field(DESC, "Disable/enable display")
field(INP, "#L$(L) A$(A) @15")
and .c file for device support is
#include <devCommonGpib.h>
/******************************************************************************
* The following define statements are used to declare the names to be used
* A DSET_AI entry must be declared here and referenced in an application
* database description file even if the device provides no AI records.
******************************************************************************/
#define DSET_AI devAiK6485
#define DSET_AO devAoK6485
#define DSET_BI devBiK6485
#define DSET_BO devBoK6485
#define DSET_EV devEvK6485
#define DSET_LI devLiK6485
#define DSET_LO devLoK6485
#define DSET_MBBI devMbbiK6485
#define DSET_MBBID devMbbidK6485
#define DSET_MBBO devMbboK6485
#define DSET_MBBOD devMbbodK6485
#define DSET_SI devSiK6485
#define DSET_SO devSoK6485
#define DSET_WF devWfK6485
#include <menuConvert.h> /* must be included after DSET defines */
#define TIMEOUT .5 /* I/O must complete within this time (.5 second)*/
#define TIMEWINDOW .5 /* Wait this long after device timeout */
int aiK6485Convert(struct gpibDpvt *pdpvt,int p1,int p2,char **p3);
/******************************************************************************
* Strings used by the init routines to fill in the znam,onam,...
* fields in BI and BO record types.
******************************************************************************/
/*static char *offOnList[] = { "Off","On" };
static struct devGpibNames offOn = { 2,offOnList,0,1 };
static char *initNamesList[] = { "Init","Init" };
static struct devGpibNames initNames = { 2,initNamesList,0,1 };
static char *disableEnableList[] = { "Disable","Enable" };
static struct devGpibNames disableEnable = { 2,disableEnableList,0,1 };
static char *resetList[] = { "Reset","Reset" };
static struct devGpibNames reset = { 2,resetList,0,1 };
static char *lozHizList[] = { "50 OHM","IB_Q_HIGH Z" };
static struct devGpibNames lozHiz = {2,lozHizList,0,1};
static char *invertNormList[] = { "INVERT","NORM" };
static struct devGpibNames invertNorm = { 2,invertNormList,0,1 };
static char *fallingRisingList[] = { "FALLING","RISING" };
static struct devGpibNames fallingRising = { 2,fallingRisingList,0,1 };
static char *clearList[] = { "Clear","Clear" };
static struct devGpibNames clear = { 2,clearList,0,1 }; */
static char *resetList[] = { "Reset","Reset" };
static struct devGpibNames reset = { 2,resetList,0,1 };
static char *clearList[] = { "Clear","Clear" };
static struct devGpibNames clear = { 2,clearList,0,1 };
static char *currList[] =
"Auto On","2 nA","20 nA","200 nA","2 uA","20 uA","200 uA","2 mA","20 mA","Auto Off"
static unsigned long currVal[] = {0,1,2,3,4,5,6,7,8,9};
static struct devGpibNames currNames =
static char *autoZeroList[] =
"autoZero Off","autoZero On"
static unsigned long autoZeroVal[] = {0,1};
static struct devGpibNames autoZeroNames =
2,autoZeroList,autoZeroVal,1
static char *zCheckList[] =
static unsigned long zCheckVal[] = {0,1};
static struct devGpibNames zCheckNames =
static char *zCorrList[] =
static unsigned long zCorrVal[] = {0,1};
static struct devGpibNames zCorrNames =
static char *displayList[] =
"Display Off","Display On"
static unsigned long displayVal[] = {0,1};
static struct devGpibNames displayNames =
2,displayList,displayVal,1
/******************************************************************************
* Name tables for BO / MBBO GPIBEFASTO
******************************************************************************/
static char *(rangeCurr[]) = { ":CURR:RANG:AUTO ON",":CURR:RANG 2e-9",":CURR:RANG 20e-9",":CURR:RANG 200e-9",":CURR:RANG 2e-6",":CURR:RANG 20e-6",":CURR:RANG 200e-6",":CURR:RANG 2e-3",":CURR:RANG 20e-3",":CURR:RANG:AUTO OFF", NULL};
static char *(autoZero[]) = { ":SYST:AZER:STAT 0",":SYST:AZER:STAT 1",NULL};
static char *(display[]) = { ":DISP:ENAB 0",":DISP:ENAB 1",NULL};
/*static char trigCmd[30] = ":READ?";*/
/******************************************************************************
* Array of structures that define all GPIB messages
* supported for this type of instrument.
******************************************************************************/
static struct gpibCmd gpibCmds[] = {
/* Param 0 -- Read SCPI identification string */
{&DSET_SI, GPIBREAD, IB_Q_HIGH, "*IDN?", "%39[^\r\n]",
0, 200, NULL, 0, 0, NULL, NULL, NULL},
/* Param 1 - SCPI reset command */
{&DSET_BO, GPIBCMD, IB_Q_HIGH, "*RST", NULL,
0, 80, NULL, 0, 0, NULL, &reset, NULL},
/* Param 2 - SCPI clear status command */
{&DSET_BO, GPIBCMD, IB_Q_HIGH, "*CLS", NULL,
0, 80, NULL, 0, 0, NULL, &clear, NULL},
/* Param 3 - Read SCPI status byte */
{&DSET_LI, GPIBREAD, IB_Q_HIGH, "*STB?", "%d",
0, 80, NULL, 0, 0, NULL, NULL, NULL},
/* Param 4 - Read SCPI event register */
{&DSET_LI, GPIBREAD, IB_Q_HIGH, "*ESR?", "%d",
0, 80, NULL, 0, 0, NULL, NULL, NULL},
/* Param 5 - Enable SCPI events */
{&DSET_LO, GPIBWRITE, IB_Q_HIGH, NULL, "*ESE %d",
0, 80, NULL, 0, 0, NULL, NULL, NULL},
/* Param 6 - Read back SCPI enabled events */
{&DSET_LI, GPIBREAD, IB_Q_HIGH, "*ESE?", "%d",
0, 80, NULL, 0, 0, NULL, NULL, NULL},
/* Param 7 - Enable SCPI service request sources */
{&DSET_LO, GPIBWRITE, IB_Q_HIGH, NULL, "*SRE %d",
0, 80, NULL, 0, 0, NULL, NULL, NULL},
/* Param 8 - Read back SCPI enabled service request sources */
{&DSET_LI, GPIBREAD, IB_Q_HIGH, "*SRE?", "%d",
0, 80, NULL, 0, 0, NULL, NULL, NULL},
/* Param 9 - Read SCPI output completion status */
{&DSET_LI, GPIBREAD, IB_Q_HIGH, "*OPC?", "%d",
0, 80, NULL, 0, 0, NULL, NULL, 0},
&DSET_MBBO,GPIBEFASTO,IB_Q_HIGH,NULL,NULL,MAX_RSP,MAX_MSG,NULL,0,0,rangeCurr,&currNames,NULL
&DSET_MBBO,GPIBEFASTO,IB_Q_HIGH,NULL,NULL,MAX_RSP,MAX_MSG,NULL,0,0,autoZero,&autoZeroNames,NULL
&DSET_BO,GPIBWRITE,IB_Q_HIGH,NULL,":SYST:ZCH %d",MAX_RSP,MAX_MSG,NULL,0,0,NULL,&zCheckNames,NULL
&DSET_BO,GPIBWRITE,IB_Q_HIGH,NULL,":SYST:ZCOR %d",MAX_RSP,MAX_MSG,NULL,0,0,NULL,&zCorrNames,NULL
/* 14: read (raw) value */
&DSET_AI,GPIBREAD,IB_Q_HIGH,"READ?","%lf",MAX_RSP,MAX_MSG,NULL,0,0,NULL,NULL,0
&DSET_MBBO,GPIBEFASTO,IB_Q_HIGH,NULL,NULL,MAX_RSP,MAX_MSG,NULL,0,0,display,&displayNames,NULL
/* The following is the number of elements in the command array above. */
#define NUMPARAMS sizeof(gpibCmds)/sizeof(struct gpibCmd)
/******************************************************************************
* Initialize device support parameters
*****************************************************************************/
static long init_ai(int parm)
devSupParms.name = "devK6485";
devSupParms.gpibCmds = gpibCmds;
devSupParms.numparams = NUMPARAMS;
devSupParms.timeout = TIMEOUT;
devSupParms.timeWindow = TIMEWINDOW;
devSupParms.respond2Writes = -1;
#!../../bin/linux-x86_64/K6485
## You may have to change K6485 to something else
## everywhere it appears in this file
epicsEnvSet("BL","$(BL=bl21:)")
epicsEnvSet("P","$(P=K6485:)")
##############################################################################
## Register all support components
#dbLoadDatabase "dbd/devK6485.dbd"
dbLoadDatabase "dbd/K6485.dbd"
K6485_registerRecordDeviceDriver pdbbase
###############################################################################
# drvAsynIPPortConfigure port ipInfo priority noAutoconnect noProcessEos
drvAsynSerialPortConfigure("L0","/dev/ttyUSB0",0,0,0)
asynSetOption("L0", 19, "baud", "9600")
asynSetOption("L0", 19, "bits", "8")
asynSetOption("L0", 19, "parity", "none")
asynSetOption("L0", 19, "stop", "1")
asynSetOption("L0", 19, "crtscts", "N")
###################################################################
#asynSetTraceFile("L0",19,"")
#asynSetTraceMask("L0",19,0x09)
#asynSetTraceIOMask("L0",19,0x2)
###############################################################################
## Load record instances#!../../bin/linux-x86_64/K6485
## You may have to change K6485 to something else
## everywhere it appears in this file
epicsEnvSet("BL","$(BL=bl21:)")
epicsEnvSet("P","$(P=K6485:)")
##############################################################################
## Register all support components
#dbLoadDatabase "dbd/devK6485.dbd"
dbLoadDatabase "dbd/K6485.dbd"
K6485_registerRecordDeviceDriver pdbbase
###############################################################################
# drvAsynIPPortConfigure port ipInfo priority noAutoconnect noProcessEos
drvAsynSerialPortConfigure("L0","/dev/ttyUSB0",0,0,0)
asynSetOption("L0", 19, "baud", "9600")#!../../bin/linux-x86_64/K6485
## You may have to change K6485 to something else
## everywhere it appears in this file
epicsEnvSet("BL","$(BL=bl21:)")
epicsEnvSet("P","$(P=K6485:)")
##############################################################################
## Register all support components
#dbLoadDatabase "dbd/devK6485.dbd"
dbLoadDatabase "dbd/K6485.dbd"
K6485_registerRecordDeviceDriver pdbbase
###############################################################################
# drvAsynIPPortConfigure port ipInfo priority noAutoconnect noProcessEos
drvAsynSerialPortConfigure("L0","/dev/ttyUSB0",0,0,0)
asynSetOption("L0", 19, "baud", "9600")
asynSetOption("L0", 19, "bits", "8")
asynSetOption("L0", 19, "parity", "none")
asynSetOption("L0", 19, "stop", "1")
asynSetOption("L0", 19, "crtscts", "N")
###################################################################
#asynSetTraceFile("L0",19,"")
#asynSetTraceMask("L0",19,0x09)
#asynSetTraceIOMask("L0",19,0x2)
###############################################################################
asynSetOption("L0", 19, "bits", "8")
asynSetOption("L0", 19, "parity", "none")
asynSetOption("L0", 19, "stop", "1")
asynSetOption("L0", 19, "crtscts", "N")
###################################################################
#asynSetTraceFile("L0",19,"")
#asynSetTraceMask("L0",19,0x09)
#asynSetTraceIOMask("L0",19,0x2)
###############################################################################
dbLoadRecords("db/devK6485.db","BL=$(BL),P=$(P),R=1,L=0,A=-1,NELM=1000,SCAN= 5 second")
dbLoadRecords ("db/asynRecord.db","P=$(P),R=asyn,PORT=L0,ADDR=19,OMAX=0,IMAX=0")
cd "${TOP}/iocBoot/${IOC}"
asynSetTraceMask("L0",19,0x09)
## Start any sequence programs
#seq sncxxx,"user=pxbl21-1Host"
running the IOC following is the output
#!../../bin/linux-x86_64/K6485
## You may have to change K6485 to something else
## everywhere it appears in this file
epicsEnvSet("BL","bl21:")
epicsEnvSet("P","K6485:")
epicsEnvSet("ARCH","linux-x86_64")
epicsEnvSet("IOC","iocK6485")
epicsEnvSet("TOP","/home/pxbl21-1/programs/epics/bl21/K6485")
epicsEnvSet("K6485","/home/pxbl21-1/programs/epics/bl21/K6485")
epicsEnvSet("ASYN","/home/pxbl21-1/programs/epics/modules/synApps_5_6/support/asyn-4-18")
epicsEnvSet("EPICS_BASE","/home/pxbl21-1/programs/epics/base-3.14.12.5")
##############################################################################
cd "/home/pxbl21-1/programs/epics/bl21/K6485"
## Register all support components
#dbLoadDatabase "dbd/devK6485.dbd"
dbLoadDatabase "dbd/K6485.dbd"
K6485_registerRecordDeviceDriver pdbbase
###############################################################################
# drvAsynIPPortConfigure port ipInfo priority noAutoconnect noProcessEos
drvAsynSerialPortConfigure("L0","/dev/ttyUSB0",0,0,0)
asynSetOption("L0", 19, "baud", "9600")
asynSetOption("L0", 19, "bits", "8")
asynSetOption("L0", 19, "parity", "none")running the IOC following is the output
#!../../bin/linux-x86_64/K6485
## You may have to change K6485 to something else
## everywhere it appears in this file
epicsEnvSet("BL","bl21:")
epicsEnvSet("P","K6485:")
epicsEnvSet("ARCH","linux-x86_64")
epicsEnvSet("IOC","iocK6485")
epicsEnvSet("TOP","/home/pxbl21-1/programs/epics/bl21/K6485")
epicsEnvSet("K6485","/home/pxbl21-1/programs/epics/bl21/K6485")
epicsEnvSet("ASYN","/home/pxbl21-1/programs/epics/modules/synApps_5_6/support/asyn-4-18")
epicsEnvSet("EPICS_BASE","/home/pxbl21-1/programs/epics/base-3.14.12.5")
##############################################################################
cd "/home/pxbl21-1/programs/epics/bl21/K6485"
## Register all support components
#dbLoadDatabase "dbd/devK6485.dbd"
dbLoadDatabase "dbd/K6485.dbd"
K6485_registerRecordDeviceDriver pdbbase
###############################################################################
# drvAsynIPPortConfigure port ipInfo priority noAutoconnect noProcessEos
drvAsynSerialPortConfigure("L0","/dev/ttyUSB0",0,0,0)
asynSetOption("L0", 19, "baud", "9600")
asynSetOption("L0", 19, "bits", "8")
asynSetOption("L0", 19, "parity", "none")
asynSetOption("L0", 19, "stop", "1")
asynSetOption("L0", 19, "crtscts", "N")
###################################################################
#asynSetTraceFile("L0",19,"")
#asynSetTraceMask("L0",19,0x09)
#asynSetTraceIOMask("L0",19,0x2)
###############################################################################
dbLoadRecords("db/devK6485.db","BL=bl21:,P=K6485:,R=1,L=0,A=-1,NELM=1000")
macLib: macro SCAN is undefined (expanding string field(SCAN, "$(SCAN)")
filename="../dbLexRoutines.c" line number=321
macExpandString failed for file db/devK6485.db
bl21:K6485:1Measure.SCAN Has unexpanded macro
Can't set "bl21:K6485:1Measure.SCAN" to "$(SCAN,undefined)"
Error at or before ")" in file "db/devK6485.db" line 82
dbLoadRecords ("db/asynRecord.db","P=K6485:,R=asyn,PORT=L0,ADDR=19,OMAX=0,IMAX=0")
filename="../dbLexRoutines.c" line number=240running the IOC following is the output
#!../../bin/linux-x86_64/K6485
## You may have to change K6485 to something else
## everywhere it appears in this file
epicsEnvSet("BL","bl21:")
epicsEnvSet("P","K6485:")
epicsEnvSet("ARCH","linux-x86_64")
epicsEnvSet("IOC","iocK6485")
epicsEnvSet("TOP","/home/pxbl21-1/programs/epics/bl21/K6485")
epicsEnvSet("K6485","/home/pxbl21-1/programs/epics/bl21/K6485")
epicsEnvSet("ASYN","/home/pxbl21-1/programs/epics/modules/synApps_5_6/support/asyn-4-18")
epicsEnvSet("EPICS_BASE","/home/pxbl21-1/programs/epics/base-3.14.12.5")
##############################################################################
cd "/home/pxbl21-1/programs/epics/bl21/K6485"
## Register all support components
#dbLoadDatabase "dbd/devK6485.dbd"
dbLoadDatabase "dbd/K6485.dbd"
K6485_registerRecordDeviceDriver pdbbase
###############################################################################
# drvAsynIPPortConfigure port ipInfo priority noAutoconnect noProcessEos
drvAsynSerialPortConfigure("L0","/dev/ttyUSB0",0,0,0)
asynSetOption("L0", 19, "baud", "9600")
asynSetOption("L0", 19, "bits", "8")
asynSetOption("L0", 19, "parity", "none")
No such file or directory dbRead opening file db/asynRecord.db
cd "/home/pxbl21-1/programs/epics/bl21/K6485/iocBoot/iocK6485"
############################################################################
## EPICS R3.14.12.5 $Date: Tue 2015-03-24 09:57:35 -0500$
## EPICS Base built Sep 15 2016
############################################################################
bl21:K6485:1AutozeroRBV : init_record : record type invalid for spec'd GPIB param#11
bl21:K6485:1DisplayRBV : init_record : record type invalid for spec'd GPIB param#15
bl21:K6485:1ZeroCheckRBV : init_record : record type invalid for spec'd GPIB param#12
bl21:K6485:1ZerocorrectRBV : init_record : record type invalid for spec'd GPIB param#13
bl21:K6485:1Autozero : init_record : record type invalid for spec'd GPIB param#11
bl21:K6485:1Display : init_record : record type invalid for spec'd GPIB param#15
bl21:K6485:1RangeRBV : init_record : record type invalid for spec'd GPIB param#10
iocRun: All initialization complete
asynSetTraceMask("L0",19,0x09)
## Start any sequence programs
#seq sncxxx,"user=pxbl21-1Host"
pxbl21-1@linux-edqv:~/programs/epics/bl21/K6485/iocBoot/iocK6485> ../../bin/linux-x86_64/K6485 st.cmd
#!../../bin/linux-x86_64/K6485
## You may have to change K6485 to something else
## everywhere it appears in this file
epicsEnvSet("BL","bl21:")
epicsEnvSet("P","K6485:")
epicsEnvSet("ARCH","linux-x86_64")
epicsEnvSet("IOC","iocK6485")
epicsEnvSet("TOP","/home/pxbl21-1/programs/epics/bl21/K6485")
epicsEnvSet("K6485","/home/pxbl21-1/programs/epics/bl21/K6485")
epicsEnvSet("ASYN","/home/pxbl21-1/programs/epics/modules/synApps_5_6/support/asyn-4-18")
epicsEnvSet("EPICS_BASE","/home/pxbl21-1/programs/epics/base-3.14.12.5")
##############################################################################
cd "/home/pxbl21-1/programs/epics/bl21/K6485"
## Register all support components
#dbLoadDatabase "dbd/devK6485.dbd"
dbLoadDatabase "dbd/K6485.dbd"
K6485_registerRecordDeviceDriver pdbbase
###############################################################################
# drvAsynIPPortConfigure port ipInfo priority noAutoconnect noProcessEos
drvAsynSerialPortConfigure("L0","/dev/ttyUSB0",0,0,0)
asynSetOption("L0", 19, "baud", "9600")
asynSetOption("L0", 19, "bits", "8")
asynSetOption("L0", 19, "parity", "none")
asynSetOption("L0", 19, "stop", "1")
asynSetOption("L0", 19, "crtscts", "N")
###################################################################
#asynSetTraceFile("L0",19,"")
#asynSetTraceMask("L0",19,0x09)
#asynSetTraceIOMask("L0",19,0x2)
###############################################################################
dbLoadRecords("db/devK6485.db","BL=bl21:,P=K6485:,R=1,L=0,A=-1,NELM=1000,SCAN= 5 second")
dbLoadRecords ("db/asynRecord.db","P=K6485:,R=asyn,PORT=L0,ADDR=19,OMAX=0,IMAX=0")
filename="../dbLexRoutines.c" line number=240
No such file or directory dbRead opening file db/asynRecord.db
cd "/home/pxbl21-1/programs/epics/bl21/K6485/iocBoot/iocK6485"
############################################################################
## EPICS R3.14.12.5 $Date: Tue 2015-03-24 09:57:35 -0500$
## EPICS Base built Sep 15 2016
############################################################################
bl21:K6485:1AutozeroRBV : init_record : record type invalid for spec'd GPIB param#11
bl21:K6485:1DisplayRBV : init_record : record type invalid for spec'd GPIB param#15
bl21:K6485:1ZeroCheckRBV : init_record : record type invalid for spec'd GPIB param#12
bl21:K6485:1ZerocorrectRBV : init_record : record type invalid for spec'd GPIB param#13
bl21:K6485:1Autozero : init_record : record type invalid for spec'd GPIB param#11
bl21:K6485:1Display : init_record : record type invalid for spec'd GPIB param#15
bl21:K6485:1RangeRBV : init_record : record type invalid for spec'd GPIB param#10
iocRun: All initialization complete
asynSetTraceMask("L0",19,0x09)
## Start any sequence programs
#seq sncxxx,"user=pxbl21-1Host"
epics> 2016/11/15 15:34:53.845 /dev/ttyUSB0 write 6
2016/11/15 15:34:54.443 bl21:K6485:1Measure read status "" nin 0
2016/11/15 15:34:54.443 bl21:K6485:1Measure error.
2016/11/15 15:34:58.845 /dev/ttyUSB0 write 6
2016/11/15 15:34:59.443 bl21:K6485:1Measure read status "" nin 0
2016/11/15 15:34:59.443 bl21:K6485:1Measure error.
2016/11/15 15:35:03.845 /dev/ttyUSB0 write 6
2016/11/15 15:35:04.443 bl21:K6485:1Measure read status "" nin 0
2016/11/15 15:35:04.443 bl21:K6485:1Measure error.
i followed all the steps as given in "howtodoserial/tutorial.html"
I am unable to get the solution for above errors please help me to get it solved.
thank you very much in advance