Merge branch 'master' of https://git.ipfn.tecnico.ulisboa.pt/r/ISTTOK
This commit is contained in:
@@ -114,15 +114,16 @@ Process Value in this IOC Server:
|
||||
|
||||
### Central Control/Vacuum Node
|
||||
- Vacuum Sensors
|
||||
- Pffeifer rotatory vacuum pump
|
||||
- Pffeifer rotatory vacuum pumpa (*RPump1*)
|
||||
- Edwards electro valve
|
||||
- Seiko Seiki turbomolecular pump and control unit
|
||||
- Main State Machine
|
||||
- Seiko Seiki turbomolecular pump and control unit (model SCU-400)
|
||||
- Main State Machine, see [source](https://git.ipfn.tecnico.ulisboa.pt/blob/ISTTOK.git/master/epics%2Fiocs%2FISTTOKrpi%2FISTTOKrpiApp%2Fsrc%2FIsttokSeqExec.stt)
|
||||
|
||||
#### Hardware Platform
|
||||
1. A Raspberry Pi 3, running a linux distribution..
|
||||
1. A Raspberry Pi running a linux distribution..
|
||||
* Raspberry Pi 2 Model B Rev 1.1 hardware. `# cat /proc/cpuinfo | grep Model`
|
||||
* Has a USB/RS485 port for monitoring pressure (to be connected soon)
|
||||
2. Two Interface Boards, Velleman Model [k8000](https://www.velleman.eu/products/view/?id=9383)..
|
||||
2. Two Interface Boards, Velleman Model [k8000](https://www.velleman.eu/products/view/?id=9383)..
|
||||
* connected to raspberry Pi through I2C interface;
|
||||
* 8 isolated output connected to the relays (6 relays installed for the rotatory control)
|
||||
* 4 isolated outputs connected to SEIKO unit controller
|
||||
@@ -136,15 +137,16 @@ Process Value in this IOC Server:
|
||||
* IP addr:192.168.1.110 ( ISTTOK private network)
|
||||
* NTP/timedatectl time conected to IPFN Gps NTP/PPS server IP:10.136.227.237 193.136.136.129
|
||||
(this is mandatory, Rpi does not have a Real Time clock see https://www.raspberrypi.org/forums/viewtopic.php?t=178763)
|
||||
* EPICS v. base-3.15.5 (in /usr/local/epics) including modules:
|
||||
* synApps_5_8
|
||||
* asyn-4-26
|
||||
* seq-2-2-1
|
||||
* autosave-5-6-1
|
||||
* IOC installed in '/opt/epics/iocs/'
|
||||
* EPICS v7 base-7.0 from epics [github](https://github.com/epics-base)
|
||||
* (in /home/pi/Apps/epics7/epics-base) including modules:
|
||||
* asynDriver [asyn](https://github.com/epics-modules/asyn)
|
||||
* [StreamDevice](https://paulscherrerinstitute.github.io/StreamDevice)
|
||||
* State Notation Language and Sequence v.2.2 [seq](https://www-csr.bessy.de/control/SoftDist/sequencer)
|
||||
* [autosave](https://github.com/epics-modules/autosave)
|
||||
* IOC installed in '/home/pi/ISTTOK/epics/iocs/ISTTOKrpi'
|
||||
* Running in `screen deamon` (see `/etc/rc.local`)
|
||||
|
||||
For installation EPICS in Rpi see this [link](prjemian.github.io/epicspi)
|
||||
For installation EPICS in Linux/raspian see this [link](https://docs.epics-controls.org/projects/how-tos/en/latest/getting-started/installation.html)
|
||||
|
||||
#### Process Variables
|
||||
Process Variables in this IOC Server:
|
||||
@@ -161,6 +163,8 @@ Process Variables in this IOC Server:
|
||||
|ISTTOK:central:COUNTDOWN | mbbi | no |
|
||||
|ISTTOK:central:PULSE-NUMBER | longout | yes |
|
||||
|ISTTOK:central:OPSTATE |longout | yes |
|
||||
|ISTTOK:central:UPS-OnBattery | bo | no |
|
||||
|ISTTOK:central:UPS-Shutdown | bo | no |
|
||||
|ISTTOK:central:CurrentTime | stringin | no |
|
||||
|ISTTOK:central:TraceMessage | stringout | yes |
|
||||
|ISTTOK:central:LogMessage | stringout | yes |
|
||||
@@ -180,7 +184,7 @@ Process Variables in this IOC Server:
|
||||
|ISTTOK:central:TMPump1-NormalOperation | bi | 7 |
|
||||
----------
|
||||
|
||||
* Connected to PCF8574 I2C Address = 57
|
||||
* Connected to PCF8574 I2C Address = 57 (Bottom Valleman board)
|
||||
|
||||
|PV Name | PV Type | Bit |
|
||||
|:----------|-------|---:|
|
||||
@@ -192,7 +196,7 @@ Process Variables in this IOC Server:
|
||||
|ISTTOK:central:TTSystem-tzero| bi | 7 |
|
||||
----------
|
||||
|
||||
* Connected to PCF8574 Address = 60 (Top Valleman)
|
||||
* Connected to PCF8574 Address = 60 (Top Valleman Board)
|
||||
|
||||
|PV Name | PV Type | Bit | Relay #/(NO/NC)|
|
||||
|:----------|-------|---:|
|
||||
@@ -205,7 +209,7 @@ Process Variables in this IOC Server:
|
||||
----------
|
||||
|
||||
|
||||
* Connected to TDA8444 DAC @ address 0x20=d32 (Bottom Valleman)
|
||||
* Connected to TDA8444 DAC @ address 0x20=d32 (Bottom Valleman Board)
|
||||
|
||||
|PV Name |PV Type |Archive|
|
||||
|:----------|-------|---:|
|
||||
@@ -227,18 +231,28 @@ Process Variables in this IOC Server:
|
||||
| ISTTOK:central:Shot-TorPSCurrentImage"| ai | ch3 | no |
|
||||
----------
|
||||
|
||||
* Connected to RS485 Bus (Not yet)
|
||||
* Connected to RS485 Bus (Using USB */dev/ttyUSB0*)
|
||||
|
||||
|PV Name |PV Type |Archive|
|
||||
|:----------|-------|---:|
|
||||
|ISTTOK:central:RPump1-Pressure | ai | yes |
|
||||
|ISTTOK:central:RPump2-Pressure | ai | yes |
|
||||
|ISTTOK:central:TMPump1-PressureAdmission | ai | yes |
|
||||
|ISTTOK:central:VVessel-Pressure | ai | yes |
|
||||
|PV Name |PV Type |Archive| RS485 request command|
|
||||
|:----------|-------|---:|---|
|
||||
|ISTTOK:central:VVessel-Pressure | ai | yes | out "0010074002=?106"|
|
||||
|ISTTOK:central:RPump1-Pressure | ai | yes | out "0020074002=?107" |
|
||||
|ISTTOK:central:RPump2-Pressure (Disabled) | ai | yes | |
|
||||
|ISTTOK:central:TMPump1-PressureAdmission | ai | yes | out "0030074002=?108" |
|
||||
----------
|
||||
|
||||
* Connected to [Seeeduino](https://wiki.seeedstudio.com/Grove-4-Channel_SPDT_Relay) Grove - 4-Channel
|
||||
SPDT Relay Address = 17
|
||||
|
||||
### Vacuum Node (temporary)
|
||||
|PV Name | PV Type | Bit | Relay NO/NC|
|
||||
|:----------|-------|---:|
|
||||
|ISTTOK:central:GasIS-Valves| bo | 0 | NO |
|
||||
|ISTTOK:central:PrimPneuBreaker| bo | 1 | NO |
|
||||
|ISTTOK:central:CapBank-Discharge| bo | 2 | NO |
|
||||
|ISTTOK:central:Clean-TorPneuBreaker| bo | 3 | NO |
|
||||
|
||||
|
||||
### Vacuum Node (**Not used, backup server only**)
|
||||
- Vacuum Pfeiffer Sensors (RS485)
|
||||
|
||||
#### Hardware Platform
|
||||
@@ -252,10 +266,10 @@ Process Variables in this IOC Server:
|
||||
|
||||
|PV Name |PV Type |Archive|
|
||||
|:----------|-------|---:|
|
||||
| ISTTOK:vacuum:RPump1-Pressure | ai | yes |
|
||||
|ISTTOK:vacuum:RPump2-Pressure | ai | yes |
|
||||
|ISTTOK:vacuum:TMPump1-PressureAdmission | ai | yes |
|
||||
|ISTTOK:vacuum:VVessel-Pressure | ai | yes |
|
||||
| ISTTOK:vacuum:RPump1-Pressure (not used)| ai | yes |
|
||||
|ISTTOK:vacuum:RPump2-Pressure (not used) | ai | yes |
|
||||
|ISTTOK:vacuum:TMPump1-PressureAdmission (not used)| ai | yes |
|
||||
|ISTTOK:vacuum:VVessel-Pressure (not used) | ai | yes |
|
||||
----------
|
||||
|
||||
#### Software Platform
|
||||
@@ -290,7 +304,7 @@ openjdk-8-jre linux package
|
||||
|
||||
### EPICS Channel Access Configuration
|
||||
```
|
||||
export EPICS_CA_ADDR_LIST="192.168.1.110 192.168.1.120 192.168.1.152"
|
||||
export EPICS_CA_ADDR_LIST="192.168.1.110 192.168.1.152"
|
||||
export EPICS_CA_AUTO_ADDR_LIST="NO"
|
||||
```
|
||||
|
||||
|
||||
@@ -1,38 +1,63 @@
|
||||
# https://tecadmin.net/install-apache-mod-wsgi-on-ubuntu-16-04-xenial
|
||||
# Include in /etc/apache2/conf-available/mod-wsgi.conf :
|
||||
# WSGIScriptAlias /isttok /var/www/html/wsgi_isttok_status.py
|
||||
# and
|
||||
# systemctl restart apache2
|
||||
#!/usr/bin/env python3
|
||||
# -*- coding: utf-8 -*-
|
||||
# if you change this script "touch" it to reload by apache
|
||||
# e.g touch /var/www/html/wsgi_isttok_status.py
|
||||
"""
|
||||
Created on December 8 16:34:35 2019
|
||||
https://tecadmin.net/install-apache-mod-wsgi-on-ubuntu-16-04-xenial
|
||||
|
||||
Install:
|
||||
Include in /etc/apache2/conf-available/mod-wsgi.conf :
|
||||
WSGIScriptAlias /isttok /var/www/html/wsgi_isttok_status.py
|
||||
and do:
|
||||
systemctl restart apache2
|
||||
|
||||
@author: bernardo carvalho@IPFN
|
||||
"""
|
||||
#
|
||||
#import epics
|
||||
from epics import caget, caput, cainfo
|
||||
import os
|
||||
|
||||
#os.environ['EPICS_CA_ADDR_LIST'] = 'localhost 192.168.1.110 192.168.1.120'
|
||||
os.environ['EPICS_CA_ADDR_LIST'] = 'localhost 192.168.1.110'
|
||||
os.environ['EPICS_CA_AUTO_ADDR_LIST'] = 'NO'
|
||||
|
||||
def application(environ,start_response):
|
||||
status = '200 OK'
|
||||
RPump1press = caget('ISTTOK:central:RPump1-Pressure')
|
||||
RPump2press = caget('ISTTOK:central:RPump2-Pressure')
|
||||
TMPump1press = caget('ISTTOK:central:TMPump1-PressureAdmission')
|
||||
VVesselpress = caget('ISTTOK:central:VVessel-Pressure')
|
||||
rpiCurrentTime = caget('ISTTOK:central:CurrentTime')
|
||||
opState = caget('ISTTOK:central:OPSTATE.VAL')
|
||||
pulseNum = caget('ISTTOK:central:PULSE-NUMBER')
|
||||
RPump1press = caget('ISTTOK:central:RPump1-Pressure', as_string=True)
|
||||
# RPump2press = caget('ISTTOK:central:RPump2-Pressure')
|
||||
TMPump1press = caget('ISTTOK:central:TMPump1-PressureAdmission', as_string=True)
|
||||
VVesselpress = caget('ISTTOK:central:VVessel-Pressure', as_string=True)
|
||||
# RPump1press = caget('ISTTOK:vacuum:RPump1-Pressure')
|
||||
# RPump2press = caget('ISTTOK:vacuum:RPump2-Pressure')
|
||||
# TMPump1press = caget('ISTTOK:vacuum:TMPump1-PressureAdmission')
|
||||
# VVesselpress = caget('ISTTOK:vacuum:VVessel-Pressure')
|
||||
rpiCurrentTime = caget('ISTTOK:central:CurrentTime', as_string=True)
|
||||
opState = caget('ISTTOK:central:OPSTATE.VAL', as_string=True)
|
||||
pulseNum = caget('ISTTOK:central:PULSE-NUMBER', as_string=True)
|
||||
OnBattery = caget('ISTTOK:central:UPS-OnBattery', as_string=True)
|
||||
# cainfo not working
|
||||
RPump1Info = cainfo("ISTTOK:central:RPump1-Pressure", print_out=False)
|
||||
html = '<html>\n' \
|
||||
'<body>\n' \
|
||||
' <h1> ISTTOK Present Condition </h1> \n'
|
||||
html += '<p>RPump1-Pressure: ' + str(RPump1press) + ' mBar </p>'
|
||||
html += '<p>RPump2-Pressure: ' + str(RPump2press) + ' mBar </p>'
|
||||
html += '<p>TMPump1-PressureAdmission: ' + str(TMPump1press) + ' mBar </p>'
|
||||
html += '<p>VVessel-Pressure: ' + str(VVesselpress) + ' mBar </p>'
|
||||
html += '<p>OPSTATE: ' + str(opState) + ' </p>'
|
||||
html += '<p>PULSE-NUMBER: ' + str(pulseNum) + ' </p>'
|
||||
html += '<p>Rpi CurrentTime: ' + str(rpiCurrentTime) + ' </p>'
|
||||
'<head> <meta charset="UTF-8"/> <title>ISTTOK Status page</title>' \
|
||||
'<meta http-equiv="refresh" content="5"> </head>' \
|
||||
'<body>\n <h1> ISTTOK Present Condition </h1> \n'
|
||||
# html += '<p>RPump1-Pressure: ' + str(RPump1press) + ' mBar </p>'
|
||||
html += '<p>RPump1-Pressure: ' + RPump1press + ' mBar </p>'
|
||||
# html += '<p>RPump2-Pressure: ' + str(RPump2press) + ' mBar </p>'
|
||||
html += '<p>TMPump1-PressureAdmission: ' + TMPump1press + ' mBar </p>'
|
||||
html += '<p>VVessel-Pressure: ' + VVesselpress + ' mBar </p>'
|
||||
html += '<p>OPSTATE: ' + opState + ', UPS-OnBattery: '+ OnBattery+ '</p>'
|
||||
html += '<p>Note: you can try to login to rpi-isttok machine and do: '
|
||||
html += '<pre>caput ISTTOK:central:OPREQ START</pre> </p>'
|
||||
html += '<p>PULSE-NUMBER: ' + pulseNum + ' </p>'
|
||||
html += '<p>Rpi CurrentTime: ' + rpiCurrentTime + ' </p>'
|
||||
html += '<pre> ' + RPump1Info + '</pre>'
|
||||
html += '</body>\n' \
|
||||
'</html>\n'
|
||||
response_header = [('Content-type','text/html')]
|
||||
response_header = [('Content-type','text/html'),
|
||||
('Content-Length', str(len(html)))]
|
||||
start_response(status,response_header)
|
||||
html = bytes(html, encoding= 'utf-8')
|
||||
return [html]
|
||||
return [html.encode('UTF-8')]
|
||||
# html = bytes(html, encoding= 'utf-8')
|
||||
# return [html]
|
||||
|
||||
@@ -27,7 +27,8 @@ record(bo, "$(P)$(R)TMPump1-ControllerOn" ) {
|
||||
field(ZNAM, "Off" )
|
||||
field(ONAM, "Pulse" )
|
||||
field(HIGH, "2.5")
|
||||
field(FLNK, "$(P)$(R)TMPump1-ControllerOnInv" )
|
||||
# Disabled until further notice
|
||||
# field(FLNK, "$(P)$(R)TMPump1-ControllerOnInv" )
|
||||
field(VAL,"0")
|
||||
}
|
||||
record(calcout, "$(P)$(R)TMPump1-ControllerOnInv") {
|
||||
@@ -43,7 +44,8 @@ record(bo, "$(P)$(R)TMPump1-ControllerOff" ) {
|
||||
field(ZNAM, "Off" )
|
||||
field(ONAM, "Pulse" )
|
||||
field(HIGH, "2.5")
|
||||
field(FLNK, "$(P)$(R)TMPump1-ControllerOffInv" )
|
||||
# Disabled until further notice
|
||||
# field(FLNK, "$(P)$(R)TMPump1-ControllerOffInv" )
|
||||
field(VAL,"0")
|
||||
}
|
||||
|
||||
@@ -321,17 +323,6 @@ record(bo, "$(P)$(R)Clean-TorContactor" ) {
|
||||
###############
|
||||
###############
|
||||
|
||||
############################
|
||||
# TOR CLEAN BREAKER ON/OFF #
|
||||
############################
|
||||
record(bo, "$(P)$(R)Clean-TorPneuBreaker" ) {
|
||||
## field(DESC," Interruptor de ar comprimido do transformador para a fonte de campo toroidal das descargas de limpeza (500 A)")
|
||||
field( OUT, "$(P)$(R)PCF8574:61:REGISTER.B0 PP" )
|
||||
field( ZNAM, "On" )
|
||||
field( ONAM, "Off" )
|
||||
field(VAL,"1")
|
||||
}
|
||||
|
||||
record(bo, "$(P)$(R)Shot-TorPSDisable" ) {
|
||||
# field(DESC," É desligado na emergência e em qualquer estado que não seja Process ou Wait Shot.")
|
||||
field( OUT, "$(P)$(R)PCF8574:61:REGISTER.B1 PP" )
|
||||
@@ -381,17 +372,6 @@ record(bo, "$(P)$(R)Clean-PrimContactor" ) {
|
||||
field(VAL,"1")
|
||||
}
|
||||
|
||||
####################################
|
||||
### PRIMARY CLEAN BREAKER ON/OFF ###
|
||||
####################################
|
||||
record(bo, "$(P)$(R)Clean-PrimPneuBreaker"){
|
||||
#record(bo, "$(P)$(R)PrimaryCleanBreakerOnOff"){
|
||||
field( DESC, "Primary Cleaning OnOff")
|
||||
field( OUT, "$(P)$(R)PCF8574:61:REGISTER.B5 PP" )
|
||||
field( ZNAM, "On")
|
||||
field( ONAM, "Off")
|
||||
field(VAL,"1")
|
||||
}
|
||||
|
||||
##################################
|
||||
# GIS VALVES ON/OFF #
|
||||
@@ -399,23 +379,12 @@ record(bo, "$(P)$(R)Clean-PrimPneuBreaker"){
|
||||
record(bo, "$(P)$(R)GasIS-Valves" ) {
|
||||
# field(DESC," 2 válvulas pneumáticas de corte do sistema de injecção de H/D/Ne/He no TOK, 24V out = deixa passar")
|
||||
# record(bo, "$(P)$(R)GISValvesOnOff" ) {
|
||||
field( OUT, "$(P)$(R)PCF8574:61:REGISTER.B6 PP" )
|
||||
field( ZNAM, "On" )
|
||||
field( ONAM, "Off" )
|
||||
field(VAL,"1")
|
||||
field( OUT, "$(P)$(R)SEEED4RELAY:17:REGISTER.B0 PP" )
|
||||
field( ZNAM, "OFF" )
|
||||
field( ONAM, "ON" )
|
||||
field(VAL,"0")
|
||||
}
|
||||
|
||||
##########################################
|
||||
# CAP BANK DISCHARGE ON/OFF #
|
||||
##########################################
|
||||
record(bo, "$(P)$(R)CapBank-Discharge" ) {
|
||||
field(DESC," Liga o circuito de descarga do ELCO ")
|
||||
# record(bo, "$(P)$(R)CapBankDischargeOnOff" ) {
|
||||
field(OUT, "$(P)$(R)PCF8574:61:REGISTER.B7 PP" )
|
||||
field(ZNAM, "On" )
|
||||
field(ONAM, "Off" )
|
||||
field(VAL,"1")
|
||||
}
|
||||
|
||||
#record(bo,"$(P)$(R)Primary-PressureCondition"){
|
||||
# field(ZNAM, "OFF" )
|
||||
@@ -442,3 +411,57 @@ record(bo, "$(P)$(R)TMPump1-ManualValve"){
|
||||
field( ZNAM, "Closed")
|
||||
field( ONAM, "Open")
|
||||
}
|
||||
|
||||
### SEEED 4 RELAY BOARD
|
||||
#
|
||||
#
|
||||
|
||||
##################################
|
||||
# GIS VALVES ON/OFF #
|
||||
##################################
|
||||
record(bo, "$(P)$(R)GasIS-Valves" ) {
|
||||
# field(DESC," 2 válvulas pneumáticas de corte do sistema de injecção de H/D/Ne/He no TOK, 24V out = deixa passar")
|
||||
# record(bo, "$(P)$(R)GISValvesOnOff" ) {
|
||||
field( OUT, "$(P)$(R)SEEED4RELAY:17:REGISTER.B0 PP" )
|
||||
field( ZNAM, "OFF" )
|
||||
field( ONAM, "ON" )
|
||||
field(VAL,"0")
|
||||
field(OSV,"MINOR")
|
||||
}
|
||||
|
||||
####################################
|
||||
### PRIMARY CLEAN BREAKER ON/OFF ###
|
||||
####################################
|
||||
record(bo, "$(P)$(R)Clean-PrimPneuBreaker"){
|
||||
#record(bo, "$(P)$(R)PrimaryCleanBreakerOnOff"){
|
||||
field( DESC, "Primary Cleaning OnOff")
|
||||
field( OUT, "$(P)$(R)SEEED4RELAY:17:REGISTER.B1 PP" )
|
||||
field( ZNAM, "OFF" )
|
||||
field( ONAM, "ON" )
|
||||
field(VAL,"0")
|
||||
field(OSV,"MAJOR")
|
||||
}
|
||||
##########################################
|
||||
# CAP BANK DISCHARGE ON/OFF #
|
||||
##########################################
|
||||
record(bo, "$(P)$(R)CapBank-Discharge" ) {
|
||||
field(DESC,"Liga o circuito de descarga do ELCO ")
|
||||
field( OUT,"$(P)$(R)SEEED4RELAY:17:REGISTER.B2 PP" )
|
||||
field( ZNAM,"OFF" )
|
||||
field( ONAM,"ON" )
|
||||
field( VAL,"0")
|
||||
field(OSV,"MINOR")
|
||||
}
|
||||
############################
|
||||
# TOR CLEAN BREAKER ON/OFF #
|
||||
############################
|
||||
record(bo, "$(P)$(R)Clean-TorPneuBreaker" ) {
|
||||
## field(DESC," Interruptor de ar comprimido do transformador para a fonte de campo toroidal das descargas de limpeza (500 A)")
|
||||
field(OUT,"$(P)$(R)SEEED4RELAY:17:REGISTER.B3 PP" )
|
||||
field(ZNAM,"OFF" )
|
||||
field(ONAM, "ON" )
|
||||
field(VAL,"0")
|
||||
field(OSV,"MAJOR")
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -94,6 +94,8 @@ record(ai, "$(P)$(R)Shot-TorPSCurrentImage" ) {
|
||||
field(DTYP, "Raw Soft Channel" )
|
||||
field(INP, "$(P)$(R)PCF8591:72:BYTE2_CH3 PP NMS")
|
||||
field(SCAN, ".2 second")
|
||||
#Scan Disable Input Link Value
|
||||
field(DISA, "1")
|
||||
field(ASLO, "39.215686275" )
|
||||
field(AOFF, "0.0" )
|
||||
field(EGU, "A" )
|
||||
|
||||
@@ -1,60 +1,66 @@
|
||||
# vim: sta:et:sw=4:ts=4:sts=4
|
||||
# 8/5/2021 Only sensor 2 is working. Running with dspIC
|
||||
# 20/9/2021 sensors 1,2,3 are working. Running with dspIC
|
||||
# 20/9/2021 sensors 1,2,3 are working. Running with tty USB
|
||||
record (longin, "$(P)$(R)P001:M")
|
||||
{
|
||||
field (DESC, "getPressure001 $(bus)")
|
||||
field (DTYP, "stream")
|
||||
field (INP, "@pfeiffer.proto getPressure001($(P)$(R)P001:E) $(bus)")
|
||||
# field (SCAN, "I/O Intr")
|
||||
field (SCAN, "1 second")
|
||||
field (FLNK, "$(P)$(R)TMPump1-PressureAdmission")
|
||||
field (DESC, "getPressure001 $(bus)")
|
||||
field (DTYP, "stream")
|
||||
field (INP, "@pfeiffer.proto getPressure001($(P)$(R)P001:E) $(bus)")
|
||||
# field (SCAN, "I/O Intr")
|
||||
field (SCAN, "1 second")
|
||||
field(PHAS, "1")
|
||||
field (FLNK, "$(P)$(R)VVessel-Pressure")
|
||||
}
|
||||
record (longin, "$(P)$(R)P001:E")
|
||||
{
|
||||
field (DESC, "Pressure001 exponent $(bus)")
|
||||
field (DESC, "Pressure001 exponent $(bus)")
|
||||
}
|
||||
record (calc, "$(P)$(R)TMPump1-PressureAdmission")
|
||||
record (calc, "$(P)$(R)VVessel-Pressure")
|
||||
{
|
||||
field(DESC, "ISTTOK:central:TMPump1-PressureAdmission")
|
||||
field(INPA, "$(P)$(R)P001:M")
|
||||
field(INPB, "$(P)$(R)P001:E")
|
||||
field(CALC, "(A*0.001)* 10.0**(B-20)")
|
||||
field(PREC, "3")
|
||||
field(EGU, "mBar")
|
||||
field(HIHI,"1.0e-2")
|
||||
field(HIGH,"1.0e-3")
|
||||
field (DESC, "ISTTOK:central:VVessel-Pressure")
|
||||
# Maximize Status and Severity, MSS propagate all alarms
|
||||
field(INPA, "$(P)$(R)P001:M MSS")
|
||||
field(INPB, "$(P)$(R)P001:E")
|
||||
field(CALC, "(A*0.001)* 10.0**(B-20)")
|
||||
field(PREC, "3")
|
||||
field(EGU, "mBar")
|
||||
field(HIHI,"1.0e-2")
|
||||
field(HIGH,"1.0e-3")
|
||||
field(LOW,"1.0e-9")
|
||||
field(LOLO,"0.5e-9")
|
||||
# field(LOW, "20.0")
|
||||
# field(LOLO,"0.0")
|
||||
field(HHSV,"MAJOR")
|
||||
field(HSV, "MINOR")
|
||||
# field(LSV, "MINOR")
|
||||
# field(LLSV,"MAJOR")
|
||||
field(LSV, "MINOR")
|
||||
field(LLSV,"MAJOR")
|
||||
}
|
||||
# out "0020074002=?107";
|
||||
record (longin, "$(P)$(R)P002:M")
|
||||
{
|
||||
field (DESC, "getPressure002 $(bus)")
|
||||
field (DTYP, "stream")
|
||||
field (INP, "@pfeiffer.proto getPressure002($(P)$(R)P002:E) $(bus)")
|
||||
# field (SCAN, "I/O Intr")
|
||||
field (SCAN, "1 second")
|
||||
field (FLNK, "$(P)$(R)RPump1-Pressure")
|
||||
field (DESC, "getPressure002 $(bus)")
|
||||
field (DTYP, "stream")
|
||||
field (INP, "@pfeiffer.proto getPressure002($(P)$(R)P002:E) $(bus)")
|
||||
# field (SCAN, "I/O Intr")
|
||||
field (SCAN, "1 second")
|
||||
field(PHAS, "0")
|
||||
field (FLNK, "$(P)$(R)RPump1-Pressure")
|
||||
}
|
||||
record (longin, "$(P)$(R)P002:E")
|
||||
{
|
||||
field (DESC, "Pressure002 exponent $(bus)")
|
||||
field (DESC, "Pressure002 exponent $(bus)")
|
||||
}
|
||||
record (calc, "$(P)$(R)RPump1-Pressure")
|
||||
{
|
||||
field (DESC, "ISTTOK:central:RPump1-Pressure")
|
||||
field(INPA, "$(P)$(R)P002:M")
|
||||
field(INPB, "$(P)$(R)P002:E")
|
||||
field(CALC, "(A*0.001)*10.0**(B-20)")
|
||||
field(PREC, "3")
|
||||
field(EGU, "mBar")
|
||||
field(HIHI,"1.0e-1")
|
||||
field(HIGH,"5.0e-2")
|
||||
field (DESC, "ISTTOK:central:RPump1-Pressure")
|
||||
field(INPA, "$(P)$(R)P002:M MSS")
|
||||
field(INPB, "$(P)$(R)P002:E")
|
||||
field(CALC, "(A*0.001)*10.0**(B-20)")
|
||||
field(PREC, "3")
|
||||
field(EGU, "mBar")
|
||||
field(HIHI,"1.0e-1")
|
||||
field(HIGH,"5.0e-2")
|
||||
# field(LOW, "20.0")
|
||||
# field(LOLO,"0.0")
|
||||
field(HHSV,"MAJOR")
|
||||
@@ -66,56 +72,62 @@ record (calc, "$(P)$(R)RPump1-Pressure")
|
||||
# out "0030074002=?108";
|
||||
record (longin, "$(P)$(R)P003:M")
|
||||
{
|
||||
field (DESC, "getPressure003 Mantissa $(bus)")
|
||||
field (DTYP, "stream")
|
||||
field (INP, "@pfeiffer.proto getPressure003($(P)$(R)P003:E) $(bus)")
|
||||
field (SCAN, "1 second")
|
||||
# field (SCAN, "I/O Intr")
|
||||
field (FLNK, "$(P)$(R)VVessel-Pressure")
|
||||
field (DESC, "getPressure003 Mantissa $(bus)")
|
||||
field (DTYP, "stream")
|
||||
field (INP, "@pfeiffer.proto getPressure003($(P)$(R)P003:E) $(bus)")
|
||||
field (SCAN, "1 second")
|
||||
field(PHAS, "2")
|
||||
# field (SCAN, "I/O Intr")
|
||||
field (FLNK, "$(P)$(R)TMPump1-PressureAdmission")
|
||||
}
|
||||
|
||||
record (longin, "$(P)$(R)P003:E")
|
||||
{
|
||||
field (DESC, "Pressure003 Exponent $(bus)")
|
||||
field (DESC, "Pressure003 Exponent $(bus)")
|
||||
}
|
||||
record (calc, "$(P)$(R)VVessel-Pressure")
|
||||
|
||||
record (calc, "$(P)$(R)TMPump1-PressureAdmission")
|
||||
{
|
||||
field (DESC, "ISTTOK:central:VVessel-Pressure")
|
||||
field(INPA, "$(P)$(R)P003:M")
|
||||
field(INPB, "$(P)$(R)P003:E")
|
||||
field(CALC, "(A*0.001)*10.0**(B-20)")
|
||||
field(PREC, "3")
|
||||
field(EGU, "mBar")
|
||||
field(HIHI,"1.0e-1")
|
||||
field(HIGH,"1.0e-2")
|
||||
field(HHSV,"MAJOR")
|
||||
field(HSV, "MINOR")
|
||||
field(DESC, "ISTTOK:central:TMPump1-PressureAdmission")
|
||||
field(INPA, "$(P)$(R)P003:M MSS")
|
||||
field(INPB, "$(P)$(R)P003:E")
|
||||
field(CALC, "(A*0.001)*10.0**(B-20)")
|
||||
field(PREC, "3")
|
||||
field(EGU, "mBar")
|
||||
field(HIHI,"1.0e-1")
|
||||
field(HIGH,"1.0e-2")
|
||||
field(LOW,"1.0e-9")
|
||||
field(LOLO,"0.5e-9")
|
||||
field(HHSV,"MAJOR")
|
||||
field(HSV, "MINOR")
|
||||
field(LSV, "MINOR")
|
||||
field(LLSV,"MAJOR")
|
||||
}
|
||||
|
||||
# out "0040074002=?109";
|
||||
# NOT connected 26/10/2021
|
||||
record (longin, "$(P)$(R)P004:M")
|
||||
{
|
||||
field (DESC, "getPressure004 Mantissa $(bus)")
|
||||
field (DTYP, "stream")
|
||||
field (INP, "@pfeiffer.proto getPressure004($(P)$(R)P004:E) $(bus)")
|
||||
# field (SCAN, "1 second")
|
||||
# field (SCAN, "I/O Intr")
|
||||
field (FLNK, "$(P)$(R)RPump2-Pressure")
|
||||
field (DESC, "getPressure004 Mantissa $(bus)")
|
||||
field (DTYP, "stream")
|
||||
field (INP, "@pfeiffer.proto getPressure004($(P)$(R)P004:E) $(bus)")
|
||||
# field (SCAN, "1 second")
|
||||
# field (SCAN, "I/O Intr")
|
||||
field (FLNK, "$(P)$(R)RPump2-Pressure")
|
||||
}
|
||||
record (longin, "$(P)$(R)P004:E")
|
||||
{
|
||||
field (DESC, "Pressure004 Exponent $(bus)")
|
||||
field (DESC, "Pressure004 Exponent $(bus)")
|
||||
}
|
||||
|
||||
record (calc, "$(P)$(R)RPump2-Pressure")
|
||||
{
|
||||
field(DESC, "ISTTOK:central:RPump2-Pressure")
|
||||
field(INPA, "$(P)$(R)P004:M")
|
||||
field(INPB, "$(P)$(R)P004:E")
|
||||
field(CALC, "(A*0.001)* 10.0**(B-20)")
|
||||
field(PREC, "3")
|
||||
field(EGU, "mBar")
|
||||
field(DESC, "ISTTOK:central:RPump2-Pressure")
|
||||
field(INPA, "$(P)$(R)P004:M MSS")
|
||||
field(INPB, "$(P)$(R)P004:E")
|
||||
field(CALC, "(A*0.001)* 10.0**(B-20)")
|
||||
field(PREC, "3")
|
||||
field(EGU, "mBar")
|
||||
# field(HIHI,"1.0e-1")
|
||||
# field(HIGH,"5.0e-3")
|
||||
# field(LOW, "20.0")
|
||||
@@ -127,9 +139,9 @@ record (calc, "$(P)$(R)RPump2-Pressure")
|
||||
}
|
||||
|
||||
record(stringout,"$(P)$(R)RS485Debug") {
|
||||
field(DESC, "")
|
||||
field(DTYP, "stream")
|
||||
field(OUT, "@pfeiffer.proto debug $(bus)")
|
||||
field(VAL,"")
|
||||
field(DESC, "")
|
||||
field(DTYP, "stream")
|
||||
field(OUT, "@pfeiffer.proto debug $(bus)")
|
||||
field(VAL,"")
|
||||
}
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
# vim: sta:et:sw=4:ts=4:sts=4
|
||||
#
|
||||
# Project : ISTTOK slow Control
|
||||
#
|
||||
@@ -13,257 +14,279 @@
|
||||
##
|
||||
|
||||
record(mbbi, "$(P)$(R)OPSTATE") {
|
||||
field(DESC, "Multiple Pulse Sequence State")
|
||||
field(ZRVL, "0")
|
||||
field(ONVL, "1")
|
||||
field(TWVL, "2")
|
||||
field(THVL, "3")
|
||||
field(FRVL, "4")
|
||||
field(FVVL, "5")
|
||||
field(SXVL, "6")
|
||||
field(SVVL, "7")
|
||||
field(ZRST, "Stopped")
|
||||
field(ONST, "Starting")
|
||||
field(TWST, "Idle")
|
||||
field(THST, "Clean")
|
||||
field(FRST, "WaitShot")
|
||||
field(FVST, "Stopping")
|
||||
field(SXST, "Emergency")
|
||||
field(SVST, "UPSEmergency")
|
||||
field(VAL, "0")
|
||||
field(DESC, "Multiple Pulse Sequence State")
|
||||
field(ZRVL, "0")
|
||||
field(ONVL, "1")
|
||||
field(TWVL, "2")
|
||||
field(THVL, "3")
|
||||
field(FRVL, "4")
|
||||
field(FVVL, "5")
|
||||
field(SXVL, "6")
|
||||
field(SVVL, "7")
|
||||
field(ZRST, "Stopped")
|
||||
field(ONST, "Starting")
|
||||
field(TWST, "Idle")
|
||||
field(THST, "Clean")
|
||||
field(FRST, "WaitShot")
|
||||
field(FVST, "Stopping")
|
||||
field(SXST, "Emergency")
|
||||
field(SVST, "UPSEmergency")
|
||||
field(VAL, "0")
|
||||
field(FLNK, "$(P)$(R)OPCALCSTATE")
|
||||
#field(PINI, "YES")
|
||||
}
|
||||
record(mbbo, "$(P)$(R)LASTOPSTATE") {
|
||||
info(autosaveFields, "VAL")
|
||||
field(DESC, "Pulse Sequence Last Saved State")
|
||||
field(ZRVL, "0")
|
||||
field(ONVL, "1")
|
||||
field(TWVL, "2")
|
||||
field(THVL, "3")
|
||||
field(FRVL, "4")
|
||||
field(FVVL, "5")
|
||||
field(SXVL, "6")
|
||||
field(SVVL, "7")
|
||||
field(ZRST, "Stopped")
|
||||
field(ONST, "Starting")
|
||||
field(TWST, "Idle")
|
||||
field(THST, "Clean")
|
||||
field(FRST, "WaitShot")
|
||||
field(FVST, "Stopping")
|
||||
field(SXST, "Emergency")
|
||||
field(SVST, "UPSEmergency")
|
||||
# field(VAL, "0")
|
||||
info(autosaveFields, "VAL")
|
||||
field(DESC, "Pulse Sequence Last Saved State")
|
||||
field(ZRVL, "0")
|
||||
field(ONVL, "1")
|
||||
field(TWVL, "2")
|
||||
field(THVL, "3")
|
||||
field(FRVL, "4")
|
||||
field(FVVL, "5")
|
||||
field(SXVL, "6")
|
||||
field(SVVL, "7")
|
||||
field(ZRST, "Stopped")
|
||||
field(ONST, "Starting")
|
||||
field(TWST, "Idle")
|
||||
field(THST, "Clean")
|
||||
field(FRST, "WaitShot")
|
||||
field(FVST, "Stopping")
|
||||
field(SXST, "Emergency")
|
||||
field(SVST, "UPSEmergency")
|
||||
field(PINI, "YES")
|
||||
# field(VAL, "0")
|
||||
}
|
||||
|
||||
# record for bit leds
|
||||
record(calc, "$(P)$(R)OPCALCSTATE") {
|
||||
field(DESC, "Pulse Calculated State")
|
||||
field(CALC,"2^A")
|
||||
field(SCAN,"1 second")
|
||||
field(INPA,"$(P)$(R)OPSTATE.VAL PP NMS")
|
||||
field(DESC, "Pulse Calculated State")
|
||||
field(CALC,"2^A")
|
||||
#field(SCAN,"1 second")
|
||||
field(INPA,"$(P)$(R)OPSTATE.VAL NPP NMS")
|
||||
}
|
||||
|
||||
record(calc, "$(P)$(R)STARTCALCSTATE") {
|
||||
field(DESC, "Start Calculated State")
|
||||
field(CALC,"2^A")
|
||||
field(SCAN,"1 second")
|
||||
field(INPA,"$(P)$(R)STARTINGSTATE.VAL PP NMS")
|
||||
field(DESC, "Start Calculated State")
|
||||
field(CALC,"2^A")
|
||||
field(SCAN,"1 second")
|
||||
field(INPA,"$(P)$(R)STARTINGSTATE.VAL PP NMS")
|
||||
}
|
||||
|
||||
record(calc, "$(P)$(R)STOPPINGCALCSTATE") {
|
||||
field(DESC, "Stop Calculated State")
|
||||
field(CALC,"2^A")
|
||||
field(SCAN,"1 second")
|
||||
field(INPA,"$(P)$(R)STOPPINGSTATE.VAL PP NMS")
|
||||
field(DESC, "Stop Calculated State")
|
||||
field(CALC,"2^A")
|
||||
field(SCAN,"1 second")
|
||||
field(INPA,"$(P)$(R)STOPPINGSTATE.VAL PP NMS")
|
||||
}
|
||||
|
||||
record(calc, "$(P)$(R)CLEANCALCSTATE") {
|
||||
field(DESC, "Clean Automatic Calculated State")
|
||||
field(CALC,"(2^(A+1))-1")
|
||||
field(SCAN,"1 second")
|
||||
field(INPA,"$(P)$(R)CLEANINGSTATE.VAL PP NMS")
|
||||
field(DESC, "Clean Automatic Calculated State")
|
||||
field(CALC,"(2^(A+1))-1")
|
||||
field(SCAN,"1 second")
|
||||
field(INPA,"$(P)$(R)CLEANINGSTATE.VAL PP NMS")
|
||||
}
|
||||
|
||||
|
||||
record(calc, "$(P)$(R)WSHOTCALCSTATE") {
|
||||
field(DESC, "WaitShot Calculated State")
|
||||
field(CALC,"2^A")
|
||||
field(SCAN,"1 second")
|
||||
field(INPA,"$(P)$(R)WSHOTINGSTATE.VAL PP NMS")
|
||||
field(DESC, "WaitShot Calculated State")
|
||||
field(CALC,"2^A")
|
||||
field(SCAN,"1 second")
|
||||
field(INPA,"$(P)$(R)WSHOTINGSTATE.VAL PP NMS")
|
||||
}
|
||||
|
||||
#record(ai, "$(P)$(R)Temperature_0") {
|
||||
# field(DESC, "ISTTOK Temperature 0 Calculated")
|
||||
# field(EGU, "C")
|
||||
# field(SCAN,"1 second")
|
||||
# field(DESC, "ISTTOK Temperature 0 Calculated")
|
||||
# field(EGU, "C")
|
||||
# field(SCAN,"1 second")
|
||||
#}
|
||||
|
||||
record(bo, "$(P)$(R)UPS-OnBattery") {
|
||||
info(autosaveFields, "VAL STAT")
|
||||
field(DESC, "Main APC UPS On Battery status")
|
||||
field(VAL, "0")
|
||||
field(ZNAM, "OFF")
|
||||
field(ONAM, "ON")
|
||||
info(autosaveFields, "VAL STAT")
|
||||
field(DESC, "Main APC UPS On Battery status")
|
||||
field(VAL, "0")
|
||||
field(PINI, "YES")
|
||||
field(ZNAM, "OFF")
|
||||
field(ONAM, "ON")
|
||||
field(OSV, "MAJOR")
|
||||
}
|
||||
|
||||
record(bo, "$(P)$(R)UPS-Shutdown") {
|
||||
info(autosaveFields, "VAL STAT")
|
||||
field(DESC, "Main APC UPS Shutdown request")
|
||||
# field(VAL, "0")
|
||||
field(ZNAM, "OFF")
|
||||
field(ONAM, "ON")
|
||||
# info(autosaveFields, "VAL STAT")
|
||||
field(DESC, "Main APC UPS Shutdown request")
|
||||
field(VAL, "0")
|
||||
field(ZNAM, "OFF")
|
||||
field(ONAM, "ON")
|
||||
field(OSV, "MAJOR")
|
||||
field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(bo, "$(P)$(R)OPREQ") {
|
||||
info(autosaveFields, "VAL")
|
||||
field(DESC, "Pulse Sequence Start/Stop")
|
||||
# field(VAL, "0")
|
||||
field(ZNAM, "STOP")
|
||||
field(ONAM, "START")
|
||||
info(autosaveFields, "VAL")
|
||||
field(DESC, "Pulse Sequence Start/Stop")
|
||||
# field(VAL, "0")
|
||||
field(PINI, "YES")
|
||||
field(ZNAM, "STOP")
|
||||
field(ONAM, "START")
|
||||
}
|
||||
|
||||
record(bo, "$(P)$(R)CLEANINGMANMODE") {
|
||||
info(autosaveFields, "VAL")
|
||||
field(DESC, "Cleaning Manual/Auto")
|
||||
info(autosaveFields, "VAL")
|
||||
# field(VAL, "1")
|
||||
field(ZNAM, "M")
|
||||
field(ONAM, "A")
|
||||
info(autosaveFields, "VAL")
|
||||
field(DESC, "Cleaning Manual/Auto")
|
||||
info(autosaveFields, "VAL")
|
||||
# field(VAL, "1")
|
||||
field(ZNAM, "M")
|
||||
field(ONAM, "A")
|
||||
}
|
||||
|
||||
|
||||
record(bo, "$(P)$(R)FSTriggerStart") {
|
||||
field(DESC, "FireSignal Trigger Start")
|
||||
field(VAL, "0")
|
||||
field(ZNAM, "STOP")
|
||||
field(ONAM, "START")
|
||||
field(DESC, "FireSignal Trigger Start")
|
||||
field(VAL, "0")
|
||||
field(PINI, "YES")
|
||||
field(ZNAM, "STOP")
|
||||
field(ONAM, "START")
|
||||
}
|
||||
|
||||
record(bo, "$(P)$(R)PROCESS-MODE") {
|
||||
info(autosaveFields, "VAL")
|
||||
field(DESC, "Plasma Process Mode")
|
||||
#field(VAL, "0")
|
||||
field(ZNAM, "CLEAN")
|
||||
field(ONAM, "SHOT")
|
||||
info(autosaveFields, "VAL")
|
||||
field(DESC, "Plasma Process Mode")
|
||||
#field(VAL, "0")
|
||||
#field(PINI, "YES")
|
||||
field(ZNAM, "CLEAN")
|
||||
field(ONAM, "SHOT")
|
||||
}
|
||||
|
||||
record(bo, "$(P)$(R)PROCESS-REQ") {
|
||||
field(DESC, "Plasma Process sub-states Start/Stop")
|
||||
field(VAL, "0")
|
||||
field(ZNAM, "STOP")
|
||||
field(ONAM, "START")
|
||||
field(DESC, "Plasma Process sub-states Start/Stop")
|
||||
field(VAL, "0")
|
||||
field(PINI, "YES")
|
||||
field(ZNAM, "STOP")
|
||||
field(ONAM, "START")
|
||||
field(SCAN,"Passive")
|
||||
field(FLNK, "$(P)$(R)PULSE-NUMBER")
|
||||
}
|
||||
|
||||
record(bo, "$(P)$(R)AUTHORISATION") {
|
||||
field(DESC, "Pulse Sequence Authorisation Start/Abort")
|
||||
field(ZNAM, "ABORT")
|
||||
field(ONAM, "START")
|
||||
field(VAL, "0")
|
||||
field(DESC, "Pulse Sequence Authorisation Start/Abort")
|
||||
field(ZNAM, "ABORT")
|
||||
field(ONAM, "START")
|
||||
field(VAL, "0")
|
||||
}
|
||||
|
||||
record(longout, "$(P)$(R)PULSE-NUMBER") {
|
||||
info(autosaveFields, "VAL")
|
||||
field(DESC, "Pulse Number")
|
||||
record(calc, "$(P)$(R)PULSE-NUMBER") {
|
||||
info(autosaveFields, "VAL")
|
||||
field(DESC, "Pulse Number")
|
||||
field(INPA, "$(P)$(R)PROCESS-REQ NPP")
|
||||
field(INPB, "$(P)$(R)PULSE-NUMBER")
|
||||
field(INPC, "$(P)$(R)PROCESS-MODE NPP")
|
||||
field(CALC, "(A=1)? B+C :B")
|
||||
field(SCAN,"Passive")
|
||||
# field(PINI, "YES")
|
||||
}
|
||||
|
||||
record(calc, "$(P)$(R)COUNTDOWN") {
|
||||
field(DESC, "Countdown Increment")
|
||||
field(INPA,"$(P)$(R)COUNTDOWN")
|
||||
field(SCAN,"Passive")
|
||||
field(CALC,"A+1")
|
||||
field(VAL, "160")
|
||||
field(DESC, "Countdown Increment")
|
||||
field(INPA,"$(P)$(R)COUNTDOWN")
|
||||
field(DISA,"1")
|
||||
#field(SCAN,"Passive")
|
||||
field(SCAN,"1 second")
|
||||
field(CALC,"A+1")
|
||||
field(VAL, "160")
|
||||
}
|
||||
|
||||
record(calc, "$(P)$(R)COUNTER") {
|
||||
field(DESC, "0.1 s counter")
|
||||
field(INPA, "$(P)$(R)COUNTER")
|
||||
field(SCAN, ".1 second")
|
||||
field(CALC, "A + .1")
|
||||
field(DESC, "0.1 s counter")
|
||||
field(INPA, "$(P)$(R)COUNTER")
|
||||
field(SCAN, ".1 second")
|
||||
field(CALC, "A + .1")
|
||||
}
|
||||
|
||||
record(stringin, "$(P)$(R)CurrentTime") {
|
||||
field(DESC, "Current Date and Time of the IOC")
|
||||
field(SCAN, "1 second")
|
||||
field(DTYP, "Soft Timestamp")
|
||||
field(PINI, "YES")
|
||||
field(INP, "@%d/%m/%Y %H:%M:%S")
|
||||
field(DESC, "Current Date and Time of the IOC")
|
||||
field(SCAN, "1 second")
|
||||
field(DTYP, "Soft Timestamp")
|
||||
#field(PINI, "YES")
|
||||
field(INP, "@%d/%m/%Y %H:%M:%S")
|
||||
}
|
||||
|
||||
record(stringout, "$(P)$(R)TraceMessage") {
|
||||
field(DESC, "Trace Message from IOC")
|
||||
field(VAL, "Trace mode ON")
|
||||
field(DESC, "Trace Message from IOC")
|
||||
field(VAL, "Trace mode ON")
|
||||
}
|
||||
|
||||
record(stringout, "$(P)$(R)LogMessage") {
|
||||
field(DESC, "Log Message ")
|
||||
# field(VAL, "Trace mode ON")
|
||||
field(DESC, "Log Message ")
|
||||
# field(VAL, "Trace mode ON")
|
||||
}
|
||||
|
||||
record(mbbi, "$(P)$(R)STARTINGSTATE") {
|
||||
field(DESC, "Starting State Sequence")
|
||||
field(ZRVL, "0")
|
||||
field(ONVL, "1")
|
||||
field(TWVL, "2")
|
||||
field(THVL, "3")
|
||||
field(FRVL, "4")
|
||||
field(FVVL, "5")
|
||||
field(ZRST, "NonStarting")
|
||||
field(ONST, "Starting1")
|
||||
field(TWST, "WaitManV")
|
||||
field(THST, "WaitPress")
|
||||
field(FRST, "WaitTMP")
|
||||
field(FVST, "StartEnd")
|
||||
field(VAL, "0")
|
||||
field(DESC, "Starting State Sequence")
|
||||
field(ZRVL, "0")
|
||||
field(ONVL, "1")
|
||||
field(TWVL, "2")
|
||||
field(THVL, "3")
|
||||
field(FRVL, "4")
|
||||
field(FVVL, "5")
|
||||
field(ZRST, "NonStarting")
|
||||
field(ONST, "Starting1")
|
||||
field(TWST, "WaitManV")
|
||||
field(THST, "WaitPress")
|
||||
field(FRST, "WaitTMP")
|
||||
field(FVST, "StartEnd")
|
||||
field(VAL, "0")
|
||||
}
|
||||
|
||||
record(mbbi, "$(P)$(R)CLEANINGSTATE") {
|
||||
field(DESC, "Cleaning State Sequence")
|
||||
field(ZRVL, "0")
|
||||
field(ONVL, "1")
|
||||
field(TWVL, "2")
|
||||
field(THVL, "3")
|
||||
field(FRVL, "4")
|
||||
field(FVVL, "5")
|
||||
field(ZRST, "NonCleaning")
|
||||
field(ONST, "Cleaning1")
|
||||
field(TWST, "Cleaning2")
|
||||
field(THST, "Cleaning3")
|
||||
field(FRST, "Cleaning4")
|
||||
field(FVST, "Cleaning5")
|
||||
field(VAL, "0")
|
||||
field(DESC, "Cleaning State Sequence")
|
||||
field(ZRVL, "0")
|
||||
field(ONVL, "1")
|
||||
field(TWVL, "2")
|
||||
field(THVL, "3")
|
||||
field(FRVL, "4")
|
||||
field(FVVL, "5")
|
||||
field(SXVL, "6")
|
||||
field(ZRST, "NonCleaning")
|
||||
field(ONST, "Cleaning1")
|
||||
field(TWST, "Cleaning2")
|
||||
field(THST, "Cleaning3")
|
||||
field(FRST, "Cleaning4")
|
||||
field(FVST, "Cleaning5")
|
||||
field(SXST, "Cleaning6")
|
||||
field(VAL, "0")
|
||||
}
|
||||
|
||||
record(mbbi, "$(P)$(R)WSHOTINGSTATE") {
|
||||
field(DESC, "Plasma Shot State Sequence")
|
||||
field(ZRVL, "0")
|
||||
field(ONVL, "1")
|
||||
field(TWVL, "2")
|
||||
field(THVL, "3")
|
||||
field(FRVL, "4")
|
||||
field(FVVL, "5")
|
||||
field(SXVL, "6")
|
||||
field(SVVL, "7")
|
||||
field(EIVL, "8")
|
||||
field(NIVL, "9")
|
||||
field(TEVL, "10")
|
||||
field(ELVL, "11")
|
||||
field(TVVL, "12")
|
||||
field(TTVL, "13")
|
||||
field(ZRST, "NonShooting")
|
||||
field(ONST, "ShotWTrig")
|
||||
field(TWST, "Shooting2")
|
||||
field(THST, "Shooting3")
|
||||
field(FRST, "Shooting4")
|
||||
field(FVST, "Shooting5")
|
||||
field(SXST, "Shooting6")
|
||||
field(SVST, "Shooting7")
|
||||
field(EIST, "Shooting8")
|
||||
field(NIST, "Shooting9")
|
||||
field(TEST, "Shooting10")
|
||||
field(ELST, "Shooting11")
|
||||
field(TVST, "Shooting12")
|
||||
field(TTST, "ShotEnd")
|
||||
field(VAL, "0")
|
||||
field(DESC, "Plasma Shot State Sequence")
|
||||
field(ZRVL, "0")
|
||||
field(ONVL, "1")
|
||||
field(TWVL, "2")
|
||||
field(THVL, "3")
|
||||
field(FRVL, "4")
|
||||
field(FVVL, "5")
|
||||
field(SXVL, "6")
|
||||
field(SVVL, "7")
|
||||
field(EIVL, "8")
|
||||
field(NIVL, "9")
|
||||
field(TEVL, "10")
|
||||
field(ELVL, "11")
|
||||
field(TVVL, "12")
|
||||
field(TTVL, "13")
|
||||
field(ZRST, "NonShooting")
|
||||
field(ONST, "ShotWTrig")
|
||||
field(TWST, "Shooting2")
|
||||
field(THST, "Shooting3")
|
||||
field(FRST, "Shooting4")
|
||||
field(FVST, "Shooting5")
|
||||
field(SXST, "Shooting6")
|
||||
field(SVST, "Shooting7")
|
||||
field(EIST, "Shooting8")
|
||||
field(NIST, "Shooting9")
|
||||
field(TEST, "Shooting10")
|
||||
field(ELST, "Shooting11")
|
||||
field(TVST, "Shooting12")
|
||||
field(TTST, "ShotEnd")
|
||||
field(VAL, "0")
|
||||
}
|
||||
|
||||
record(mbbi, "$(P)$(R)STOPPINGSTATE") {
|
||||
|
||||
@@ -11,11 +11,13 @@ DB += ISTTOKpcf8591.db
|
||||
DB += ISTTOKpfeiffer.db
|
||||
DB += ISTTOKtda8444.db
|
||||
DB += sendmail.db
|
||||
DB += seeed4relay.db
|
||||
DB += pcf8591.proto
|
||||
DB += tda8444.proto
|
||||
DB += sendmail.proto
|
||||
DB += pcf8574.proto
|
||||
DB += pfeiffer.proto
|
||||
DB += seeed4relay.proto
|
||||
|
||||
# If <anyname>.db template is not named <anyname>*.template add
|
||||
# <anyname>_TEMPLATE = <templatename>
|
||||
|
||||
@@ -1,18 +1,18 @@
|
||||
Terminator=CR;
|
||||
Terminator = CR;
|
||||
inTerminator = CR;
|
||||
# CR and LF are control characters, respectively coded 0x0D (13 decimal) and 0x0A (10 decimal)
|
||||
# CR and LF are control characters, respectively coded 0x0D (13 decimal) and 0x0A (10 decimal)
|
||||
MaxInput = 30;
|
||||
MaxInput = 20;
|
||||
ExtraInput = Ignore;
|
||||
|
||||
# Values in millisecond
|
||||
LockTimeout = 1000;
|
||||
LockTimeout = 500;
|
||||
# Affects first out command in a protocol.
|
||||
# If other records currently use the device, how many milliseconds to wait for
|
||||
# exclusive access to the device before giving up?
|
||||
|
||||
#ReadTimeout = 1500;
|
||||
|
||||
ReplyTimeout = 400;
|
||||
ReplyTimeout = 300;
|
||||
|
||||
#PollPeriod = $ReplyTimeout;
|
||||
#Integer. Affects first in command in I/O Intr mode (see chapter Record Processing).
|
||||
|
||||
19
epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/seeed4relay.db
Normal file
19
epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/seeed4relay.db
Normal file
@@ -0,0 +1,19 @@
|
||||
##############################################################
|
||||
# ### Read/Write SEEED Relay Board address 0x11=17 register ##
|
||||
#############################################################
|
||||
record( mbboDirect, "$(P)$(R)SEEED4RELAY:$(A):REGISTER") {
|
||||
#record(longout, "$(P)$(R)SEEED4RELAY:$(A):REGISTER") {
|
||||
field(DTYP, "stream")
|
||||
field(OUT, "@seeed4relay.proto wReg($(A)) I2C")
|
||||
# field(DRVH, "15" )
|
||||
# field(DRVL, "0" )
|
||||
field(SHFT, "0")
|
||||
field(NOBT, "4")
|
||||
field(VAL, 0)
|
||||
# field(PINI,"YES")
|
||||
}
|
||||
record( mbbiDirect, "$(P)$(R)SEEED4RELAY:$(A):REGISTER:READ") {
|
||||
field(DTYP, "stream")
|
||||
field(INP, "@seeed4relay.proto rReg($(A)) I2C")
|
||||
}
|
||||
|
||||
32
epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/seeed4relay.proto
Normal file
32
epics/iocs/ISTTOKrpi/ISTTOKrpiApp/Db/seeed4relay.proto
Normal file
@@ -0,0 +1,32 @@
|
||||
Terminator = "";
|
||||
LockTimeout = 500;
|
||||
ReplyTimeout = 100;
|
||||
ReadTimeout = 100;
|
||||
WriteTimeout = 100;
|
||||
MaxInput = 1;
|
||||
ExtraInput = Error;
|
||||
|
||||
|
||||
# IMPORTANT: Compile drvAsynI2C with flag STREAM_WORKAROUND = 1
|
||||
|
||||
#define CMD_CHANNEL_CTRL 0x10
|
||||
#define CMD_SAVE_I2C_ADDR 0x11
|
||||
#define CMD_READ_I2C_ADDR 0x12
|
||||
#define CMD_READ_FIRMWARE_VER 0x13
|
||||
|
||||
rReg {
|
||||
out ${1} 16;
|
||||
in "%01r";
|
||||
}
|
||||
|
||||
rFw {
|
||||
out ${1} 18;
|
||||
in "%01r";
|
||||
}
|
||||
## @init { rReg; }
|
||||
##
|
||||
wReg {
|
||||
out ${1} 16 "%.1r";
|
||||
}
|
||||
|
||||
# @init { out ${1}; in "%.1r"; }
|
||||
@@ -40,7 +40,7 @@ mail_end {
|
||||
send {
|
||||
mail_start;
|
||||
out "Problem is: %s\n";
|
||||
out "Please check: http://epics.ipfn.ist.utl.pt/isttok";
|
||||
out "Please check: http://epics.ipfn.tecnico.ulisboa.pt/isttok";
|
||||
mail_end;
|
||||
}
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,18 +1,19 @@
|
||||
ISTTOK:central:PULSE-NUMBER.VAL
|
||||
# P=ISTTOK:,R=central:
|
||||
$(P)$(R)PULSE-NUMBER.VAL
|
||||
ISTTOK:central:LogMessage.VAL
|
||||
|
||||
ISTTOK:central:LASTOPSTATE.VAL
|
||||
ISTTOK:central:OPREQ
|
||||
ISTTOK:central:OPREQ.VAL
|
||||
ISTTOK:central:PROCESS-MODE.VAL
|
||||
ISTTOK:central:CLEANINGMANMODE.VAL
|
||||
|
||||
ISTTOK:central:Emergency-UserButton.VAL
|
||||
ISTTOK:central:TMPump1-ManualValve.VAL
|
||||
ISTTOK:central:Shot-TorPSCurrent
|
||||
ISTTOK:central:UPS-Shutdown
|
||||
#ISTTOK:central:UPS-Shutdown
|
||||
|
||||
#ALARM Limits
|
||||
ISTTOK:central:RPump1-Pressure.HIGH
|
||||
$(P)$(R)RPump1-Pressure.HIGH
|
||||
ISTTOK:central:RPump1-Pressure.HIHI
|
||||
#ISTTOK:central:RPump2-Pressure.HIGH
|
||||
#ISTTOK:central:RPump2-Pressure.HIHI
|
||||
|
||||
@@ -1,3 +1,88 @@
|
||||
ISTTOK:central:PCF8591:72:ADC_CH1
|
||||
ISTTOK:central:PCF8591:72:ADC_CH2
|
||||
ISTTOK:central:PCF8591:72:ADC_CH3
|
||||
ISTTOK:central:P001:M
|
||||
ISTTOK:central:P001:E
|
||||
ISTTOK:central:P002:M
|
||||
ISTTOK:central:P002:E
|
||||
ISTTOK:central:P003:M
|
||||
ISTTOK:central:P003:E
|
||||
ISTTOK:central:P004:M
|
||||
ISTTOK:central:P004:E
|
||||
ISTTOK:central:OPCALCSTATE
|
||||
ISTTOK:central:STARTCALCSTATE
|
||||
ISTTOK:central:STOPPINGCALCSTATE
|
||||
ISTTOK:central:CLEANCALCSTATE
|
||||
ISTTOK:central:WSHOTCALCSTATE
|
||||
ISTTOK:central:PULSE-NUMBER
|
||||
ISTTOK:central:COUNTDOWN
|
||||
ISTTOK:central:COUNTER
|
||||
ISTTOK:central:PCF8591:72:BYTE2_CH1
|
||||
ISTTOK:central:PCF8591:72:BYTE2_CH2
|
||||
ISTTOK:central:PCF8591:72:BYTE2_CH3
|
||||
ISTTOK:central:Emergency
|
||||
ISTTOK:central:VVessel-Pressure
|
||||
ISTTOK:central:RPump1-Pressure
|
||||
ISTTOK:central:TMPump1-PressureAdmission
|
||||
ISTTOK:central:RPump2-Pressure
|
||||
ISTTOK:central:PCF8591:72:DAC
|
||||
ISTTOK:central:TDA8444:32:DAC_CH0
|
||||
ISTTOK:central:TDA8444:32:DAC_CH1
|
||||
ISTTOK:central:TDA8444:32:DAC_CH2
|
||||
ISTTOK:central:TDA8444:32:DAC_CH3
|
||||
ISTTOK:central:TDA8444:32:DAC_CH4
|
||||
ISTTOK:central:TDA8444:32:DAC_CH5
|
||||
ISTTOK:central:TDA8444:32:DAC_CH6
|
||||
ISTTOK:central:Shot-TorPSCurrent
|
||||
ISTTOK:SR_0_State
|
||||
ISTTOK:SR_1_State
|
||||
ISTTOK:SR_2_State
|
||||
ISTTOK:SR_3_State
|
||||
ISTTOK:SR_4_State
|
||||
ISTTOK:SR_5_State
|
||||
ISTTOK:SR_6_State
|
||||
ISTTOK:SR_7_State
|
||||
ISTTOK:SR_disableMaxSecs
|
||||
ISTTOK:central:PCF8574:56:REGISTER:READ:FNOUT
|
||||
ISTTOK:central:PCF8574:57:REGISTER:READ:FNOUT
|
||||
ISTTOK:central:TraceMessage
|
||||
ISTTOK:central:LogMessage
|
||||
ISTTOK:central:RS485Debug
|
||||
ISTTOK:central:sendmail
|
||||
ISTTOK:SR_recentlyStr
|
||||
ISTTOK:SR_rebootStatusStr
|
||||
ISTTOK:SR_rebootTime
|
||||
ISTTOK:SR_statusStr
|
||||
ISTTOK:SR_0_Name
|
||||
ISTTOK:SR_0_StatusStr
|
||||
ISTTOK:SR_0_Time
|
||||
ISTTOK:SR_1_Name
|
||||
ISTTOK:SR_1_StatusStr
|
||||
ISTTOK:SR_1_Time
|
||||
ISTTOK:SR_2_Name
|
||||
ISTTOK:SR_2_StatusStr
|
||||
ISTTOK:SR_2_Time
|
||||
ISTTOK:SR_3_Name
|
||||
ISTTOK:SR_3_StatusStr
|
||||
ISTTOK:SR_3_Time
|
||||
ISTTOK:SR_4_Name
|
||||
ISTTOK:SR_4_StatusStr
|
||||
ISTTOK:SR_4_Time
|
||||
ISTTOK:SR_5_Name
|
||||
ISTTOK:SR_5_StatusStr
|
||||
ISTTOK:SR_5_Time
|
||||
ISTTOK:SR_6_Name
|
||||
ISTTOK:SR_6_StatusStr
|
||||
ISTTOK:SR_6_Time
|
||||
ISTTOK:SR_7_Name
|
||||
ISTTOK:SR_7_StatusStr
|
||||
ISTTOK:SR_7_Time
|
||||
ISTTOK:central:TMPump1-ControllerOnInv
|
||||
ISTTOK:central:TMPump1-ControllerOffInv
|
||||
ISTTOK:central:TMPump1-MotorOnInv
|
||||
ISTTOK:central:TMPump1-MotorOffInv
|
||||
ISTTOK:central:BuzzerInv
|
||||
ISTTOK:central:Shot-TorPSTriggerInv
|
||||
ISTTOK:central:TMPump1-Power
|
||||
ISTTOK:central:TMPump1-Emergency
|
||||
ISTTOK:central:TMPump1-Acceleration
|
||||
@@ -6,6 +91,26 @@ ISTTOK:central:TMPump2-Emergency
|
||||
ISTTOK:central:TMPump2-Acceleration
|
||||
ISTTOK:central:TTSystem-tzero
|
||||
ISTTOK:central:Emergency-PhysButton
|
||||
ISTTOK:central:LASTOPSTATE
|
||||
ISTTOK:SR_rebootStatus
|
||||
ISTTOK:SR_status
|
||||
ISTTOK:SR_0_Status
|
||||
ISTTOK:SR_1_Status
|
||||
ISTTOK:SR_2_Status
|
||||
ISTTOK:SR_3_Status
|
||||
ISTTOK:SR_4_Status
|
||||
ISTTOK:SR_5_Status
|
||||
ISTTOK:SR_6_Status
|
||||
ISTTOK:SR_7_Status
|
||||
ISTTOK:central:PCF8574:56:REGISTER:READ
|
||||
ISTTOK:central:PCF8574:57:REGISTER:READ
|
||||
ISTTOK:central:PCF8574:60:REGISTER:READ
|
||||
ISTTOK:central:PCF8574:61:REGISTER:READ
|
||||
ISTTOK:central:SEEED4RELAY:17:REGISTER:READ
|
||||
ISTTOK:central:CurrentTime
|
||||
ISTTOK:central:TMPump2-Speed
|
||||
ISTTOK:central:TMPump2-Current
|
||||
ISTTOK:central:Shot-TorPSCurrentImage
|
||||
ISTTOK:central:UPS-OnBattery
|
||||
ISTTOK:central:UPS-Shutdown
|
||||
ISTTOK:central:OPREQ
|
||||
@@ -41,117 +146,14 @@ ISTTOK:SR_heartbeat
|
||||
ISTTOK:SR_i_am_alive
|
||||
ISTTOK:SR_deadIfZero
|
||||
ISTTOK:SR_disable
|
||||
ISTTOK:central:TMPump1-ControllerOnInv
|
||||
ISTTOK:central:TMPump1-ControllerOffInv
|
||||
ISTTOK:central:TMPump1-MotorOnInv
|
||||
ISTTOK:central:TMPump1-MotorOffInv
|
||||
ISTTOK:central:BuzzerInv
|
||||
ISTTOK:central:Shot-TorPSTriggerInv
|
||||
ISTTOK:central:PCF8574:56:REGISTER:READ:FNOUT
|
||||
ISTTOK:central:PCF8574:57:REGISTER:READ:FNOUT
|
||||
ISTTOK:central:PULSE-NUMBER
|
||||
ISTTOK:central:PCF8591:72:DAC
|
||||
ISTTOK:central:TDA8444:32:DAC_CH0
|
||||
ISTTOK:central:TDA8444:32:DAC_CH1
|
||||
ISTTOK:central:TDA8444:32:DAC_CH2
|
||||
ISTTOK:central:TDA8444:32:DAC_CH3
|
||||
ISTTOK:central:TDA8444:32:DAC_CH4
|
||||
ISTTOK:central:TDA8444:32:DAC_CH5
|
||||
ISTTOK:central:TDA8444:32:DAC_CH6
|
||||
ISTTOK:central:Shot-TorPSCurrent
|
||||
ISTTOK:SR_0_State
|
||||
ISTTOK:SR_1_State
|
||||
ISTTOK:SR_2_State
|
||||
ISTTOK:SR_3_State
|
||||
ISTTOK:SR_4_State
|
||||
ISTTOK:SR_5_State
|
||||
ISTTOK:SR_6_State
|
||||
ISTTOK:SR_7_State
|
||||
ISTTOK:SR_disableMaxSecs
|
||||
ISTTOK:central:OPCALCSTATE
|
||||
ISTTOK:central:STARTCALCSTATE
|
||||
ISTTOK:central:STOPPINGCALCSTATE
|
||||
ISTTOK:central:CLEANCALCSTATE
|
||||
ISTTOK:central:WSHOTCALCSTATE
|
||||
ISTTOK:central:COUNTDOWN
|
||||
ISTTOK:central:COUNTER
|
||||
ISTTOK:central:PCF8591:72:BYTE2_CH1
|
||||
ISTTOK:central:PCF8591:72:BYTE2_CH2
|
||||
ISTTOK:central:PCF8591:72:BYTE2_CH3
|
||||
ISTTOK:central:Emergency
|
||||
ISTTOK:central:TMPump1-PressureAdmission
|
||||
ISTTOK:central:RPump1-Pressure
|
||||
ISTTOK:central:VVessel-Pressure
|
||||
ISTTOK:central:RPump2-Pressure
|
||||
ISTTOK:central:TMPump2-Speed
|
||||
ISTTOK:central:TMPump2-Current
|
||||
ISTTOK:central:Shot-TorPSCurrentImage
|
||||
ISTTOK:central:OPSTATE
|
||||
ISTTOK:central:STARTINGSTATE
|
||||
ISTTOK:central:CLEANINGSTATE
|
||||
ISTTOK:central:WSHOTINGSTATE
|
||||
ISTTOK:central:STOPPINGSTATE
|
||||
ISTTOK:central:PCF8574:56:REGISTER:READ
|
||||
ISTTOK:central:PCF8574:57:REGISTER:READ
|
||||
ISTTOK:central:PCF8574:60:REGISTER:READ
|
||||
ISTTOK:central:PCF8574:61:REGISTER:READ
|
||||
ISTTOK:central:LASTOPSTATE
|
||||
ISTTOK:SR_rebootStatus
|
||||
ISTTOK:SR_status
|
||||
ISTTOK:SR_0_Status
|
||||
ISTTOK:SR_1_Status
|
||||
ISTTOK:SR_2_Status
|
||||
ISTTOK:SR_3_Status
|
||||
ISTTOK:SR_4_Status
|
||||
ISTTOK:SR_5_Status
|
||||
ISTTOK:SR_6_Status
|
||||
ISTTOK:SR_7_Status
|
||||
ISTTOK:central:PCF8574:56:REGISTER
|
||||
ISTTOK:central:PCF8574:57:REGISTER
|
||||
ISTTOK:central:PCF8574:60:REGISTER
|
||||
ISTTOK:central:PCF8574:61:REGISTER
|
||||
ISTTOK:central:PCF8591:72:CTRLREGISTER
|
||||
ISTTOK:central:CurrentTime
|
||||
ISTTOK:central:PCF8591:72:ADC_CH1
|
||||
ISTTOK:central:PCF8591:72:ADC_CH2
|
||||
ISTTOK:central:PCF8591:72:ADC_CH3
|
||||
ISTTOK:central:P001:M
|
||||
ISTTOK:central:P001:E
|
||||
ISTTOK:central:P002:M
|
||||
ISTTOK:central:P002:E
|
||||
ISTTOK:central:P003:M
|
||||
ISTTOK:central:P003:E
|
||||
ISTTOK:central:P004:M
|
||||
ISTTOK:central:P004:E
|
||||
ISTTOK:central:TraceMessage
|
||||
ISTTOK:central:LogMessage
|
||||
ISTTOK:central:RS485Debug
|
||||
ISTTOK:central:sendmail
|
||||
ISTTOK:SR_recentlyStr
|
||||
ISTTOK:SR_rebootStatusStr
|
||||
ISTTOK:SR_rebootTime
|
||||
ISTTOK:SR_statusStr
|
||||
ISTTOK:SR_0_Name
|
||||
ISTTOK:SR_0_StatusStr
|
||||
ISTTOK:SR_0_Time
|
||||
ISTTOK:SR_1_Name
|
||||
ISTTOK:SR_1_StatusStr
|
||||
ISTTOK:SR_1_Time
|
||||
ISTTOK:SR_2_Name
|
||||
ISTTOK:SR_2_StatusStr
|
||||
ISTTOK:SR_2_Time
|
||||
ISTTOK:SR_3_Name
|
||||
ISTTOK:SR_3_StatusStr
|
||||
ISTTOK:SR_3_Time
|
||||
ISTTOK:SR_4_Name
|
||||
ISTTOK:SR_4_StatusStr
|
||||
ISTTOK:SR_4_Time
|
||||
ISTTOK:SR_5_Name
|
||||
ISTTOK:SR_5_StatusStr
|
||||
ISTTOK:SR_5_Time
|
||||
ISTTOK:SR_6_Name
|
||||
ISTTOK:SR_6_StatusStr
|
||||
ISTTOK:SR_6_Time
|
||||
ISTTOK:SR_7_Name
|
||||
ISTTOK:SR_7_StatusStr
|
||||
ISTTOK:SR_7_Time
|
||||
ISTTOK:central:SEEED4RELAY:17:REGISTER
|
||||
ISTTOK:central:OPSTATE
|
||||
ISTTOK:central:STARTINGSTATE
|
||||
ISTTOK:central:CLEANINGSTATE
|
||||
ISTTOK:central:WSHOTINGSTATE
|
||||
ISTTOK:central:STOPPINGSTATE
|
||||
|
||||
@@ -1,14 +1,13 @@
|
||||
# autosave R5.3 Automatically generated - DO NOT MODIFY - 211214-141949
|
||||
ISTTOK:central:PULSE-NUMBER.VAL 0
|
||||
# autosave R5.3 Automatically generated - DO NOT MODIFY - 211215-181848
|
||||
ISTTOK:central:PULSE-NUMBER.VAL 49461
|
||||
ISTTOK:central:LogMessage.VAL
|
||||
ISTTOK:central:LASTOPSTATE.VAL 5
|
||||
ISTTOK:central:OPREQ 0
|
||||
ISTTOK:central:LASTOPSTATE.VAL 2
|
||||
ISTTOK:central:OPREQ.VAL 1
|
||||
ISTTOK:central:PROCESS-MODE.VAL 0
|
||||
ISTTOK:central:CLEANINGMANMODE.VAL 0
|
||||
ISTTOK:central:Emergency-UserButton.VAL 0
|
||||
ISTTOK:central:TMPump1-ManualValve.VAL 1
|
||||
ISTTOK:central:Shot-TorPSCurrent 32
|
||||
ISTTOK:central:UPS-Shutdown 0
|
||||
ISTTOK:central:RPump1-Pressure.HIGH 0.05
|
||||
ISTTOK:central:RPump1-Pressure.HIHI 0.1
|
||||
<END>
|
||||
|
||||
@@ -15,6 +15,7 @@ dbLoadDatabase "dbd/ISTTOKrpi.dbd"
|
||||
ISTTOKrpi_registerRecordDeviceDriver pdbbase
|
||||
|
||||
## Load I2C drivers
|
||||
# *** IMPORTANT: Compile drvAsynI2C with flag STREAM_WORKAROUND = 1
|
||||
drvAsynI2CConfigure( "I2C", "/dev/i2c-1", 1 )
|
||||
|
||||
## Load record instances
|
||||
@@ -23,6 +24,8 @@ dbLoadRecords("db/ISTTOKpcf8574.db","P=ISTTOK:,R=central:,BUS=I2C")
|
||||
dbLoadRecords("db/ISTTOKpcf8591.db","P=ISTTOK:,R=central:,BUS=I2C")
|
||||
dbLoadRecords("db/ISTTOKtda8444.db","P=ISTTOK:,R=central:,BUS=I2C")
|
||||
dbLoadRecords("db/ISTTOKmachineControl.db","P=ISTTOK:,R=central:")
|
||||
## SEEED RELAY BOARD
|
||||
dbLoadRecords("db/seeed4relay.db","P=ISTTOK:,R=central:,A=17")
|
||||
|
||||
## Load Serial drivers
|
||||
#drvAsynSerialPortConfigure("RS0","/dev/ttyAMA0")
|
||||
@@ -48,8 +51,8 @@ dbLoadRecords("db/sendmail.db", "P=ISTTOK:,PORT=L0,R=central:,L=0,A=0")
|
||||
# 2021/12/14 13:11:50.019969 RS0 ISTTOK:central:P002:M: No reply within 200 ms to "0020074002=?107<0d>
|
||||
#var streamError 1
|
||||
#with this no errors on pfeiffer bus
|
||||
var streamDebug 1
|
||||
streamSetLogfile("logfile.txt")
|
||||
#var streamDebug 1
|
||||
#streamSetLogfile("logfile.txt")
|
||||
|
||||
## Run this to trace the stages of iocInit
|
||||
#traceIocInit
|
||||
@@ -70,11 +73,11 @@ asSetFilename("${TOP}/iocBoot/${IOC}/access_security.acf")
|
||||
|
||||
iocInit
|
||||
|
||||
#asInit
|
||||
asInit
|
||||
|
||||
# Create request file and start periodic 'save’
|
||||
# makeAutosaveFileFromDbInfo("$(SAVE_DIR)/$(IOC).req", "autosaveFields")
|
||||
create_monitor_set("$(IOC).req", 30)
|
||||
create_monitor_set("$(IOC).req", 30, "P=ISTTOK:,R=central:")
|
||||
|
||||
## Start any sequence programs , use safe mode
|
||||
seq IsttokSeqExec "unit=ISTTOK"
|
||||
|
||||
Reference in New Issue
Block a user