Presentation is loading. Please wait.

Presentation is loading. Please wait.

SNS Integrated Control System Running IOC Core on Windows and Linux Dave Thompson Wim Blokland Ernest Williams.

Similar presentations


Presentation on theme: "SNS Integrated Control System Running IOC Core on Windows and Linux Dave Thompson Wim Blokland Ernest Williams."— Presentation transcript:

1 SNS Integrated Control System Running IOC Core on Windows and Linux Dave Thompson Wim Blokland Ernest Williams

2 SNS Integrated Control System Windows l IOC Core-Channel Access is a more stable combination than an Active X server or any user program poorly using the CA API. l Using IOC Core allows use of Epics DB tools and better configuration control of PVs exported to Channel Access. l IOC core does not seem to add much overhead to the overall application. l New version supports bi-directional PVs for bo, longout, and ao.

3 SNS Integrated Control System The concept: Shared Memory DLL IOC (database, CA) ReadData() WaitForInterrupt() GetIndexByName() WriteData() SetInterrupt() CreateDBEntry() LabView Application (wire scanner, BPM,etc) DBD and DBD files Channel Access Shared Memory Interface VIs LabVIEW Application (Wire Scanner, BPM,etc)

4 SNS Integrated Control System Implementation With LabView l LabView and IOC core link to a shared memory DLL. l Data flows in both directions through the DLL. l The DLL passes data through a FIFO to decouple CPU allocation between the LabView process and the IOC Core process, this reduces data loss. l Shared memory passes both data and “processing”. l Time stamps are passed through the shared memory with processing requests. l LabView starts IOC core and passes the startup file name on the command line.

5 SNS Integrated Control System Database Issues With Shared Memory l LabView and the IOC Core database expect to work from the same shared memory layout. l The shared memory device support routines create the database in shared memory from parameters in the.db file. »Shared memory PVs have name, type and size attributes. »Registry entries set shared memory allocation and ring depths. l The LabView application binds to PVs in the shared memory database and does not attempt to create them. l The Epics database can be created by LabView based on Vis that interact with the shared memory, Epics database tools, or by the SNS database RDB tools.

6 SNS Integrated Control System Linux l At SNS we have a few applications running on R3.14.1 IOC core on a Linux server. l NO device or record support implemented except standard “Soft Channel”. l Running some sequencer programs in the IOC program. l Mostly used as a PV server and a place to put calc records and or alarms for summaries. l We want to have to have the ability to run etherIP and the serial devices.

7 SNS Integrated Control System Applications On the Linux IOC Core l Timing Scope application »Reads PVS out of the timing system and calculates gate waveforms relative to other waveforms from controls and diagnostics. »Allows the operators to visualize the timing.

8 SNS Integrated Control System Applications l Status PVs from IOCs and server based processes. »These PVs are driven by periodic tasks that write to the PV via channel access. OPI and archive servers monitor the PVS. »Health of IOCS and archive tasks are collected »Ping tasks monitor UP status of both IOCs and servers. l No device support, all updates are made by CA clients.

9 SNS Integrated Control System The setup Terminal Server PvServer Application On Linux Box User at IOC Shell epics> epics> dbpr Global:ArchiveEngine1:Status ASG: DESC: DISA: 0 DISP: 0 DISV: 1 NAME: Global:ArchiveEngine1:Status RBV: 0 RVAL: 0 SEVR: NO_ALARM STAT: NO_ALARM TPRO: 0 VAL: 0 CA Client Application On Linux Box Many PVs from accelerator

10 SNS Integrated Control System Startup and operation of the IOC Stage 1: New lines in inittab # Epics pvServer service on port ttyS1 S1:2345:respawn:/etc/epics/su-tty ttyS1 Stage 2: su-tty, redirect IO and set user #/bin/sh (stty sane su - thompson -c /home/thompson/pvServer/startPvServer )>/dev/$1 2>/dev/$1 </dev/$1 We run the IOC as a service in inittab, like a getty. Inittab keeps it running at all times. Startup goes in three stages

11 l Stage 3: The startup script: »Sets up the EPICS environment »Sets PATH and LD_LIBRARY_PATH »Starts caRepeater »Starts the application in $TOP »Cleans up lingering threads after an exit »Depends on init to reboot the ‘IOC’ cd $TOP caRepeater >/dev/null 2>&1 </dev/null& pvServer iocBoot/iocpvServer/st.cmd # Kill all threads of the pvServer & exit for i in `/bin/ps h o pid -C pvServer` ; do kill -s SIGKILL $i done

12 SNS Integrated Control System Problems and Plans l Could not get auto save and restore to work, problem related to mutex locking? l Want to implement IOC name to RTDL reset code lookup in a sequencer running here (part of the timing system). l Plans to port to 3.14.2 next week.


Download ppt "SNS Integrated Control System Running IOC Core on Windows and Linux Dave Thompson Wim Blokland Ernest Williams."

Similar presentations


Ads by Google