hello sir I am designing IOC for KEITHLEY 6485 with RS232/USB interface my cable is UC232-A
witn
EPICS_CA_ADDR_LIST=/dev/ttyUSB0
EPICS_CA_AUTO_ADDR_LIST=NO
my files are as follows
devK6485.c
-/*
* K6485 device support
*/
#include <epicsStdio.h>
#include <devCommonGpib.h>
/******************************************************************************
*
* The following define statements are used to declare the names to be used
* for the dset tables.
*
* 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 <devGpib.h>
#include <alarm.h>
#include <recGbl.h>
#include <cvtTable.h>
#include <string.h>
#include <dbEvent.h>
#include <caeventmask.h>
#include <menuConvert.h> /* must be included after DSET defines */
#define TIMEOUT 5 /* I/O must complete within this time (.5 second)*/
#define TIMEWINDOW 2 /* 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 =
{
10,currList,currVal,4
};
static char *autoZeroList[] =
{
"autoZero Off","autoZero On"
};
static unsigned long autoZeroVal[] = {0,1};
static struct devGpibNames autoZeroNames =
{
2,autoZeroList,autoZeroVal,1
};
static char *zCheckList[] =
{
"zCheckOff","zCheckOn"
};
static unsigned long zCheckVal[] = {0,1};
static struct devGpibNames zCheckNames =
{
2,zCheckList,zCheckVal,1
};
static char *zCorrList[] =
{
"zCorrOff","zCorrOn"
};
static unsigned long zCorrVal[] = {0,1};
static struct devGpibNames zCorrNames =
{
2,zCorrList,zCorrVal,1
};
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};
#define MAX_RSP 0
#define MAX_MSG 45
/*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},
/* 10: rangeCurr */
{
&DSET_MBBO,GPIBEFASTO,IB_Q_HIGH,NULL,NULL,MAX_RSP,MAX_MSG,NULL,0,0,rangeCurr,&currNames,NULL
},
/* 11: autoZero: */
{
&DSET_BO,GPIBWRITE,IB_Q_HIGH,NULL,NULL,MAX_RSP,MAX_MSG,NULL,0,0,autoZero,&autoZeroNames,NULL
},
/* 12: zero check */
{
&DSET_BO,GPIBWRITE,IB_Q_HIGH,NULL,":SYST:ZCH %d",MAX_RSP,MAX_MSG,NULL,0,0,NULL,&zCheckNames,NULL
},
/* 13: zero correct */
{
&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?",NULL,MAX_RSP,MAX_MSG,NULL,0,0,NULL,NULL,0
},
/* 1*: fatch (raw) value
{
&DSET_BI,GPIBREAD,IB_Q_HIGH,":FECT?","%lf",MAX_RSP,MAX_MSG,NULL,0,0,NULL,NULL,0
},*/
/* 15: display: */
{
&DSET_BO,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)
{
if(parm==0) {
devSupParms.name = "devK6485";
devSupParms.gpibCmds = gpibCmds;
devSupParms.numparams = NUMPARAMS;
devSupParms.timeout = TIMEOUT;
devSupParms.timeWindow = TIMEWINDOW;
devSupParms.respond2Writes = -1;
}
return(0);
}
K6485.db
#! Generated by VisualDCT v2.6
#! DBDSTART
#! DBDEND
# ###################################################################
# 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(DTYP, "K6485")
field(INP, "#L$(L) A$(A) @0")
field(PINI, "NO")
}
record(bo, "$(BL)$(P)$(R)RST") {
field(DESC, "SCPI Reset")
field(DTYP, "K6485")
field(OUT, "#L$(L) A$(A) @1")
}
record(bo, "$(BL)$(P)$(R)CLS") {
field(DESC, "SCPI Clear status")
field(DTYP, "K6485")
field(OUT, "#L$(L) A$(A) @2")
}
record(longin, "$(BL)$(P)$(R)GetSTB") {
field(DESC, "SCPI get status byte")
field(DTYP, "K6485")
field(INP, "#L$(L) A$(A) @3")
}
record(longin, "$(BL)$(P)$(R)GetESR") {
field(DESC, "SCPI get event status")
field(DTYP, "K6485")
field(INP, "#L$(L) A$(A) @4")
}
record(longout, "$(BL)$(P)$(R)SetESE") {
field(DESC, "SCPI enable event status")
field(DTYP, "K6485")
field(OUT, "#L$(L) A$(A) @5")
}
record(longin, "$(BL)$(P)$(R)GetESE") {
field(DESC, "SCPI enabled event status")
field(DTYP, "K6485")
field(INP, "#L$(L) A$(A) @6")
}
record(longout, "$(BL)$(P)$(R)SetSRE") {
field(DESC, "SCPI enable service requests")
field(DTYP, "K6485")
field(OUT, "#L$(L) A$(A) @7")
}
record(longin, "$(BL)$(P)$(R)GetSRE") {
field(DESC, "Enabled service requests")
field(DTYP, "K6485")
field(INP, "#L$(L) A$(A) @8")
}
record(longin, "$(BL)$(P)$(R)GetOPC") {
field(DESC, "Output completion status")
field(DTYP, "K6485")
field(INP, "#L$(L) A$(A) @9")
}
# Reading
record(ai, "$(BL)$(P)$(R)Measure") {
field(DESC, "Measure current")
field(DTYP, "K6485")
field(INP, "#L$(L) A$(A) @14")
field(EGU, "Amp")
field(PREC, "5")
field(SCAN, "$(SCAN)")
}
##field(DESC, "Fetch buffered data")
#field(DTYP, "K6485")
# field(INP, "L$(L) A$(A) @15")
#field(EGU, "A")
# field(PREC, "5")
#field(FTVL, "FLOAT")
# field(NELM, "$(NELM=1000)")
#}
#
# Zero-check
#
record(bo, "$(BL)$(P)$(R)ZeroCheck") {
field(DESC, "Disable/Enable zero check (input clamp)")
field(DTYP, "K6485")
field(OUT, "#L$(L) A$(A) @12")
field(ZNAM, "Off")
field(ONAM, "On")
#field(PROC, "0")
#field(FLNK, "$(BL)$(P)$(R)ZeroCheckRBV")
}
#record(bi, "$(BL)$(P)$(R)ZeroCheckRBV") {
#field(DESC, "Disable/Enable zero check (input clamp)")
# field(DTYP, "K6485")
# field(INP, "#L$(L) A$(A) @12")
# field(ZNAM, "Off")
# field(ONAM, "On")
# field(PINI, "YES")
#}
record(bo, "$(BL)$(P)$(R)Autozero") {
field(DESC, "Disable/Enable Auto zero")
field(DTYP, "K6485")
field(OUT, "#L$(L) A$(A) @11")
field(ZNAM, "Off")
field(ONAM, "On")
# field(FLNK, "$(BL)$(P)$(R)AutozeroRBV")
}
#record(mbbi, "$(BL)$(P)$(R)AutozeroRBV") {
#field(DESC, "Disable/Enable Autozero")
#3field(DTYP, "K6485")
#field(INP, "#L$(L) A$(A) @11")
#field(ZNAM, "Off")
# field(ONAM, "On")
#field(PINI, "YES")
#}
record(bo, "$(BL)$(P)$(R)Zerocorrect") {
field(DESC, "Disable/Enable Zero correct")
field(DTYP, "K6485")
field(OUT, "#L$(L) A$(A) @13")
field(ZNAM, "Off")
field(ONAM, "On")
#field(FLNK, "$(BL)$(P)$(R)ZerocorrectRBV")
}
#record(bi, "$(BL)$(P)$(R)ZerocorrectRBV") {
#field(DESC, "Disable/enable Zerocurrect")
#field(DTYP, "K6485")
#field(INP, "#L$(L) A$(A) @13")
# field(ZNAM, "off")
# field(ONAM, "on")
#}
########Range#######
record(mbbo, "$(BL)$(P)$(R)Range") {
field(DESC, "Full-scale range")
field(DTYP, "K6485")
field(OUT, "#L$(L) A$(A) @10")
field(ZRVL, "9")
field(ZRST, "2 nA")
field(ONVL, "8")
field(ONST, "20 nA")
field(TWVL, "7")
field(TWST, "200 nA")
field(THVL, "6")
field(THST, "2 uA")
field(FRVL, "5")
field(FRST, "20 uA")
field(FVVL, "4")
field(FVST, "200 uA")
field(SXVL, "3")
field(SXST, "2 mA")
field(SVVL, "2")
field(SVST, "20 mA")
# 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")
# field(ZRVL, "9")
# field(ZRST, "2 nA")
# field(ONVL, "8")
# field(ONST, "20 nA")
# field(TWVL, "7")
# field(TWST, "200 nA")
# field(THVL, "6")
#field(THST, "2 uA")
# field(FRVL, "5")
#field(FRST, "20 uA")
#field(FVVL, "4")
# field(FVST, "200 uA")
# field(SXVL, "3")
# field(SXST, "2 mA")
#3field(SVVL, "2")
#field(SVST, "20 mA")
#field(PINI, "YES")
#}
record(bo, "$(BL)$(P)$(R)Display") {
field(DESC, "disable /enable display")
field(DTYP, "K6485")
# field(FLNK, "$(BL)$(P)$(R)DisplayRBV")
field(OUT, "#L$(L) A$(A) @15")
field(ZNAM, "off")
field(ONAM, "off")
}
#record(bi, "$(BL)$(P)$(R)DisplayRBV") {
#field(DESC, "Disable/enable display")
#field(PINI, "YES")
#field(DTYP, "K6485")
#field(INP, "#L$(L) A$(A) @16")
# field(ZNAM, "off")
#field(ONAM, "on")
#}
#! Further lines contain data used by VisualDCT
#! View(2226,0,1.0)
#! Record("$(BL)$(P)$(R)IDN",20,27,0,0,"$(BL)$(P)$(R)IDN")
#! Record("$(BL)$(P)$(R)RST",260,21,0,0,"$(BL)$(P)$(R)RST")
#! Record("$(BL)$(P)$(R)CLS",500,21,0,0,"$(BL)$(P)$(R)CLS")
#! Record("$(BL)$(P)$(R)GetSTB",740,21,0,0,"$(BL)$(P)$(R)GetSTB")
#! Record("$(BL)$(P)$(R)GetESR",980,21,0,0,"$(BL)$(P)$(R)GetESR")
#! Record("$(BL)$(P)$(R)SetESE",1220,21,0,0,"$(BL)$(P)$(R)SetESE")
#! Record("$(BL)$(P)$(R)GetESE",1460,21,0,0,"$(BL)$(P)$(R)GetESE")
#! Record("$(BL)$(P)$(R)SetSRE",1700,21,0,0,"$(BL)$(P)$(R)SetSRE")
#! Record("$(BL)$(P)$(R)GetSRE",1940,21,0,0,"$(BL)$(P)$(R)GetSRE")
#! Record("$(BL)$(P)$(R)GetOPC",2180,21,0,0,"$(BL)$(P)$(R)GetOPC")
#! Record("$(BL)$(P)$(R)Measure",2420,-1,0,0,"$(BL)$(P)$(R)Measure")
#! Record("$(BL)$(P)$(R)ZeroCheck",2660,19,0,0,"$(BL)$(P)$(R)ZeroCheck")
#! Field("$(BL)$(P)$(R)ZeroCheck.FLNK",16777215,1,"$(BL)$(P)$(R)ZeroCheck.FLNK")
#! Link("$(BL)$(P)$(R)ZeroCheck.FLNK","$(BL)$(P)$(R)ZeroCheckRBV")
#! Record("$(BL)$(P)$(R)ZeroCheckRBV",2900,19,0,1,"$(BL)$(P)$(R)ZeroCheckRBV")
#! Record("$(BL)$(P)$(R)Autozero",3140,19,0,0,"$(BL)$(P)$(R)Autozero")
#! Field("$(BL)$(P)$(R)Autozero.FLNK",16777215,1,"$(BL)$(P)$(R)Autozero.FLNK")
#! Link("$(BL)$(P)$(R)Autozero.FLNK","$(BL)$(P)$(R)AutozeroRBV")
#! Record("$(BL)$(P)$(R)AutozeroRBV",3380,19,0,1,"$(BL)$(P)$(R)AutozeroRBV")
#! Record("$(BL)$(P)$(R)Zerocorrect",3620,19,0,0,"$(BL)$(P)$(R)Zerocorrect")
#! Field("$(BL)$(P)$(R)Zerocorrect.FLNK",16777215,1,"$(BL)$(P)$(R)Zerocorrect.FLNK")
#! Link("$(BL)$(P)$(R)Zerocorrect.FLNK","$(BL)$(P)$(R)ZerocorrectRBV")
#! Record("$(BL)$(P)$(R)ZerocorrectRBV",3860,13,0,1,"$(BL)$(P)$(R)ZerocorrectRBV")
#! Record("$(BL)$(P)$(R)Range",4100,25,0,0,"$(BL)$(P)$(R)Range")
#! Field("$(BL)$(P)$(R)Range.FLNK",16777215,1,"$(BL)$(P)$(R)Range.FLNK")
#! Link("$(BL)$(P)$(R)Range.FLNK","$(BL)$(P)$(R)RangeRBV")
#! Record("$(BL)$(P)$(R)RangeRBV",4340,25,0,1,"$(BL)$(P)$(R)RangeRBV")
#! Record("$(BL)$(P)$(R)Display",4580,19,0,0,"$(BL)$(P)$(R)Display")
#! Field("$(BL)$(P)$(R)Display.FLNK",16777215,0,"$(BL)$(P)$(R)Display.FLNK")
#! Link("$(BL)$(P)$(R)Display.FLNK","$(BL)$(P)$(R)DisplayRBV")
#! Record("$(BL)$(P)$(R)DisplayRBV",20,379,0,1,"$(BL)$(P)$(R)DisplayRBV")
st.cmd
#!../../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:)")
< envPaths
##############################################################################
cd "${TOP}"
## Register all support components
#dbLoadDatabase "dbd/devK6485.dbd"
dbLoadDatabase "dbd/K6485.dbd"
K6485_registerRecordDeviceDriver pdbbase
###############################################################################
# Set up ASYN ports
# drvAsynIPPortConfigure port ipInfo priority noAutoconnect noProcessEos
drvAsynSerialPortConfigure("L0","/dev/ttyUSB0",0,0,0)
#drvAsynSerialPortConfigure("L0","/dev/tty.PL2303-000013FA",0,0,0)
asynSetOption("L0", -1, "baud", "9600")
asynSetOption("L0", -1, "bits", "8")
asynSetOption("L0", -1, "parity", "none")
asynSetOption("L0", -1, "stop", "1")
asynSetOption("L0", -1, "clocal", "Y")
asynSetOption("L0", -1, "crtscts", "N")
###################################################################
#asynSetTraceFile("L0",-1,"")
#asynSetTraceMask("L0",-1,0x09)
#asynSetTraceIOMask("L0",-1,0x2)
###############################################################################
## Load record instances
dbLoadRecords("db/devK6485.db","BL=$(BL),P=$(P),R=1:,L=0,A=-1,NELM=1000,SCAN= 5 second")
dbLoadRecords ("$(ASYN)/db/asynRecord.db","P=$(P),R=asyn,PORT=L0,ADDR=-1,OMAX=0,IMAX=0")
cd "${TOP}/iocBoot/${IOC}"
iocInit
#asynSetTraceMask("L0",-1,0xFF)
## Start any sequence programs
#seq sncxxx,"user=pxbl21-1Host"
and the output for this IOC is -:
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:")
< envPathsand the output for this IOC is -
epicsEnvSet("ARCH","linux-x86_64")
epicsEnvSet("IOC","iocK6485")
epicsEnvSet("TOP","/home/pxbl21-1/programs/epics/bl21/K6485")
epicsEnvSet("ASYN","/home/pxbl21-1/programs/epics/modules/synApps_5_6/support/asyn-4-18")
epicsEnvSet("K6485","/home/pxbl21-1/programs/epics/bl21/K6485")
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
###############################################################################
# Set up ASYN ports
# drvAsynIPPortConfigure port ipInfo priority noAutoconnect noProcessEos
drvAsynSerialPortConfigure("L0","/dev/ttyUSB0",0,0,0)
#drvAsynSerialPortConfigure("L0","/dev/tty.PL2303-000013FA",0,0,0)
asynSetOption("L0", -1, "baud", "9600")
asynSetOption("L0", -1, "bits", "8")
asynSetOption("L0", -1, "parity", "none")
asynSetOption("L0", -1, "stop", "1")
asynSetOption("L0", -1, "clocal", "Y")
asynSetOption("L0", -1, "crtscts", "N")
###################################################################
#asynSetTraceFile("L0",-1,"")
#asynSetTraceMask("L0",-1,0x09)
#asynSetTraceIOMask("L0",-1,0x2)
###############################################################################
## Load record instances
dbLoadRecords("db/devK6485.db","BL=bl21:,P=K6485:,R=1:,L=0,A=-1,NELM=1000,SCAN= 5 second")
Error: syntax error
at or before "}" in file "db/devK6485.db" line 212
dbLoadRecords ("/home/pxbl21-1/programs/epics/modules/synApps_5_6/support/asyn-4-18/db/asynRecord.db","P=K6485:,R=asyn,PORT=L0,ADDR=-1,OMAX=0,IMAX=0")
cd "/home/pxbl21-1/programs/epics/bl21/K6485/iocBoot/iocK6485"
iocInit
Starting iocInit
############################################################################
## EPICS R3.14.12.5 $Date: Tue 2015-03-24 09:57:35 -0500$
## EPICS Base built Sep 15 2016
############################################################################
iocRun: All initialization complete
#asynSetTraceMask("L0",-1,0xFF)
## Start any sequence programs
#seq sncxxx,"user=pxbl21-1Host"
epics> 2016/11/17 12:38:47.150 bl21:K6485:1:Measure read status "" nin 0
2016/11/17 12:38:47.150 bl21:K6485:1:Measure error.
^C
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:")
< envPaths
epicsEnvSet("ARCH","linux-x86_64")
epicsEnvSet("IOC","iocK6485")
epicsEnvSet("TOP","/home/pxbl21-1/programs/epics/bl21/K6485")
epicsEnvSet("ASYN","/home/pxbl21-1/programs/epics/modules/synApps_5_6/support/asyn-4-18")
epicsEnvSet("K6485","/home/pxbl21-1/programs/epics/bl21/K6485")
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
###############################################################################
# Set up ASYN ports
# drvAsynIPPortConfigure port ipInfo priority noAutoconnect noProcessEos
drvAsynSerialPortConfigure("L0","/dev/ttyUSB0",0,0,0)
#drvAsynSerialPortConfigure("L0","/dev/tty.PL2303-000013FA",0,0,0)
asynSetOption("L0", -1, "baud", "9600")
asynSetOption("L0", -1, "bits", "8")
asynSetOption("L0", -1, "parity", "none")
asynSetOption("L0", -1, "stop", "1")
asynSetOption("L0", -1, "clocal", "Y")
asynSetOption("L0", -1, "crtscts", "N")
###################################################################
#asynSetTraceFile("L0",-1,"")
#asynSetTraceMask("L0",-1,0x09)
#asynSetTraceIOMask("L0",-1,0x2)
###############################################################################
## Load record instances
dbLoadRecords("db/devK6485.db","BL=bl21:,P=K6485:,R=1:,L=0,A=-1,NELM=1000,SCAN= 5 second")
dbLoadRecords ("/home/pxbl21-1/programs/epics/modules/synApps_5_6/support/asyn-4-18/db/asynRecord.db","P=K6485:,R=asyn,PORT=L0,ADDR=-1,OMAX=0,IMAX=0")
cd "/home/pxbl21-1/programs/epics/bl21/K6485/iocBoot/iocK6485"
iocInit
Starting iocInit
############################################################################
## EPICS R3.14.12.5 $Date: Tue 2015-03-24 09:57:35 -0500$
## EPICS Base built Sep 15 2016
############################################################################
iocRun: All initialization complete
#asynSetTraceMask("L0",-1,0xFF)
## Start any sequence programs
#seq sncxxx,"user=pxbl21-1Host"
epics> 2016/11/17 12:39:53.190 bl21:K6485:1:Measure read status "" nin 0
2016/11/17 12:39:53.190 bl21:K6485:1:Measure error.
2016/11/17 12:40:03.190 bl21:K6485:1:Measure read status "" nin 0
2016/11/17 12:40:03.190 bl21:K6485:1:Measure error.
2016/11/17 12:40:13.190 bl21:K6485:1:Measure read status "" nin 0
2016/11/17 12:40:13.190 bl21:K6485:1:Measure error.
2016/11/17 12:40:23.190 bl21:K6485:1:Measure read status "" nin 0
2016/11/17 12:40:23.190 bl21:K6485:1:Measure error.
2016/11/17 12:40:33.190 bl21:K6485:1:Measure read status "" nin 0
2016/11/17 12:40:33.190 bl21:K6485:1:Measure error.
2016/11/17 12:40:43.190 bl21:K6485:1:Measure read status "" nin 0
2016/11/17 12:40:43.190 bl21:K6485:1:Measure error.
2016/11/17 12:40:53.190 bl21:K6485:1:Measure read status "" nin 0
2016/11/17 12:40:53.190 bl21:K6485:1:Measure error.
2016/11/17 12:41:03.190 bl21:K6485:1:Measure read status "" nin 0
2016/11/17 12:41:03.190 bl21:K6485:1:Measure error.
2016/11/17 12:41:13.190 bl21:K6485:1:Measure read status "" nin 0
2016/11/17 12:41:13.190 bl21:K6485:1:Measure error.
my device Kethley 6485 displays -111 error which means header separator error ( error related to commands ) but I am not getting any command syntax is wrong.
please help me out.