I think the main problem is that this line:
serialTest_DBD += drvAsynIPPort.dbd
needs to be changed to:
serialTest_DBD += asyn.dbd drvAsynIPPort.dbd
asyn.dbd is where the asynRecord and lots of other things are defined.
Another issue is that it looks like you are trying to use the drvAsynIPPort driver to talk to the
NI GPIB-ENET/1000. It don’t think that will work. Most Ethernet to GPIB devices are VXI-11 compliant, and so can use the EPICS VXI-11 driver. But the NI GPIB-ENET is not VXI-11 compliant, it uses a
National Instruments proprietary protocol.
There was a tech-talk thread that discussed this several years ago. You should look at all of the messages in this thread.
https://epics.anl.gov/tech-talk/2017/msg01127.php
The final message was an offer to contribute a new driver for the National Instruments VISA library, but as far as I know that never happened. We could follow up on that if it is important
for you.
Mark
From:
杨栋亮 <noya269 at 126.com>
Sent: Wednesday, March 4, 2020 7:13 AM
To: Mark Rivers <rivers at cars.uchicago.edu>
Subject: Asyn support for GPIB-ENET
I’m trying to build asyn support on windows-x64 to use with GPIB over Ethernet (NI GPIB-ENET/1000).
I have installed the NI’driver for GPIB-ENET/1000. It works well.
-
Create a new application
mkdir serialTest
cd serialTest
makeBaseApp.pl -t ioc serialTest
makeBaseApp.pl -i -t ioc serialTest -
Add ASYN support.
Edit configure/RELEASE.
ASYN=$(SUPPORT)/asyn-R4-37
Edit serialTestApp/src/Makefile and add two lines.
serialTest_DBD += drvAsynIPPort.dbd
serialTest_LIBS += asyn
Edit serialTestApp/Db/Makefile and add a line:
DB_INSTALLS += $(ASYN)/db/asynRecord.db
Edit iocBoot/iocSerialTest/st.cmd.
#!../../bin/windows-x64/serialTest
< envPaths
cd ${TOP}
## Register all support components
dbLoadDatabase("dbd/serialTest.dbd",0,0)
serialTest_registerRecordDeviceDriver(pdbbase)
## Configure devices
drvAsynIPPortConfigure("L0","192.168.21.98:5000",0,0,0)
## Load record instances
dbLoadRecords("db/asynRecord.db","P=norum:,R=asyn,PORT=L0,ADDR=27,IMAX=100,OMAX=100")
cd ${TOP}/iocBoot/${IOC}
iocInit() -
Build the application (run gmake from the application top
directory).
No errors. -
Start the IOC
cd iocBoot/iocserialTest
../../bin/windows-x64/serialTest st.cmd
The following error occurred:
dbLoadRecords(“db/asynRecord.db”,...............)
Record “norum:asyn” is of unknown type “asyn”
This problem may be because I didn't add the asyn module correctly.
But I don't know how to modify it.
Could you give me any advice?