Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents



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
Task List

Jira
serverINFN Jira Software
columnIdsissuekey,summary,issuetype,created,updated,duedate,assignee,reporter,priority,status,resolution
columnskey,summary,type,created,updated,due,assignee,reporter,priority,status,resolution
maximumIssues20
jqlQuerylabels = BTF-Soft-IOC-DEVIL-Wrapper
serverId8087fedc-8816-3706-9e66-78f987f39e0c

Document status

Status
titleDRAFT

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


Project schema

...



Code Block
languageyml
titleEPIK8S-BTF/deploy/values.yaml
#[...]
  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

#[...]

...

Code Block
languageactionscript3
titleEPIK8S-BTF/config/iocs/mag-wrapper/start.sh
#!/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 (not send commands to DEVIL)Memcached 


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



Code Block
languagebash
titleRun Python SoftIOC
$ 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
>>> 

Code Block
languageactionscript3
titleSend Command - Shell Output
[...]
>>>
############################################################
# 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)

QUADIPCORWrapped

To Wrap

DevilVirtual (Name)Virtual (IP)port
 (prefs)
Init/control tagclass
NotexMG1

/u2/dcs/db/DBFiles_3/CPU_LINUX_eth

Driver/ProtocolType
QUATM001

x647vldantedev015192.168.198.1156343newOCEM_3.2MG1

E642

01010001



CHHTM001x639vldantedev020192.168.198.1206345newOCEM_3.4MG1

CAENels Easy Driver

00000006



CVVTM001x639vldantedev020

192.168.198.120

6345newOCEM_3.4MG1CAENels Easy Driver

00000006

QUATM002

x649vldantedev022192.168.198.1226346
MG1

SYS8X00

00010100



CHHTM002x639vldantedev020192.168.198.1206345newOCEM_3.4MG1

CAENels Easy Driver

00000006



CVVTM002x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006

QUATM003

x649vldantedev022192.168.198.1226349
MG1SYS8X00

00010100



CHHTM003x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006



CVVTM003x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006

QUATM004

x647vldantedev015192.168.198.1156343newOCEM_3.2MG1

E642

01010001


DHPTB101
x654vldantedev034192.168.198.1346343
MG1SYS8X00

00010100

QUATB101

x647vldantedev015192.168.198.1156343newOCEM_3.2MG1

E642

01010001

QUATB102

x647vldantedev015192.168.198.1156343newOCEM_3.2MG1

E642

01010001


DHSTB001
x672vldantedev035192.168.198.1356346newOCEM_3.2MG1E642

00010101

QUATB001

x650vldantedev022192.168.198.1226347
MG1E642

01010001



CHHTB001x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006



CVVTB001x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006

QUATB002

x659vldantedev025192.168.198.1256345newOCEM_3.2MG1

E642

01010001



CHHTB002x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006



CVVTB002x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006


DHPTB102
x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

03000007



CHHTB101x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006



CVVTB101x639vldantedev020192.168.198.1206345newOCEM_3.4MG1CAENels Easy Driver

00000006

QUATB003

x628 (2)vldantedev022192.168.198.1226342
MG1

E642

01010001

QUATB004

x628 (2)vldantedev022192.168.198.1226342
MG1

E642

01010001


DHSTB002
x628 (2)vldantedev022192.168.198.1226342
MG1

E642

01010001


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

QUATB202

x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

01010007



CHHTB201x666vldantedev023192.168.198.1236345
MG1CAENels Easy Driver

00000006



CVVTB201x666vldantedev023192.168.198.1236346
MG1CAENels Easy Driver

00000006


DHSTB201
x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

02010007

QUATB203
CHHTM001639MG1

grep "CVVTM002" *

CVVTM001639MG1x

/u2/dcs/db/DBFiles_3/CPU_LINUX_eth

CHHTM002MG1

grep "CVVTM002" *

CVVTM002xCHHTM003CVVTM003xDHPTB101654MG1xxDHSTB001672MG1xCHHTB001CVVTB001xCHHTB002CVVTB002DHPTB102CHHTT008CVVTT008xDHSTB002DHRTB101DHRTB102xxCHHTB201CVVTB201DHSTB201


x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

01010007

QUATB204

x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

01010007


DHSTB202
x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

02010007

QUATB205

x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

01010007

QUATB206

x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

01010007


DHSTB203
x671vldantedev024192.168.198.1246345
MG1Modbus TCP EEI

02010007


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)