Description

This is a PythonSoftIOC that can read DCS magnet values allocated in Memcached memory, decode them, and use them as process variables (PVs) for EPICS.

Then it send commands to the DCS DEVIL process.
Target release2.4.1
Target releaseApril, 2024
Task List

Document status

Designer
Developers
Projecthttps://baltig.infn.it/lnf-da-control/softioc-devil-wrapper


Project schema



#[...]
  iocs:
  - name: "mag-wrapper"
    asset: "https://confluence.infn.it/display/TESTBEAM/SoftIOC+DEVIL+Wrapper"
    charturl: 'https://baltig.infn.it/epics-containers/ioc-chart.git'
    image: baltig.infn.it:4567/epics-containers/epics-py-base
    iocprefix: "DAFNE"
    start: "/epics/ioc/config/start.sh" ## if your mynewioc has a start.sh this line must be kept
    gitinit: true

#[...]


#!/bin/bash
script_dir=$(dirname "$0")
cd $script_dir
echo "Starting Mag-Wrapper : $EPICS_CA_ADDR_LIST"
pip install -r ./scripts/requirements.txt
python ./scripts/main.py -x DAFNE -c btf-config.json


OPI Magnets Test on CS-Studio Phoebus

OPI 2.4 - Read only from Memcached 


OPI 2.5 - Complete PySoftIOC (2.5.1) for Test on BTF - DEPRECATED



$ python main.py -x DAFNE -c btf_qua_magnets.json
INFO: PVXS QSRV2 is loaded, permitted, and ENABLED.
[2024-05-28 10:10:29,741] INFO: Start SoftIOC to DEVIL - Version: 2.5.1
[2024-05-28 10:10:29,742] INFO: Memcached Server: 192.168.198.20
[2024-05-28 10:10:29,742] INFO: Memcached Port: 11211
[2024-05-28 10:10:29,783] INFO: Read configuration file!
[2024-05-28 10:10:29,783] INFO: Configuration file : btf_qua_magnets.json
[2024-05-28 10:10:29,784] INFO: Build prefix
>>>>> DAFNE:BTF:QUATM001:current
>>>>> DAFNE:BTF:QUATM001:mode
>>>>> DAFNE:BTF:QUATM001:polarity
>>>>> DAFNE:BTF:QUATM002:current
>>>>> DAFNE:BTF:QUATM002:mode
>>>>> DAFNE:BTF:QUATM002:polarity
>>>>> DAFNE:BTF:QUATM003:current
>>>>> DAFNE:BTF:QUATM003:mode
>>>>> DAFNE:BTF:QUATM003:polarity
[...]
Starting iocInit
############################################################################
## EPICS 7.0.7.0
## Rev. 7.0.7.99.0.2
## Rev. Date 7.0.7.99.0.2
############################################################################
iocRun: All initialization complete
[2024-05-28 10:10:30,314] INFO: Define CONTROL & COMMAND main functions.
[2024-05-28 10:10:30,314] INFO: Launch CONTROL & COMMAND threads.
######################################################################
## Command help : 
## softioc.dbl() - Prints the names of PV records in the database!
## softioc.scanpiol() - Prints all records in the I/O event scan lists.
######################################################################
### softioc.dbl() ###
DAFNE:BTF:QUATB001:current_rb
DAFNE:BTF:QUATB001:mode_rb
DAFNE:BTF:QUATB001:polarity_rb
DAFNE:BTF:QUATB002:current_rb
DAFNE:BTF:QUATB002:mode_rb
DAFNE:BTF:QUATB002:polarity_rb
DAFNE:BTF:QUATB003:current_rb
DAFNE:BTF:QUATB003:mode_rb
DAFNE:BTF:QUATB003:polarity_rb
[...]
DAFNE:COUNTER						# Service PV
DAFNE:BTF:QUATB001:current		   
DAFNE:BTF:QUATB002:current		   
DAFNE:BTF:QUATB003:current		    
[...]
DAFNE:MC_ERROR					    # Service PV
DAFNE:DEBUG:SERVICE:COMMAND		    # Service PV
DAFNE:INFO_VERSION				    # Service PV
DAFNE:START_TIME				    # Service PV
DAFNE:BTF:QUATB001:mode
DAFNE:BTF:QUATB001:polarity
DAFNE:BTF:QUATB002:mode
DAFNE:BTF:QUATB002:polarity
DAFNE:BTF:QUATB003:mode
DAFNE:BTF:QUATB003:polarity
[...]

Python 3.12.1 | packaged by Anaconda, Inc. | (main, Jan 19 2024, 09:52:31) [Clang 14.0.6 ] on darwin
Type "help", "copyright", "credits" or "license" for more information.
# (InteractiveConsole) for EPICS SoftIOC
>>> 

[...]
>>>
############################################################
# Counter Processed command :  [1] [2024-05-21 16:55:12]
# DCS Element :  QUATB003
# Parameter :  OPER
# DEVIL IP :  192.168.198.122
# Port :  6342
# DCS Command : MODE
############################################################
# String to send Command :  MODE QUATB003 OPER
############################################################
#
#  >>> Command Exectuted :  MODE QUATB003 OPER
#
############################################################
# Response for ECHO :  
############################################################
>>>
[...]



Table alignment of all magnets for the BTF (Class/Protocol/Type) (1)

QUADIPCORWrappedDevilVirtual (Name)Virtual (IP)port
 (prefs)
Init/control tagclassDriver/ProtocolTypeIP
QUATM001

x647vldantedev015192.168.198.1156343newOCEM_3.2MG1

E642

01010001

MOXA 192.168.192.40 porta n. 13 - addr: 0x2

(catenella SER15001)



CHHTM001x639vldantedev020192.168.198.1206345newOCEM_3.4MG1

CAENels Easy Driver

00000006

 192.168.191.230



CVVTM001x639vldantedev020

192.168.198.120

6345newOCEM_3.4MG1CAENels Easy Driver

00000006

 192.168.191.231

QUATM002

x649vldantedev022192.168.198.1226346
MG1

SYS8X00

00010100

 



CHHTM002x639vldantedev020192.168.198.1206345newOCEM_3.4MG1

CAENels Easy Driver

00000006

 192.168.191.232



CVVTM002x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006

 192.168.191.233

QUATM003

x649vldantedev022192.168.198.1226349
MG1SYS8X00

00010100

 



CHHTM003x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006

 192.168.191.234



CVVTM003x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006

 192.168.191.235

QUATM004

x647vldantedev015192.168.198.1156343newOCEM_3.2MG1

E642

01010001

MOXA 192.168.192.40 porta n. 13 - addr: 0x1

(catenella SER15001)


DHPTB101
x654vldantedev034192.168.198.1346343
MG1SYS8X00

00010100

 MOXA 192.168.192.40 porta n. 6 - addr: 0x1

(catenella SER23013)

QUATB101

x647vldantedev015192.168.198.1156343newOCEM_3.2MG1

E642

01010001

MOXA 192.168.192.40 porta n. 13 - addr: 0x3

(catenella SER15001)

QUATB102

x647vldantedev015192.168.198.1156343newOCEM_3.2MG1

E642

01010001

MOXA 192.168.192.40 porta n. 13 - addr: 0x0

(catenella SER15001)


DHSTB001
x672vldantedev035192.168.198.1356346newOCEM_3.2MG1E642

00010101

MOXA 192.168.192.30 porta n. 3 - addr: 0x4

(catenella SER23020)

QUATB001

x650vldantedev022192.168.198.1226347
MG1E642

01010001

MOXA 192.168.192.40 porta n. 12 - addr: 0x9

(catenella SER15004)



CHHTB001x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006

 192.168.191.236



CVVTB001x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006

 192.168.191.237

QUATB002

x659vldantedev025192.168.198.1256345newOCEM_3.2MG1

E642

01010001

 



CHHTB002x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006

 192.168.191.238



CVVTB002x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006

 192.168.191.239


DHPTB102
x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

03000007

 192.168.190.157



CHHTB101x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006

 192.168.191.240



CVVTB101x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006

 192.168.191.241

QUATB003

x628 (2)vldantedev022192.168.198.1226342
MG1

E642

01010001

 

MOXA 192.168.192.32 porta n. 7 (1-8) - add: 0x5

(catenella SER18004)

QUATB004

x628 (2)vldantedev022192.168.198.1226342
MG1

E642

01010001

 

MOXA 192.168.192.32 porta n. 7 (1-8) - add: 0x4

(catenella SER18004)


DHSTB002
x628 (2)vldantedev022192.168.198.1226342
MG1

E642

01010001

MOXA 192.168.192.32 porta n. 7 (1-8) - add: 0x6

(catenella SER18004)

 


DHRTB101
x649vldantedev022192.168.198.1226346
MG1SYS8X00

00010100

 


DHRTB102
x663 (3)vldantedev033192.168.198.1336345
MG1Modbus

00020002

 

QUATB201

x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

01010007

 192.168.190.151

QUATB202

x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

01010007

 192.168.190.152



CHHTB201x666vldantedev023192.168.198.1236345
MG1CAENels Easy Driver

00000006

 192.168.191.177



CVVTB201x666vldantedev023192.168.198.1236346
MG1CAENels Easy Driver

00000006

 192.168.191.178


DHSTB201
x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

02010007

 192.168.190.158

QUATB203

x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

01010007

 192.168.190.153

QUATB204

x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

01010007

 192.168.190.154


DHSTB202
x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

02010007

192.168.190.159


QUATB205

x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

01010007

 192.168.190.155

QUATB206

x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

01010007

 192.168.190.156


DHSTB203
x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

02010007

 192.168.190.160


References 

(a) https://confluence.infn.it/spaces/LDCG/pages/44991576/MG1

(b) Moxa serial lines


Note:

(2) DEVIL628(3) DEVIL663 

#DHSA*001 (ACC)

#QUAA*001 (ACC)

#QUAA*002 (ACC)

#QUAA*003 (ACC)

#SXPA*001 (ACC)

#SXPA*002 (ACC)

#DHSTB002 (1)

#QUATB003 (1)

#QUATB004 (1)

#SPLP2001

#SPLP1002

#DHRTB999

#DHRTB997

#SPLE2001

#SPLE1002

#DHRTB998

#DHRTB102 (1)