Merge branch 'master' of https://git.ipfn.tecnico.ulisboa.pt/r/ISTTOK
This commit is contained in:
@@ -114,13 +114,14 @@ Process Value in this IOC Server:
|
|||||||
|
|
||||||
### Central Control/Vacuum Node
|
### Central Control/Vacuum Node
|
||||||
- Vacuum Sensors
|
- Vacuum Sensors
|
||||||
- Pffeifer rotatory vacuum pump
|
- Pffeifer rotatory vacuum pumpa (*RPump1*)
|
||||||
- Edwards electro valve
|
- Edwards electro valve
|
||||||
- Seiko Seiki turbomolecular pump and control unit
|
- Seiko Seiki turbomolecular pump and control unit (model SCU-400)
|
||||||
- Main State Machine
|
- Main State Machine, see [source](https://git.ipfn.tecnico.ulisboa.pt/blob/ISTTOK.git/master/epics%2Fiocs%2FISTTOKrpi%2FISTTOKrpiApp%2Fsrc%2FIsttokSeqExec.stt)
|
||||||
|
|
||||||
#### Hardware Platform
|
#### 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)
|
* 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;
|
* connected to raspberry Pi through I2C interface;
|
||||||
@@ -136,15 +137,16 @@ Process Value in this IOC Server:
|
|||||||
* IP addr:192.168.1.110 ( ISTTOK private network)
|
* 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
|
* 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)
|
(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:
|
* EPICS v7 base-7.0 from epics [github](https://github.com/epics-base)
|
||||||
* synApps_5_8
|
* (in /home/pi/Apps/epics7/epics-base) including modules:
|
||||||
* asyn-4-26
|
* asynDriver [asyn](https://github.com/epics-modules/asyn)
|
||||||
* seq-2-2-1
|
* [StreamDevice](https://paulscherrerinstitute.github.io/StreamDevice)
|
||||||
* autosave-5-6-1
|
* State Notation Language and Sequence v.2.2 [seq](https://www-csr.bessy.de/control/SoftDist/sequencer)
|
||||||
* IOC installed in '/opt/epics/iocs/'
|
* [autosave](https://github.com/epics-modules/autosave)
|
||||||
|
* IOC installed in '/home/pi/ISTTOK/epics/iocs/ISTTOKrpi'
|
||||||
* Running in `screen deamon` (see `/etc/rc.local`)
|
* 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
|
||||||
Process Variables in this IOC Server:
|
Process Variables in this IOC Server:
|
||||||
@@ -161,6 +163,8 @@ Process Variables in this IOC Server:
|
|||||||
|ISTTOK:central:COUNTDOWN | mbbi | no |
|
|ISTTOK:central:COUNTDOWN | mbbi | no |
|
||||||
|ISTTOK:central:PULSE-NUMBER | longout | yes |
|
|ISTTOK:central:PULSE-NUMBER | longout | yes |
|
||||||
|ISTTOK:central:OPSTATE |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:CurrentTime | stringin | no |
|
||||||
|ISTTOK:central:TraceMessage | stringout | yes |
|
|ISTTOK:central:TraceMessage | stringout | yes |
|
||||||
|ISTTOK:central:LogMessage | stringout | yes |
|
|ISTTOK:central:LogMessage | stringout | yes |
|
||||||
@@ -180,7 +184,7 @@ Process Variables in this IOC Server:
|
|||||||
|ISTTOK:central:TMPump1-NormalOperation | bi | 7 |
|
|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 |
|
|PV Name | PV Type | Bit |
|
||||||
|:----------|-------|---:|
|
|:----------|-------|---:|
|
||||||
@@ -192,7 +196,7 @@ Process Variables in this IOC Server:
|
|||||||
|ISTTOK:central:TTSystem-tzero| bi | 7 |
|
|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)|
|
|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|
|
|PV Name |PV Type |Archive|
|
||||||
|:----------|-------|---:|
|
|:----------|-------|---:|
|
||||||
@@ -227,18 +231,28 @@ Process Variables in this IOC Server:
|
|||||||
| ISTTOK:central:Shot-TorPSCurrentImage"| ai | ch3 | no |
|
| 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|
|
|PV Name |PV Type |Archive| RS485 request command|
|
||||||
|:----------|-------|---:|
|
|:----------|-------|---:|---|
|
||||||
|ISTTOK:central:RPump1-Pressure | ai | yes |
|
|ISTTOK:central:VVessel-Pressure | ai | yes | out "0010074002=?106"|
|
||||||
|ISTTOK:central:RPump2-Pressure | ai | yes |
|
|ISTTOK:central:RPump1-Pressure | ai | yes | out "0020074002=?107" |
|
||||||
|ISTTOK:central:TMPump1-PressureAdmission | ai | yes |
|
|ISTTOK:central:RPump2-Pressure (Disabled) | ai | yes | |
|
||||||
|ISTTOK:central:VVessel-Pressure | 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)
|
- Vacuum Pfeiffer Sensors (RS485)
|
||||||
|
|
||||||
#### Hardware Platform
|
#### Hardware Platform
|
||||||
@@ -252,10 +266,10 @@ Process Variables in this IOC Server:
|
|||||||
|
|
||||||
|PV Name |PV Type |Archive|
|
|PV Name |PV Type |Archive|
|
||||||
|:----------|-------|---:|
|
|:----------|-------|---:|
|
||||||
| ISTTOK:vacuum:RPump1-Pressure | ai | yes |
|
| ISTTOK:vacuum:RPump1-Pressure (not used)| ai | yes |
|
||||||
|ISTTOK:vacuum:RPump2-Pressure | ai | yes |
|
|ISTTOK:vacuum:RPump2-Pressure (not used) | ai | yes |
|
||||||
|ISTTOK:vacuum:TMPump1-PressureAdmission | ai | yes |
|
|ISTTOK:vacuum:TMPump1-PressureAdmission (not used)| ai | yes |
|
||||||
|ISTTOK:vacuum:VVessel-Pressure | ai | yes |
|
|ISTTOK:vacuum:VVessel-Pressure (not used) | ai | yes |
|
||||||
----------
|
----------
|
||||||
|
|
||||||
#### Software Platform
|
#### Software Platform
|
||||||
@@ -290,7 +304,7 @@ openjdk-8-jre linux package
|
|||||||
|
|
||||||
### EPICS Channel Access Configuration
|
### 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"
|
export EPICS_CA_AUTO_ADDR_LIST="NO"
|
||||||
```
|
```
|
||||||
|
|
||||||
|
|||||||
@@ -1,38 +1,63 @@
|
|||||||
# https://tecadmin.net/install-apache-mod-wsgi-on-ubuntu-16-04-xenial
|
#!/usr/bin/env python3
|
||||||
# Include in /etc/apache2/conf-available/mod-wsgi.conf :
|
# -*- coding: utf-8 -*-
|
||||||
# WSGIScriptAlias /isttok /var/www/html/wsgi_isttok_status.py
|
# if you change this script "touch" it to reload by apache
|
||||||
# and
|
# e.g touch /var/www/html/wsgi_isttok_status.py
|
||||||
# systemctl restart apache2
|
"""
|
||||||
|
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
|
from epics import caget, caput, cainfo
|
||||||
import os
|
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_ADDR_LIST'] = 'localhost 192.168.1.110'
|
||||||
os.environ['EPICS_CA_AUTO_ADDR_LIST'] = 'NO'
|
os.environ['EPICS_CA_AUTO_ADDR_LIST'] = 'NO'
|
||||||
|
|
||||||
def application(environ,start_response):
|
def application(environ,start_response):
|
||||||
status = '200 OK'
|
status = '200 OK'
|
||||||
RPump1press = caget('ISTTOK:central:RPump1-Pressure')
|
RPump1press = caget('ISTTOK:central:RPump1-Pressure', as_string=True)
|
||||||
RPump2press = caget('ISTTOK:central:RPump2-Pressure')
|
# RPump2press = caget('ISTTOK:central:RPump2-Pressure')
|
||||||
TMPump1press = caget('ISTTOK:central:TMPump1-PressureAdmission')
|
TMPump1press = caget('ISTTOK:central:TMPump1-PressureAdmission', as_string=True)
|
||||||
VVesselpress = caget('ISTTOK:central:VVessel-Pressure')
|
VVesselpress = caget('ISTTOK:central:VVessel-Pressure', as_string=True)
|
||||||
rpiCurrentTime = caget('ISTTOK:central:CurrentTime')
|
# RPump1press = caget('ISTTOK:vacuum:RPump1-Pressure')
|
||||||
opState = caget('ISTTOK:central:OPSTATE.VAL')
|
# RPump2press = caget('ISTTOK:vacuum:RPump2-Pressure')
|
||||||
pulseNum = caget('ISTTOK:central:PULSE-NUMBER')
|
# 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' \
|
html = '<html>\n' \
|
||||||
'<body>\n' \
|
'<head> <meta charset="UTF-8"/> <title>ISTTOK Status page</title>' \
|
||||||
' <h1> ISTTOK Present Condition </h1> \n'
|
'<meta http-equiv="refresh" content="5"> </head>' \
|
||||||
html += '<p>RPump1-Pressure: ' + str(RPump1press) + ' mBar </p>'
|
'<body>\n <h1> ISTTOK Present Condition </h1> \n'
|
||||||
html += '<p>RPump2-Pressure: ' + str(RPump2press) + ' mBar </p>'
|
# html += '<p>RPump1-Pressure: ' + str(RPump1press) + ' mBar </p>'
|
||||||
html += '<p>TMPump1-PressureAdmission: ' + str(TMPump1press) + ' mBar </p>'
|
html += '<p>RPump1-Pressure: ' + RPump1press + ' mBar </p>'
|
||||||
html += '<p>VVessel-Pressure: ' + str(VVesselpress) + ' mBar </p>'
|
# html += '<p>RPump2-Pressure: ' + str(RPump2press) + ' mBar </p>'
|
||||||
html += '<p>OPSTATE: ' + str(opState) + ' </p>'
|
html += '<p>TMPump1-PressureAdmission: ' + TMPump1press + ' mBar </p>'
|
||||||
html += '<p>PULSE-NUMBER: ' + str(pulseNum) + ' </p>'
|
html += '<p>VVessel-Pressure: ' + VVesselpress + ' mBar </p>'
|
||||||
html += '<p>Rpi CurrentTime: ' + str(rpiCurrentTime) + ' </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 += '</body>\n' \
|
||||||
'</html>\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)
|
start_response(status,response_header)
|
||||||
html = bytes(html, encoding= 'utf-8')
|
return [html.encode('UTF-8')]
|
||||||
return [html]
|
# html = bytes(html, encoding= 'utf-8')
|
||||||
|
# return [html]
|
||||||
|
|||||||
@@ -27,7 +27,8 @@ record(bo, "$(P)$(R)TMPump1-ControllerOn" ) {
|
|||||||
field(ZNAM, "Off" )
|
field(ZNAM, "Off" )
|
||||||
field(ONAM, "Pulse" )
|
field(ONAM, "Pulse" )
|
||||||
field(HIGH, "2.5")
|
field(HIGH, "2.5")
|
||||||
field(FLNK, "$(P)$(R)TMPump1-ControllerOnInv" )
|
# Disabled until further notice
|
||||||
|
# field(FLNK, "$(P)$(R)TMPump1-ControllerOnInv" )
|
||||||
field(VAL,"0")
|
field(VAL,"0")
|
||||||
}
|
}
|
||||||
record(calcout, "$(P)$(R)TMPump1-ControllerOnInv") {
|
record(calcout, "$(P)$(R)TMPump1-ControllerOnInv") {
|
||||||
@@ -43,7 +44,8 @@ record(bo, "$(P)$(R)TMPump1-ControllerOff" ) {
|
|||||||
field(ZNAM, "Off" )
|
field(ZNAM, "Off" )
|
||||||
field(ONAM, "Pulse" )
|
field(ONAM, "Pulse" )
|
||||||
field(HIGH, "2.5")
|
field(HIGH, "2.5")
|
||||||
field(FLNK, "$(P)$(R)TMPump1-ControllerOffInv" )
|
# Disabled until further notice
|
||||||
|
# field(FLNK, "$(P)$(R)TMPump1-ControllerOffInv" )
|
||||||
field(VAL,"0")
|
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" ) {
|
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(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" )
|
field( OUT, "$(P)$(R)PCF8574:61:REGISTER.B1 PP" )
|
||||||
@@ -381,17 +372,6 @@ record(bo, "$(P)$(R)Clean-PrimContactor" ) {
|
|||||||
field(VAL,"1")
|
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 #
|
# GIS VALVES ON/OFF #
|
||||||
@@ -399,23 +379,12 @@ record(bo, "$(P)$(R)Clean-PrimPneuBreaker"){
|
|||||||
record(bo, "$(P)$(R)GasIS-Valves" ) {
|
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")
|
# 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" ) {
|
# record(bo, "$(P)$(R)GISValvesOnOff" ) {
|
||||||
field( OUT, "$(P)$(R)PCF8574:61:REGISTER.B6 PP" )
|
field( OUT, "$(P)$(R)SEEED4RELAY:17:REGISTER.B0 PP" )
|
||||||
field( ZNAM, "On" )
|
field( ZNAM, "OFF" )
|
||||||
field( ONAM, "Off" )
|
field( ONAM, "ON" )
|
||||||
field(VAL,"1")
|
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"){
|
#record(bo,"$(P)$(R)Primary-PressureCondition"){
|
||||||
# field(ZNAM, "OFF" )
|
# field(ZNAM, "OFF" )
|
||||||
@@ -442,3 +411,57 @@ record(bo, "$(P)$(R)TMPump1-ManualValve"){
|
|||||||
field( ZNAM, "Closed")
|
field( ZNAM, "Closed")
|
||||||
field( ONAM, "Open")
|
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(DTYP, "Raw Soft Channel" )
|
||||||
field(INP, "$(P)$(R)PCF8591:72:BYTE2_CH3 PP NMS")
|
field(INP, "$(P)$(R)PCF8591:72:BYTE2_CH3 PP NMS")
|
||||||
field(SCAN, ".2 second")
|
field(SCAN, ".2 second")
|
||||||
|
#Scan Disable Input Link Value
|
||||||
|
field(DISA, "1")
|
||||||
field(ASLO, "39.215686275" )
|
field(ASLO, "39.215686275" )
|
||||||
field(AOFF, "0.0" )
|
field(AOFF, "0.0" )
|
||||||
field(EGU, "A" )
|
field(EGU, "A" )
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
# vim: sta:et:sw=4:ts=4:sts=4
|
||||||
# 8/5/2021 Only sensor 2 is working. Running with dspIC
|
# 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 dspIC
|
||||||
# 20/9/2021 sensors 1,2,3 are working. Running with tty USB
|
# 20/9/2021 sensors 1,2,3 are working. Running with tty USB
|
||||||
@@ -8,28 +9,32 @@ record (longin, "$(P)$(R)P001:M")
|
|||||||
field (INP, "@pfeiffer.proto getPressure001($(P)$(R)P001:E) $(bus)")
|
field (INP, "@pfeiffer.proto getPressure001($(P)$(R)P001:E) $(bus)")
|
||||||
# field (SCAN, "I/O Intr")
|
# field (SCAN, "I/O Intr")
|
||||||
field (SCAN, "1 second")
|
field (SCAN, "1 second")
|
||||||
field (FLNK, "$(P)$(R)TMPump1-PressureAdmission")
|
field(PHAS, "1")
|
||||||
|
field (FLNK, "$(P)$(R)VVessel-Pressure")
|
||||||
}
|
}
|
||||||
record (longin, "$(P)$(R)P001:E")
|
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 (DESC, "ISTTOK:central:VVessel-Pressure")
|
||||||
field(INPA, "$(P)$(R)P001:M")
|
# Maximize Status and Severity, MSS propagate all alarms
|
||||||
|
field(INPA, "$(P)$(R)P001:M MSS")
|
||||||
field(INPB, "$(P)$(R)P001:E")
|
field(INPB, "$(P)$(R)P001:E")
|
||||||
field(CALC, "(A*0.001)* 10.0**(B-20)")
|
field(CALC, "(A*0.001)* 10.0**(B-20)")
|
||||||
field(PREC, "3")
|
field(PREC, "3")
|
||||||
field(EGU, "mBar")
|
field(EGU, "mBar")
|
||||||
field(HIHI,"1.0e-2")
|
field(HIHI,"1.0e-2")
|
||||||
field(HIGH,"1.0e-3")
|
field(HIGH,"1.0e-3")
|
||||||
|
field(LOW,"1.0e-9")
|
||||||
|
field(LOLO,"0.5e-9")
|
||||||
# field(LOW, "20.0")
|
# field(LOW, "20.0")
|
||||||
# field(LOLO,"0.0")
|
# field(LOLO,"0.0")
|
||||||
field(HHSV,"MAJOR")
|
field(HHSV,"MAJOR")
|
||||||
field(HSV, "MINOR")
|
field(HSV, "MINOR")
|
||||||
# field(LSV, "MINOR")
|
field(LSV, "MINOR")
|
||||||
# field(LLSV,"MAJOR")
|
field(LLSV,"MAJOR")
|
||||||
}
|
}
|
||||||
# out "0020074002=?107";
|
# out "0020074002=?107";
|
||||||
record (longin, "$(P)$(R)P002:M")
|
record (longin, "$(P)$(R)P002:M")
|
||||||
@@ -39,6 +44,7 @@ record (longin, "$(P)$(R)P002:M")
|
|||||||
field (INP, "@pfeiffer.proto getPressure002($(P)$(R)P002:E) $(bus)")
|
field (INP, "@pfeiffer.proto getPressure002($(P)$(R)P002:E) $(bus)")
|
||||||
# field (SCAN, "I/O Intr")
|
# field (SCAN, "I/O Intr")
|
||||||
field (SCAN, "1 second")
|
field (SCAN, "1 second")
|
||||||
|
field(PHAS, "0")
|
||||||
field (FLNK, "$(P)$(R)RPump1-Pressure")
|
field (FLNK, "$(P)$(R)RPump1-Pressure")
|
||||||
}
|
}
|
||||||
record (longin, "$(P)$(R)P002:E")
|
record (longin, "$(P)$(R)P002:E")
|
||||||
@@ -48,7 +54,7 @@ record (longin, "$(P)$(R)P002:E")
|
|||||||
record (calc, "$(P)$(R)RPump1-Pressure")
|
record (calc, "$(P)$(R)RPump1-Pressure")
|
||||||
{
|
{
|
||||||
field (DESC, "ISTTOK:central:RPump1-Pressure")
|
field (DESC, "ISTTOK:central:RPump1-Pressure")
|
||||||
field(INPA, "$(P)$(R)P002:M")
|
field(INPA, "$(P)$(R)P002:M MSS")
|
||||||
field(INPB, "$(P)$(R)P002:E")
|
field(INPB, "$(P)$(R)P002:E")
|
||||||
field(CALC, "(A*0.001)*10.0**(B-20)")
|
field(CALC, "(A*0.001)*10.0**(B-20)")
|
||||||
field(PREC, "3")
|
field(PREC, "3")
|
||||||
@@ -70,26 +76,32 @@ record (longin, "$(P)$(R)P003:M")
|
|||||||
field (DTYP, "stream")
|
field (DTYP, "stream")
|
||||||
field (INP, "@pfeiffer.proto getPressure003($(P)$(R)P003:E) $(bus)")
|
field (INP, "@pfeiffer.proto getPressure003($(P)$(R)P003:E) $(bus)")
|
||||||
field (SCAN, "1 second")
|
field (SCAN, "1 second")
|
||||||
|
field(PHAS, "2")
|
||||||
# field (SCAN, "I/O Intr")
|
# field (SCAN, "I/O Intr")
|
||||||
field (FLNK, "$(P)$(R)VVessel-Pressure")
|
field (FLNK, "$(P)$(R)TMPump1-PressureAdmission")
|
||||||
}
|
}
|
||||||
|
|
||||||
record (longin, "$(P)$(R)P003:E")
|
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(DESC, "ISTTOK:central:TMPump1-PressureAdmission")
|
||||||
field(INPA, "$(P)$(R)P003:M")
|
field(INPA, "$(P)$(R)P003:M MSS")
|
||||||
field(INPB, "$(P)$(R)P003:E")
|
field(INPB, "$(P)$(R)P003:E")
|
||||||
field(CALC, "(A*0.001)*10.0**(B-20)")
|
field(CALC, "(A*0.001)*10.0**(B-20)")
|
||||||
field(PREC, "3")
|
field(PREC, "3")
|
||||||
field(EGU, "mBar")
|
field(EGU, "mBar")
|
||||||
field(HIHI,"1.0e-1")
|
field(HIHI,"1.0e-1")
|
||||||
field(HIGH,"1.0e-2")
|
field(HIGH,"1.0e-2")
|
||||||
|
field(LOW,"1.0e-9")
|
||||||
|
field(LOLO,"0.5e-9")
|
||||||
field(HHSV,"MAJOR")
|
field(HHSV,"MAJOR")
|
||||||
field(HSV, "MINOR")
|
field(HSV, "MINOR")
|
||||||
|
field(LSV, "MINOR")
|
||||||
|
field(LLSV,"MAJOR")
|
||||||
}
|
}
|
||||||
|
|
||||||
# out "0040074002=?109";
|
# out "0040074002=?109";
|
||||||
@@ -111,7 +123,7 @@ record (longin, "$(P)$(R)P004:E")
|
|||||||
record (calc, "$(P)$(R)RPump2-Pressure")
|
record (calc, "$(P)$(R)RPump2-Pressure")
|
||||||
{
|
{
|
||||||
field(DESC, "ISTTOK:central:RPump2-Pressure")
|
field(DESC, "ISTTOK:central:RPump2-Pressure")
|
||||||
field(INPA, "$(P)$(R)P004:M")
|
field(INPA, "$(P)$(R)P004:M MSS")
|
||||||
field(INPB, "$(P)$(R)P004:E")
|
field(INPB, "$(P)$(R)P004:E")
|
||||||
field(CALC, "(A*0.001)* 10.0**(B-20)")
|
field(CALC, "(A*0.001)* 10.0**(B-20)")
|
||||||
field(PREC, "3")
|
field(PREC, "3")
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
|
# vim: sta:et:sw=4:ts=4:sts=4
|
||||||
#
|
#
|
||||||
# Project : ISTTOK slow Control
|
# Project : ISTTOK slow Control
|
||||||
#
|
#
|
||||||
@@ -31,6 +32,8 @@ record(mbbi, "$(P)$(R)OPSTATE") {
|
|||||||
field(SXST, "Emergency")
|
field(SXST, "Emergency")
|
||||||
field(SVST, "UPSEmergency")
|
field(SVST, "UPSEmergency")
|
||||||
field(VAL, "0")
|
field(VAL, "0")
|
||||||
|
field(FLNK, "$(P)$(R)OPCALCSTATE")
|
||||||
|
#field(PINI, "YES")
|
||||||
}
|
}
|
||||||
record(mbbo, "$(P)$(R)LASTOPSTATE") {
|
record(mbbo, "$(P)$(R)LASTOPSTATE") {
|
||||||
info(autosaveFields, "VAL")
|
info(autosaveFields, "VAL")
|
||||||
@@ -51,14 +54,16 @@ record(mbbo, "$(P)$(R)LASTOPSTATE") {
|
|||||||
field(FVST, "Stopping")
|
field(FVST, "Stopping")
|
||||||
field(SXST, "Emergency")
|
field(SXST, "Emergency")
|
||||||
field(SVST, "UPSEmergency")
|
field(SVST, "UPSEmergency")
|
||||||
|
field(PINI, "YES")
|
||||||
# field(VAL, "0")
|
# field(VAL, "0")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# record for bit leds
|
||||||
record(calc, "$(P)$(R)OPCALCSTATE") {
|
record(calc, "$(P)$(R)OPCALCSTATE") {
|
||||||
field(DESC, "Pulse Calculated State")
|
field(DESC, "Pulse Calculated State")
|
||||||
field(CALC,"2^A")
|
field(CALC,"2^A")
|
||||||
field(SCAN,"1 second")
|
#field(SCAN,"1 second")
|
||||||
field(INPA,"$(P)$(R)OPSTATE.VAL PP NMS")
|
field(INPA,"$(P)$(R)OPSTATE.VAL NPP NMS")
|
||||||
}
|
}
|
||||||
|
|
||||||
record(calc, "$(P)$(R)STARTCALCSTATE") {
|
record(calc, "$(P)$(R)STARTCALCSTATE") {
|
||||||
@@ -100,24 +105,27 @@ record(bo, "$(P)$(R)UPS-OnBattery") {
|
|||||||
info(autosaveFields, "VAL STAT")
|
info(autosaveFields, "VAL STAT")
|
||||||
field(DESC, "Main APC UPS On Battery status")
|
field(DESC, "Main APC UPS On Battery status")
|
||||||
field(VAL, "0")
|
field(VAL, "0")
|
||||||
|
field(PINI, "YES")
|
||||||
field(ZNAM, "OFF")
|
field(ZNAM, "OFF")
|
||||||
field(ONAM, "ON")
|
field(ONAM, "ON")
|
||||||
field(OSV, "MAJOR")
|
field(OSV, "MAJOR")
|
||||||
}
|
}
|
||||||
|
|
||||||
record(bo, "$(P)$(R)UPS-Shutdown") {
|
record(bo, "$(P)$(R)UPS-Shutdown") {
|
||||||
info(autosaveFields, "VAL STAT")
|
# info(autosaveFields, "VAL STAT")
|
||||||
field(DESC, "Main APC UPS Shutdown request")
|
field(DESC, "Main APC UPS Shutdown request")
|
||||||
# field(VAL, "0")
|
field(VAL, "0")
|
||||||
field(ZNAM, "OFF")
|
field(ZNAM, "OFF")
|
||||||
field(ONAM, "ON")
|
field(ONAM, "ON")
|
||||||
field(OSV, "MAJOR")
|
field(OSV, "MAJOR")
|
||||||
|
field(PINI, "YES")
|
||||||
}
|
}
|
||||||
|
|
||||||
record(bo, "$(P)$(R)OPREQ") {
|
record(bo, "$(P)$(R)OPREQ") {
|
||||||
info(autosaveFields, "VAL")
|
info(autosaveFields, "VAL")
|
||||||
field(DESC, "Pulse Sequence Start/Stop")
|
field(DESC, "Pulse Sequence Start/Stop")
|
||||||
# field(VAL, "0")
|
# field(VAL, "0")
|
||||||
|
field(PINI, "YES")
|
||||||
field(ZNAM, "STOP")
|
field(ZNAM, "STOP")
|
||||||
field(ONAM, "START")
|
field(ONAM, "START")
|
||||||
}
|
}
|
||||||
@@ -135,6 +143,7 @@ record(bo, "$(P)$(R)CLEANINGMANMODE") {
|
|||||||
record(bo, "$(P)$(R)FSTriggerStart") {
|
record(bo, "$(P)$(R)FSTriggerStart") {
|
||||||
field(DESC, "FireSignal Trigger Start")
|
field(DESC, "FireSignal Trigger Start")
|
||||||
field(VAL, "0")
|
field(VAL, "0")
|
||||||
|
field(PINI, "YES")
|
||||||
field(ZNAM, "STOP")
|
field(ZNAM, "STOP")
|
||||||
field(ONAM, "START")
|
field(ONAM, "START")
|
||||||
}
|
}
|
||||||
@@ -143,6 +152,7 @@ record(bo, "$(P)$(R)PROCESS-MODE") {
|
|||||||
info(autosaveFields, "VAL")
|
info(autosaveFields, "VAL")
|
||||||
field(DESC, "Plasma Process Mode")
|
field(DESC, "Plasma Process Mode")
|
||||||
#field(VAL, "0")
|
#field(VAL, "0")
|
||||||
|
#field(PINI, "YES")
|
||||||
field(ZNAM, "CLEAN")
|
field(ZNAM, "CLEAN")
|
||||||
field(ONAM, "SHOT")
|
field(ONAM, "SHOT")
|
||||||
}
|
}
|
||||||
@@ -150,8 +160,11 @@ record(bo, "$(P)$(R)PROCESS-MODE") {
|
|||||||
record(bo, "$(P)$(R)PROCESS-REQ") {
|
record(bo, "$(P)$(R)PROCESS-REQ") {
|
||||||
field(DESC, "Plasma Process sub-states Start/Stop")
|
field(DESC, "Plasma Process sub-states Start/Stop")
|
||||||
field(VAL, "0")
|
field(VAL, "0")
|
||||||
|
field(PINI, "YES")
|
||||||
field(ZNAM, "STOP")
|
field(ZNAM, "STOP")
|
||||||
field(ONAM, "START")
|
field(ONAM, "START")
|
||||||
|
field(SCAN,"Passive")
|
||||||
|
field(FLNK, "$(P)$(R)PULSE-NUMBER")
|
||||||
}
|
}
|
||||||
|
|
||||||
record(bo, "$(P)$(R)AUTHORISATION") {
|
record(bo, "$(P)$(R)AUTHORISATION") {
|
||||||
@@ -161,15 +174,23 @@ record(bo, "$(P)$(R)AUTHORISATION") {
|
|||||||
field(VAL, "0")
|
field(VAL, "0")
|
||||||
}
|
}
|
||||||
|
|
||||||
record(longout, "$(P)$(R)PULSE-NUMBER") {
|
record(calc, "$(P)$(R)PULSE-NUMBER") {
|
||||||
info(autosaveFields, "VAL")
|
info(autosaveFields, "VAL")
|
||||||
field(DESC, "Pulse Number")
|
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") {
|
record(calc, "$(P)$(R)COUNTDOWN") {
|
||||||
field(DESC, "Countdown Increment")
|
field(DESC, "Countdown Increment")
|
||||||
field(INPA,"$(P)$(R)COUNTDOWN")
|
field(INPA,"$(P)$(R)COUNTDOWN")
|
||||||
field(SCAN,"Passive")
|
field(DISA,"1")
|
||||||
|
#field(SCAN,"Passive")
|
||||||
|
field(SCAN,"1 second")
|
||||||
field(CALC,"A+1")
|
field(CALC,"A+1")
|
||||||
field(VAL, "160")
|
field(VAL, "160")
|
||||||
}
|
}
|
||||||
@@ -185,7 +206,7 @@ record(stringin, "$(P)$(R)CurrentTime") {
|
|||||||
field(DESC, "Current Date and Time of the IOC")
|
field(DESC, "Current Date and Time of the IOC")
|
||||||
field(SCAN, "1 second")
|
field(SCAN, "1 second")
|
||||||
field(DTYP, "Soft Timestamp")
|
field(DTYP, "Soft Timestamp")
|
||||||
field(PINI, "YES")
|
#field(PINI, "YES")
|
||||||
field(INP, "@%d/%m/%Y %H:%M:%S")
|
field(INP, "@%d/%m/%Y %H:%M:%S")
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -224,12 +245,14 @@ record(mbbi, "$(P)$(R)CLEANINGSTATE") {
|
|||||||
field(THVL, "3")
|
field(THVL, "3")
|
||||||
field(FRVL, "4")
|
field(FRVL, "4")
|
||||||
field(FVVL, "5")
|
field(FVVL, "5")
|
||||||
|
field(SXVL, "6")
|
||||||
field(ZRST, "NonCleaning")
|
field(ZRST, "NonCleaning")
|
||||||
field(ONST, "Cleaning1")
|
field(ONST, "Cleaning1")
|
||||||
field(TWST, "Cleaning2")
|
field(TWST, "Cleaning2")
|
||||||
field(THST, "Cleaning3")
|
field(THST, "Cleaning3")
|
||||||
field(FRST, "Cleaning4")
|
field(FRST, "Cleaning4")
|
||||||
field(FVST, "Cleaning5")
|
field(FVST, "Cleaning5")
|
||||||
|
field(SXST, "Cleaning6")
|
||||||
field(VAL, "0")
|
field(VAL, "0")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,11 +11,13 @@ DB += ISTTOKpcf8591.db
|
|||||||
DB += ISTTOKpfeiffer.db
|
DB += ISTTOKpfeiffer.db
|
||||||
DB += ISTTOKtda8444.db
|
DB += ISTTOKtda8444.db
|
||||||
DB += sendmail.db
|
DB += sendmail.db
|
||||||
|
DB += seeed4relay.db
|
||||||
DB += pcf8591.proto
|
DB += pcf8591.proto
|
||||||
DB += tda8444.proto
|
DB += tda8444.proto
|
||||||
DB += sendmail.proto
|
DB += sendmail.proto
|
||||||
DB += pcf8574.proto
|
DB += pcf8574.proto
|
||||||
DB += pfeiffer.proto
|
DB += pfeiffer.proto
|
||||||
|
DB += seeed4relay.proto
|
||||||
|
|
||||||
# If <anyname>.db template is not named <anyname>*.template add
|
# If <anyname>.db template is not named <anyname>*.template add
|
||||||
# <anyname>_TEMPLATE = <templatename>
|
# <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)
|
||||||
# CR and LF are control characters, respectively coded 0x0D (13 decimal) and 0x0A (10 decimal)
|
MaxInput = 20;
|
||||||
MaxInput = 30;
|
|
||||||
ExtraInput = Ignore;
|
ExtraInput = Ignore;
|
||||||
|
|
||||||
# Values in millisecond
|
# Values in millisecond
|
||||||
LockTimeout = 1000;
|
LockTimeout = 500;
|
||||||
# Affects first out command in a protocol.
|
# Affects first out command in a protocol.
|
||||||
# If other records currently use the device, how many milliseconds to wait for
|
# If other records currently use the device, how many milliseconds to wait for
|
||||||
# exclusive access to the device before giving up?
|
# exclusive access to the device before giving up?
|
||||||
|
|
||||||
#ReadTimeout = 1500;
|
#ReadTimeout = 1500;
|
||||||
|
|
||||||
ReplyTimeout = 400;
|
ReplyTimeout = 300;
|
||||||
|
|
||||||
#PollPeriod = $ReplyTimeout;
|
#PollPeriod = $ReplyTimeout;
|
||||||
#Integer. Affects first in command in I/O Intr mode (see chapter Record Processing).
|
#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 {
|
send {
|
||||||
mail_start;
|
mail_start;
|
||||||
out "Problem is: %s\n";
|
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;
|
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:LogMessage.VAL
|
||||||
|
|
||||||
ISTTOK:central:LASTOPSTATE.VAL
|
ISTTOK:central:LASTOPSTATE.VAL
|
||||||
ISTTOK:central:OPREQ
|
ISTTOK:central:OPREQ.VAL
|
||||||
ISTTOK:central:PROCESS-MODE.VAL
|
ISTTOK:central:PROCESS-MODE.VAL
|
||||||
ISTTOK:central:CLEANINGMANMODE.VAL
|
ISTTOK:central:CLEANINGMANMODE.VAL
|
||||||
|
|
||||||
ISTTOK:central:Emergency-UserButton.VAL
|
ISTTOK:central:Emergency-UserButton.VAL
|
||||||
ISTTOK:central:TMPump1-ManualValve.VAL
|
ISTTOK:central:TMPump1-ManualValve.VAL
|
||||||
ISTTOK:central:Shot-TorPSCurrent
|
ISTTOK:central:Shot-TorPSCurrent
|
||||||
ISTTOK:central:UPS-Shutdown
|
#ISTTOK:central:UPS-Shutdown
|
||||||
|
|
||||||
#ALARM Limits
|
#ALARM Limits
|
||||||
ISTTOK:central:RPump1-Pressure.HIGH
|
$(P)$(R)RPump1-Pressure.HIGH
|
||||||
ISTTOK:central:RPump1-Pressure.HIHI
|
ISTTOK:central:RPump1-Pressure.HIHI
|
||||||
#ISTTOK:central:RPump2-Pressure.HIGH
|
#ISTTOK:central:RPump2-Pressure.HIGH
|
||||||
#ISTTOK:central:RPump2-Pressure.HIHI
|
#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-Power
|
||||||
ISTTOK:central:TMPump1-Emergency
|
ISTTOK:central:TMPump1-Emergency
|
||||||
ISTTOK:central:TMPump1-Acceleration
|
ISTTOK:central:TMPump1-Acceleration
|
||||||
@@ -6,6 +91,26 @@ ISTTOK:central:TMPump2-Emergency
|
|||||||
ISTTOK:central:TMPump2-Acceleration
|
ISTTOK:central:TMPump2-Acceleration
|
||||||
ISTTOK:central:TTSystem-tzero
|
ISTTOK:central:TTSystem-tzero
|
||||||
ISTTOK:central:Emergency-PhysButton
|
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-OnBattery
|
||||||
ISTTOK:central:UPS-Shutdown
|
ISTTOK:central:UPS-Shutdown
|
||||||
ISTTOK:central:OPREQ
|
ISTTOK:central:OPREQ
|
||||||
@@ -41,117 +146,14 @@ ISTTOK:SR_heartbeat
|
|||||||
ISTTOK:SR_i_am_alive
|
ISTTOK:SR_i_am_alive
|
||||||
ISTTOK:SR_deadIfZero
|
ISTTOK:SR_deadIfZero
|
||||||
ISTTOK:SR_disable
|
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:56:REGISTER
|
||||||
ISTTOK:central:PCF8574:57:REGISTER
|
ISTTOK:central:PCF8574:57:REGISTER
|
||||||
ISTTOK:central:PCF8574:60:REGISTER
|
ISTTOK:central:PCF8574:60:REGISTER
|
||||||
ISTTOK:central:PCF8574:61:REGISTER
|
ISTTOK:central:PCF8574:61:REGISTER
|
||||||
ISTTOK:central:PCF8591:72:CTRLREGISTER
|
ISTTOK:central:PCF8591:72:CTRLREGISTER
|
||||||
ISTTOK:central:CurrentTime
|
ISTTOK:central:SEEED4RELAY:17:REGISTER
|
||||||
ISTTOK:central:PCF8591:72:ADC_CH1
|
ISTTOK:central:OPSTATE
|
||||||
ISTTOK:central:PCF8591:72:ADC_CH2
|
ISTTOK:central:STARTINGSTATE
|
||||||
ISTTOK:central:PCF8591:72:ADC_CH3
|
ISTTOK:central:CLEANINGSTATE
|
||||||
ISTTOK:central:P001:M
|
ISTTOK:central:WSHOTINGSTATE
|
||||||
ISTTOK:central:P001:E
|
ISTTOK:central:STOPPINGSTATE
|
||||||
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
|
|
||||||
|
|||||||
@@ -1,14 +1,13 @@
|
|||||||
# autosave R5.3 Automatically generated - DO NOT MODIFY - 211214-141949
|
# autosave R5.3 Automatically generated - DO NOT MODIFY - 211215-181848
|
||||||
ISTTOK:central:PULSE-NUMBER.VAL 0
|
ISTTOK:central:PULSE-NUMBER.VAL 49461
|
||||||
ISTTOK:central:LogMessage.VAL
|
ISTTOK:central:LogMessage.VAL
|
||||||
ISTTOK:central:LASTOPSTATE.VAL 5
|
ISTTOK:central:LASTOPSTATE.VAL 2
|
||||||
ISTTOK:central:OPREQ 0
|
ISTTOK:central:OPREQ.VAL 1
|
||||||
ISTTOK:central:PROCESS-MODE.VAL 0
|
ISTTOK:central:PROCESS-MODE.VAL 0
|
||||||
ISTTOK:central:CLEANINGMANMODE.VAL 0
|
ISTTOK:central:CLEANINGMANMODE.VAL 0
|
||||||
ISTTOK:central:Emergency-UserButton.VAL 0
|
ISTTOK:central:Emergency-UserButton.VAL 0
|
||||||
ISTTOK:central:TMPump1-ManualValve.VAL 1
|
ISTTOK:central:TMPump1-ManualValve.VAL 1
|
||||||
ISTTOK:central:Shot-TorPSCurrent 32
|
ISTTOK:central:Shot-TorPSCurrent 32
|
||||||
ISTTOK:central:UPS-Shutdown 0
|
|
||||||
ISTTOK:central:RPump1-Pressure.HIGH 0.05
|
ISTTOK:central:RPump1-Pressure.HIGH 0.05
|
||||||
ISTTOK:central:RPump1-Pressure.HIHI 0.1
|
ISTTOK:central:RPump1-Pressure.HIHI 0.1
|
||||||
<END>
|
<END>
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ dbLoadDatabase "dbd/ISTTOKrpi.dbd"
|
|||||||
ISTTOKrpi_registerRecordDeviceDriver pdbbase
|
ISTTOKrpi_registerRecordDeviceDriver pdbbase
|
||||||
|
|
||||||
## Load I2C drivers
|
## Load I2C drivers
|
||||||
|
# *** IMPORTANT: Compile drvAsynI2C with flag STREAM_WORKAROUND = 1
|
||||||
drvAsynI2CConfigure( "I2C", "/dev/i2c-1", 1 )
|
drvAsynI2CConfigure( "I2C", "/dev/i2c-1", 1 )
|
||||||
|
|
||||||
## Load record instances
|
## 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/ISTTOKpcf8591.db","P=ISTTOK:,R=central:,BUS=I2C")
|
||||||
dbLoadRecords("db/ISTTOKtda8444.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:")
|
dbLoadRecords("db/ISTTOKmachineControl.db","P=ISTTOK:,R=central:")
|
||||||
|
## SEEED RELAY BOARD
|
||||||
|
dbLoadRecords("db/seeed4relay.db","P=ISTTOK:,R=central:,A=17")
|
||||||
|
|
||||||
## Load Serial drivers
|
## Load Serial drivers
|
||||||
#drvAsynSerialPortConfigure("RS0","/dev/ttyAMA0")
|
#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>
|
# 2021/12/14 13:11:50.019969 RS0 ISTTOK:central:P002:M: No reply within 200 ms to "0020074002=?107<0d>
|
||||||
#var streamError 1
|
#var streamError 1
|
||||||
#with this no errors on pfeiffer bus
|
#with this no errors on pfeiffer bus
|
||||||
var streamDebug 1
|
#var streamDebug 1
|
||||||
streamSetLogfile("logfile.txt")
|
#streamSetLogfile("logfile.txt")
|
||||||
|
|
||||||
## Run this to trace the stages of iocInit
|
## Run this to trace the stages of iocInit
|
||||||
#traceIocInit
|
#traceIocInit
|
||||||
@@ -70,11 +73,11 @@ asSetFilename("${TOP}/iocBoot/${IOC}/access_security.acf")
|
|||||||
|
|
||||||
iocInit
|
iocInit
|
||||||
|
|
||||||
#asInit
|
asInit
|
||||||
|
|
||||||
# Create request file and start periodic 'save’
|
# Create request file and start periodic 'save’
|
||||||
# makeAutosaveFileFromDbInfo("$(SAVE_DIR)/$(IOC).req", "autosaveFields")
|
# 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
|
## Start any sequence programs , use safe mode
|
||||||
seq IsttokSeqExec "unit=ISTTOK"
|
seq IsttokSeqExec "unit=ISTTOK"
|
||||||
|
|||||||
Reference in New Issue
Block a user