Working on simplifying what should be shown to the user

This commit is contained in:
2025-03-24 17:41:21 +01:00
parent 2eb9e514fe
commit c6dd421768
6 changed files with 78 additions and 25 deletions

View File

@ -7,6 +7,7 @@ EPICS_VERSIONS=7.0.7
ARCH_FILTER=RHEL% ARCH_FILTER=RHEL%
# additional module dependencies # additional module dependencies
REQUIRED+=calc
REQUIRED+=s7plcFW REQUIRED+=s7plcFW
# General DB files to include in the release # General DB files to include in the release
@ -15,9 +16,9 @@ TEMPLATES += db/writebit.db
TEMPLATES += db/readbit.db TEMPLATES += db/readbit.db
TEMPLATES += db/readstring.db TEMPLATES += db/readstring.db
# Templates for specific devices to include in the release # Specific devices to include in the release
TEMPLATES += db/shutter.db
TEMPLATES += templates/shutter.substitutions TEMPLATES += templates/shutter.substitutions
# Scripts to include in the release
SCRIPTS += scripts/shutter.cmd SCRIPTS += scripts/shutter.cmd
SCRIPTS += sim/shutter_sim.py SCRIPTS += sim/shutter_sim.py

View File

@ -1,10 +1,10 @@
record(bi,"$(PREFIX):$(SPS_REGISTER_NAME):$(BIT_NAME)") record(bi,"$(PREFIX):$(SPS_REGISTER_NAME):$(BIT_NAME)")
{ {
field(DTYP, "S7plcFW") field(DTYP, "S7plcFW")
field(DESC, "$(DESC)")
field(INP, "@$(SPS_REGISTER_NAME)/$(OFFSET) T=BYTE B=$(BIT)") field(INP, "@$(SPS_REGISTER_NAME)/$(OFFSET) T=BYTE B=$(BIT)")
field(PINI, "YES") field(PINI, "YES")
field(SCAN, "I/O Intr") field(SCAN, "I/O Intr")
field(ZNAM, "0") field(ZNAM, "0")
field(ONAM, "1") field(ONAM, "1")
} }

48
db/shutter.db Normal file
View File

@ -0,0 +1,48 @@
record(calc, "$(PREFIX):$(SPS_REGISTER_NAME):MAP-STATUS")
{
field(DESC, "Maps Status Variables to singular status")
field(INPA, "$(PREFIX):$(SPS_REGISTER_NAME):OPEN NPP")
field(INPC, "$(PREFIX):$(SPS_REGISTER_NAME):SHUTTER-READY NPP")
field(INPD, "$(PREFIX):$(SPS_REGISTER_NAME):NOT-LOCKED NPP")
field(INPE, "$(PREFIX):$(SPS_REGISTER_NAME):REMOTE-OKAY NPP")
field(INPF, "$(PREFIX):$(SPS_REGISTER_NAME):PSYS-OK NPP")
field(INPG, "$(PREFIX):$(SPS_REGISTER_NAME):EMERGENCY-STOP-OFF NPP")
field(CALC, "(C=0||D=0||E=0||F=0||G=0)?2:A=1")
field(SCAN, ".1 second")
field(FLNK, "$(PREFIX):$(SPS_REGISTER_NAME):STATUS PP")
}
record(mbbi, "$(PREFIX):$(SPS_REGISTER_NAME):STATUS")
{
field(DESC, "Simplified Status of Shutter")
field(INP, "$(PREFIX):$(SPS_REGISTER_NAME):MAP-STATUS NPP")
field(ZRVL, "0")
field(ZRST, "Closed")
field(ONVL, "1")
field(ONST, "Open")
field(TWVL, "2")
field(TWST, "Error")
# Should never happen
field(THVL, "3")
field(THST, "Invalid")
field(FLNK, "$(PREFIX):$(SPS_REGISTER_NAME):STATUS-Msg PP")
}
record(scalcout, "$(PREFIX):$(SPS_REGISTER_NAME):STATUS-Msg")
{
field(DESC, "Status Message")
field(INPA, "$(PREFIX):$(SPS_REGISTER_NAME):OPEN NPP")
field(INPC, "$(PREFIX):$(SPS_REGISTER_NAME):SHUTTER-READY NPP")
field(INPD, "$(PREFIX):$(SPS_REGISTER_NAME):NOT-LOCKED NPP")
field(INPE, "$(PREFIX):$(SPS_REGISTER_NAME):REMOTE-OKAY NPP")
field(INPF, "$(PREFIX):$(SPS_REGISTER_NAME):PSYS-OK NPP")
field(INPG, "$(PREFIX):$(SPS_REGISTER_NAME):EMERGENCY-STOP-OFF NPP")
field(INAA, "$(PREFIX):$(SPS_REGISTER_NAME):OPEN-Msg NPP")
field(INBB, "$(PREFIX):$(SPS_REGISTER_NAME):REMOTE-Msg NPP")
field(INCC, "$(PREFIX):$(SPS_REGISTER_NAME):SHUTTER-READY-Msg NPP")
field(INDD, "$(PREFIX):$(SPS_REGISTER_NAME):EMERGENCY-STOP-Msg NPP")
field(INEE, "$(PREFIX):$(SPS_REGISTER_NAME):BLOCKED-Msg NPP")
field(INFF, "$(PREFIX):$(SPS_REGISTER_NAME):BLOCKED-REASON-Msg NPP")
field(INGG, "$(PREFIX):$(SPS_REGISTER_NAME):PSYS-OK-Msg NPP")
field(CALC, '(C=0||D=0||F=0)?"inv":G=0?DD:E=0?BB:AA')
}

View File

@ -1,6 +1,7 @@
record(bo, "$(PREFIX):$(SPS_REGISTER_NAME):$(BIT_NAME)") record(bo, "$(PREFIX):$(SPS_REGISTER_NAME):$(BIT_NAME)")
{ {
field(DTYP, "S7plcFW") field(DTYP, "S7plcFW")
field(DESC, "$(DESC)")
field(OUT, "@$(SPS_REGISTER_NAME)/$(OFFSET) T=BYTE B=$(BIT)") field(OUT, "@$(SPS_REGISTER_NAME)/$(OFFSET) T=BYTE B=$(BIT)")
field(ZNAM, "0") field(ZNAM, "0")
field(ONAM, "1") field(ONAM, "1")

View File

@ -11,7 +11,7 @@ require s7plcFW
# # out IO Interrupt Delay (if 0 then only reacts on a change) # # out IO Interrupt Delay (if 0 then only reacts on a change)
# ) # )
epicsEnvSet("SPS_REGISTER_NAME", "SPS-$(FETCH_DB)") epicsEnvSet("SPS_REGISTER_NAME", "SPS-SHUTTER")
epicsEnvSet("SPS_FETCH_SIZE", "152") epicsEnvSet("SPS_FETCH_SIZE", "152")
# Seems that 1 doesn't work # Seems that 1 doesn't work
epicsEnvSet("SPS_WRITE_SIZE", "2") epicsEnvSet("SPS_WRITE_SIZE", "2")
@ -28,7 +28,10 @@ $(SET_SIM_MODE=#) $(SET_SIM_MODE) sleep 3
s7plcFWConfigure("$(SPS_REGISTER_NAME)", "$(SPS_IP)", "$(FETCH_PORT=2000),1,$(FETCH_DB),0,$(SPS_FETCH_SIZE)", "$(WRITE_PORT=2001),1,$(WRITE_DB=$(FETCH_DB)),0,$(SPS_WRITE_SIZE)", "$(SPS_ENDIANNESS=1)", "$(SPS_RECEIVE_TIMEOUT=1000)", "$(SPS_RECEIVE_DELAY=200)", "0") s7plcFWConfigure("$(SPS_REGISTER_NAME)", "$(SPS_IP)", "$(FETCH_PORT=2000),1,$(FETCH_DB),0,$(SPS_FETCH_SIZE)", "$(WRITE_PORT=2001),1,$(WRITE_DB=$(FETCH_DB)),0,$(SPS_WRITE_SIZE)", "$(SPS_ENDIANNESS=1)", "$(SPS_RECEIVE_TIMEOUT=1000)", "$(SPS_RECEIVE_DELAY=200)", "0")
# Provides Connection Status PVs # Provides Connection Status PVs
# dbLoadRecords("$(sinqSPS_DB)/sps_status.db", "PREFIX=$(PREFIX), SPS_REGISTER_NAME=$(SPS_REGISTER_NAME)") dbLoadRecords("$(sinqSPS_DB)/sps_status.db", "PREFIX=$(PREFIX), SPS_REGISTER_NAME=$(SPS_REGISTER_NAME)")
# Shutter PVs # Shutter PVs
dbLoadTemplate("$(sinqSPS_DB)/shutter.substitutions", "PREFIX=$(PREFIX), SPS_REGISTER_NAME=$(SPS_REGISTER_NAME)") dbLoadTemplate("$(sinqSPS_DB)/shutter.substitutions", "PREFIX=$(PREFIX), SPS_REGISTER_NAME=$(SPS_REGISTER_NAME)")
# Additional Mapping PVs
dbLoadRecords("$(sinqSPS_DB)/shutter.db", "PREFIX=$(PREFIX), SPS_REGISTER_NAME=$(SPS_REGISTER_NAME)")

View File

@ -1,22 +1,22 @@
file "$(sinqSPS_DB)/writebit.db" file "$(sinqSPS_DB)/writebit.db"
{ {
pattern pattern
{OFFSET, BIT, BIT_NAME } {OFFSET, BIT, BIT_NAME , DESC }
{0 , 0 , "OPEN-SHUTTER" } {0 , 0 , "OPEN-SHUTTER" , "Opens the Shutter" }
{0 , 1 , "CLOSE-SHUTTER" } {0 , 1 , "CLOSE-SHUTTER", "Closes the Shutter"}
} }
file "$(sinqSPS_DB)/readbit.db" file "$(sinqSPS_DB)/readbit.db"
{ {
pattern pattern
{OFFSET, BIT, BIT_NAME } {OFFSET, BIT, BIT_NAME , DESC}
{1 , 0 , "PSYS-OK" } {1 , 0 , "PSYS-OK" , "" }
{1 , 1 , "SHUTTER-READY" } {1 , 1 , "SHUTTER-READY" , "" }
{1 , 2 , "EMERGENCY-STOP-OFF"} {1 , 2 , "EMERGENCY-STOP-OFF", "" }
{1 , 3 , "NOT-LOCKED" } {1 , 3 , "NOT-LOCKED" , "" }
{1 , 4 , "CLOSED" } {1 , 4 , "CLOSED" , "" }
{1 , 5 , "OPEN" } {1 , 5 , "OPEN" , "" }
{1 , 6 , "REMOTE-OKAY" } {1 , 6 , "REMOTE-OKAY" , "" }
} }
# The way that the strings are currently implemented in the SPS, the first two # The way that the strings are currently implemented in the SPS, the first two
@ -26,12 +26,12 @@ file "$(sinqSPS_DB)/readbit.db"
file "$(sinqSPS_DB)/readstring.db" file "$(sinqSPS_DB)/readstring.db"
{ {
pattern pattern
{OFFSET, LENGTH, STRING_NAME } {OFFSET, LENGTH, STRING_NAME }
{6 , 11 , "PSYS-OK-TXT" } {6 , 11 , "PSYS-OK" }
{20 , 17 , "SHUTTER-READY-TXT" } {20 , 17 , "SHUTTER-READY" }
{40 , 17 , "EMERGENCY-STOP-TXT" } {40 , 17 , "EMERGENCY-STOP" }
{60 , 19 , "BLOCKED-TXT" } {60 , 19 , "BLOCKED" }
{82 , 24 , "BLOCKED-REASON-TXT" } {82 , 24 , "BLOCKED-REASON" }
{108 , 14 , "OPEN-TXT" } {108 , 14 , "OPEN" }
{124 , 27 , "REMOTE-TXT" } {124 , 27 , "REMOTE" }
} }