|
Subject: |
Re: Support for Pfeiffer HiPace with TC400 control unit |
|
From: |
Florian Feldbauer via Tech-talk <[email protected]> |
|
To: |
[email protected] |
|
Date: |
Tue, 9 Dec 2025 14:56:07 +0100 |
Hey Heinz,
sometime ago I wrote a generic protocol file for Pfeiffer Vacuum devices.
We use this protocol for our digital vacuum gauges as well as our turbo
pumps.
Attached is my DB and proto files.
HTH,
Florian
On 12/9/25 13:40, Heinz Junkes (FHI) via Tech-talk wrote:
Hi,
I am looking for device support (db, proto) for Pfeifer Turbopump HiPace with TC400 control unit.
Danke Heinz
------------------------------------------------------------------------------
Fritz-Haber-Institut | Phone: (+49 30) 8413-4270
Heinz Junkes | VC: https://urldefense.us/v3/__https://zoom.fhi.berlin/junkes__;!!G_uCfscf7eWS!bkS3Wy3BeGemnQUbNfRJmV7moXTQsV2X0cxP6JxSK84vvNTGrYHDp5_CmTW0Lou2AkuK82Hx9-Xhr3ZE1rSDPYMQruoI$
Faradayweg 4-6 | Visitors: Hittorfstrasse 29 (Bld S (Slough House) )
D - 14195 Berlin
------------------------------------------------------------------------------
“Sorry I’m a bit late, had a terrible time…
All sort of things cropping up at the last moment. Uh, how are we for time?”
—Zarquon's address to Milliways
--
Ruhr-Universität Bochum
AG der Experimentalphysik I
Dr. Florian Feldbauer
NB 2/131 / Fach 125
Universitätsstr. 150
D-44801 Bochum
Office: NB 2/134
Phone: (+49)234 / 32-23563
Fax: (+49)234 / 32-14170
https://urldefense.us/v3/__https://paluma.ruhr-uni-bochum.de__;!!G_uCfscf7eWS!frIie2W9R3ok_C8n7qQx4UI66t9aZwbmZrn1wEyeIVnZdBDauuJ-opHNinwAlSaQqRHpqp5vYNaauGar4FwH4XVkJz0yAJuw3xg$
#################################################
# ### ### #
# ### StreamDevice Protocol for ### #
# ### Pfeiffer Vacuum Protocol ### #
# ### ### #
# ### author: F.Feldbauer ### #
# ### ### #
# ### Ref 1.0; 2020-10-29 ### #
#################################################
###################
# ### Globals ### #
###################
Terminator = CR;
LockTimeout = 5000;
ReplyTimeout = 500;
ReadTimeout = 500;
WriteTimeout = 300;
ExtraInput = Ignore;
#####################
# ### Protocols ### #
#####################
readBoolOld {
# read old boolean format (Pfeiffer data type 0) from device
# Example of command:
# field (INP, "@pfeiffer_tc400.proto readBoolOld($(ADD),$(OPCODE)) $(PORT)")
out "\${1}00\${2}02=?%+<sum8>";
in "\${1}10\${2}06%{000000|111111}%+<sum8>";
}
readInt {
# read integer (Pfeiffer data type 1/2) from device
# Example of command:
# field (INP, "@pfeiffer_tc400.proto readInt($(ADD),$(OPCODE)) $(PORT)")
out "\${1}00\${2}02=?%+<sum8>";
in "\${1}10\${2}06%06u%+<sum8>";
}
readExpo {
# read exponential (Pfeiffer data type 3) from device
# Example of command:
# field (INP, "@pfeiffer_tc400.proto readExpo($(ADD),$(OPCODE)) $(PORT)")
out "\${1}00\${2}02=?%+<sum8>";
in "\${1}10\${2}06%?6E%+<sum8>";
@mismatch{
in "\${1}10\${2}06> %03E%+<sum8>";
}
}
readString {
# read string (Pfeiffer data type 4) from device
# Example of command:
# field (INP, "@pfeiffer_tc400.proto readString($(ADD),$(OPCODE)) $(PORT)")
out "\${1}00\${2}02=?%+<sum8>";
in "\${1}10\${2}06%#6s%+<sum8>";
}
readBoolNew {
# read new boolean format (Pfeiffer data type 6) from device
# Example of command:
# field (INP, "@pfeiffer_tc400.proto readBoolNew($(ADD),$(OPCODE)) $(PORT)")
out "\${1}00\${2}02=?%+<sum8>";
in "\${1}10\${2}01%{0|1}%+<sum8>";
}
readShort {
# read short int (Pfeiffer data type 7) from device
# Example of command:
# field (INP, "@pfeiffer_tc400.proto readShort($(ADD),$(OPCODE)) $(PORT)")
out "\${1}00\${2}02=?%+<sum8>";
in "\${1}10\${2}03%03u%+<sum8>";
}
readExpoNew {
# read exponential (Pfeiffer data type 10) from device
# Example of command:
# field (INP, "@pfeiffer_tc400.proto readShort($(ADD),$(OPCODE)) $(PORT)")
out "\${1}00\${2}02=?%+<sum8>";
in "\${1}10\${2}06%04u%(\${3})02u%+<sum8>";
}
readLongString {
# read string (Pfeiffer data type 11) from device
# Example of command:
# field (INP, "@pfeiffer_tc400.proto readShort($(ADD),$(OPCODE)) $(PORT)")
out "\${1}00\${2}02=?%+<sum8>";
in "\${1}10\${2}16%#16s%+<sum8>";
}
writeBoolOld {
# write old boolean format (Pfeiffer data type 0) to device
# Example of command:
# field( OUT, "@pfeiffer_vacuum.proto writeBoolOld($(ADD),$(OPCODE)) $(PORT)" )
out "\${1}10\${2}06%{000000|111111}%+<sum8>";
in "\${1}10\${2}06%={000000|111111}%+<sum8>";
@init{ readBoolOld; }
@replytimeout{ readBoolOld; }
}
writeBoolOldNR {
# write old boolean format (Pfeiffer data type 0) to device
# This is the same as writeBoolOld without initialization (for write only parameters)
# Example of command:
# field( OUT, "@pfeiffer_vacuum.proto writeBoolOld($(ADD),$(OPCODE)) $(PORT)" )
out "\${1}10\${2}06%{000000|111111}%+<sum8>";
in "\${1}10\${2}06%={000000|111111}%+<sum8>";
}
writeInt {
# write integer (Pfeiffer data type 1/2) to device
# Example of command:
# field( OUT, "@pfeiffer_vacuum.proto writeInt($(ADD),$(OPCODE)) $(PORT)" )
out "\${1}10\${2}06%06u%+<sum8>";
in "\${1}10\${2}06%=06u%+<sum8>";
@init{ readInt; }
@replytimeout{ readInt; }
}
writeString {
# write string (Pfeiffer data type 4) to device
# Example of command:
# field( OUT, "@pfeiffer_vacuum.proto writeString($(ADD),$(OPCODE)) $(PORT)" )
out "\${1}10\${2}06%#06s%+<sum8>";
in "\${1}10\${2}06%=#06s%+<sum8>";
@init{ readString; }
@replytimeout{ readString; }
}
writeBoolNew {
# write new boolean format (Pfeiffer data type 6) to device
# Example of command:
# field( OUT, "@pfeiffer_vacuum.proto writeBoolNew($(ADD),$(OPCODE)) $(PORT)" )
out "\${1}10\${2}01%{0|1}%+<sum8>";
in "\${1}10\${2}01%={0|1}%+<sum8>";
@init{ readBoolNew; }
@replytimeout{ readBoolNew; }
}
writeShort {
# write short integer (Pfeiffer data type 7) to device
# Example of command:
# field( OUT, "@pfeiffer_vacuum.proto writeBoolNew($(ADD),$(OPCODE)) $(PORT)" )
out "\${1}10\${2}03%03u%+<sum8>";
in "\${1}10\${2}03%=03u%+<sum8>";
@init{ readShort; }
@replytimeout{ readShort; }
}
writeShortNR {
# write short integer (Pfeiffer data type 7) to device
# This is the same as writeShort without initialization (for write only parameters)
# Example of command:
# field( OUT, "@pfeiffer_vacuum.proto writeBoolNew($(ADD),$(OPCODE)) $(PORT)" )
out "\${1}10\${2}03%03u%+<sum8>";
in "\${1}10\${2}03%=03u%+<sum8>";
}
writeLongString {
# write string (Pfeiffer data type 11) to device
# Example of command:
# field( OUT, "@pfeiffer_vacuum.proto writeLongString($(ADD),$(OPCODE)) $(PORT)" )
out "\${1}10\${2}16%#16s%+<sum8>";
in "\${1}10\${2}16%=#16s%+<sum8>";
@init{ readLongString; }
@replytimeout{ readLongString; }
}
###########################################################
# ### ### #
# ### EPICS Database for ### #
# ### Pfeiffer TC400 pump controller ### #
# ### ### #
# ### author: F.Feldbauer ### #
# ### ### #
# ### Ref: 1.0; 2016-02-02 ### #
# ### ### #
# ### macros: H Header (e.g. 'PANDA:LMD') ### #
# ### N Name/Task (e.g. 'VACUUM:TP') ### #
# ### port Asyn Interface ### #
# ### ADD device Address ### #
###########################################################
## status queries
record( bi, "$(H):$(N):RemotePrio" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readBoolOld($(ADD),300) $(port)" )
# State strings
field( ZNAM, "no" )
field( ONAM, "yes" )
#
field( FLNK, "$(H):$(N):SpdSwPtAtt.PROC PP MS" )
}
record( bi, "$(H):$(N):SpdSwPtAtt" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readBoolOld($(ADD),302) $(port)" )
# State strings
field( ZNAM, "no" )
field( ONAM, "yes" )
#
field( FLNK, "$(H):$(N):ErrorCode.PROC PP MS" )
}
record( stringin, "$(H):$(N):ErrorCode" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),303) $(port)" )
#
field( FLNK, "$(H):$(N):OvTempElec.PROC PP MS" )
}
record( bi, "$(H):$(N):OvTempElec" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readBoolOld($(ADD),304) $(port)" )
# State strings
field( ZNAM, "NORM" )
field( ONAM, "ALERT" )
# State severities
field( ZSV, "NO_ALARM" )
field( OSV, "MAJOR" )
#
field( FLNK, "$(H):$(N):OvTempPump.PROC PP MS" )
}
record( bi, "$(H):$(N):OvTempPump" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readBoolOld($(ADD),305) $(port)" )
# State strings
field( ZNAM, "NORM" )
field( ONAM, "ALERT" )
# State severities
field( ZSV, "NO_ALARM" )
field( OSV, "MAJOR" )
#
field( FLNK, "$(H):$(N):SetSpdAtt.PROC PP MS" )
}
record( bi, "$(H):$(N):SetSpdAtt" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readBoolOld($(ADD),306) $(port)" )
# State strings
field( ZNAM, "no" )
field( ONAM, "yes" )
#
field( FLNK, "$(H):$(N):PumpAccel.PROC PP MS" )
}
record( bi, "$(H):$(N):PumpAccel" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readBoolOld($(ADD),307) $(port)" )
# State strings
field( ZNAM, "no" )
field( ONAM, "yes" )
#
field( FLNK, "$(H):$(N):SetRotSpd.PROC PP MS" )
}
record( longin, "$(H):$(N):SetRotSpd" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),308) $(port)" )
# display parameters
field( HOPR, "2000" )
field( LOPR, "0" )
field( EGU, "Hz" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
# Alarm parameters
field( HIHI, "1010" )
field( HIGH, "1005" )
field( LOW, "995" )
field( LOLO, "990" )
field( HHSV, "MAJOR" )
field( HSV, "MINOR" )
field( LSV, "MINOR" )
field( LLSV, "MAJOR" )
#
field( FLNK, "$(H):$(N):ActualSpd.PROC PP MS" )
}
record( longin, "$(H):$(N):ActualSpd" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),309) $(port)" )
# display parameters
field( HOPR, "2000" )
field( LOPR, "0" )
field( EGU, "Hz" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
# Alarm parameters
field( HIHI, "1010" )
field( HIGH, "1005" )
field( LOW, "-1" ) # set by FSM (to avoid alarms when starting)
field( LOLO, "-2" ) # set by FSM (to avoid alarms when starting)
field( HHSV, "MAJOR" )
field( HSV, "MINOR" )
field( LSV, "MINOR" )
field( LLSV, "MAJOR" )
#
field( FLNK, "$(H):$(N):DrvCurrent.PROC PP MS" )
}
record( ai, "$(H):$(N):DrvCurrent" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),310) $(port)" )
# conversion
field( ASLO, ".01" )
field( AOFF, "0." )
# display parameters
field( HOPR, "15" )
field( LOPR, "0" )
field( EGU, "A" )
field( PREC, "2" )
# thresholds
field( ADEL, "0.1" )
field( MDEL, "0" )
# Alarm parameters
field( HIHI, "14.5" )
field( HIGH, "14.0" )
field( LOW, "-1" ) # set by FSM (to avoid alarms when starting)
field( LOLO, "-2" ) # set by FSM (to avoid alarms when starting)
field( HHSV, "MAJOR" )
field( HSV, "MINOR" )
field( LSV, "MINOR" )
field( LLSV, "MAJOR" )
#
field( FLNK, "$(H):$(N):OpHrsPump.PROC PP MS" )
}
record( longin, "$(H):$(N):OpHrsPump" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),311) $(port)" )
# display parameters
field( EGU, "h" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
#
field( FLNK, "$(H):$(N):DrvVoltage.PROC PP MS" )
}
record( stringin, "$(H):$(N):FwVersion" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),312) $(port)" )
field( PINI, "YES" )
}
record( ai, "$(H):$(N):DrvVoltage" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),313) $(port)" )
# conversion
field( ASLO, ".01" )
field( AOFF, "0." )
# display parameters
field( EGU, "V" )
field( PREC, "2" )
# thresholds
field( ADEL, "1.0" )
field( MDEL, "0" )
#
field( FLNK, "$(H):$(N):OpHrsElec.PROC PP MS" )
}
record( longin, "$(H):$(N):OpHrsElec" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),314) $(port)" )
# display parameters
field( EGU, "h" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
#
field( FLNK, "$(H):$(N):NominalSpd.PROC PP MS" )
}
record( longin, "$(H):$(N):NominalSpd" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),315) $(port)" )
# display parameters
field( HOPR, "2000" )
field( LOPR, "0" )
field( EGU, "Hz" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
#
field( FLNK, "$(H):$(N):DrvPower.PROC PP MS" )
}
record( longin, "$(H):$(N):DrvPower" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),316) $(port)" )
# display parameters
field( EGU, "W" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
#
field( FLNK, "$(H):$(N):PumpCycles.PROC PP MS" )
}
record( longin, "$(H):$(N):PumpCycles" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),319) $(port)" )
# display parameters
field( EGU, "" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
#
field( FLNK, "$(H):$(N):TempElec.PROC PP MS" )
}
record( longin, "$(H):$(N):TempElec" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),326) $(port)" )
# display parameters
field( EGU, "°C" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
#
field( FLNK, "$(H):$(N):TempPmpBot.PROC PP MS" )
}
record( longin, "$(H):$(N):TempPmpBot" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),330) $(port)" )
# display parameters
field( EGU, "°C" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
#
field( FLNK, "$(H):$(N):AccelDecel.PROC PP MS" )
}
record( longin, "$(H):$(N):AccelDecel" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),336) $(port)" )
# display parameters
field( EGU, "rpm/s" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
#
field( FLNK, "$(H):$(N):SealGasFlw.PROC PP MS" )
}
record( longin, "$(H):$(N):SealGasFlw" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),337) $(port)" )
# display parameters
field( EGU, "sccm" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
#
field( FLNK, "$(H):$(N):TempBearng.PROC PP MS" )
}
record( longin, "$(H):$(N):TempBearng" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),342) $(port)" )
# display parameters
field( EGU, "°C" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
#
field( FLNK, "$(H):$(N):TempMotor.PROC PP MS" )
}
record( longin, "$(H):$(N):TempMotor" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),346) $(port)" )
# display parameters
field( EGU, "°C" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
#
field( FLNK, "$(H):$(N):ErrHist1.PROC PP MS" )
}
record( stringin, "$(H):$(N):ElecName" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),349) $(port)" )
field( PINI, "YES" )
}
record( stringin, "$(H):$(N):HwVersion" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),354) $(port)" )
field( PINI, "YES" )
}
record( stringin, "$(H):$(N):ErrHist1" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),360) $(port)" )
#
field( FLNK, "$(H):$(N):ErrHist2.PROC PP MS" )
}
record( stringin, "$(H):$(N):ErrHist2" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),361) $(port)" )
#
field( FLNK, "$(H):$(N):ErrHist3.PROC PP MS" )
}
record( stringin, "$(H):$(N):ErrHist3" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),362) $(port)" )
#
field( FLNK, "$(H):$(N):ErrHist4.PROC PP MS" )
}
record( stringin, "$(H):$(N):ErrHist4" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),363) $(port)" )
#
field( FLNK, "$(H):$(N):ErrHist5.PROC PP MS" )
}
record( stringin, "$(H):$(N):ErrHist5" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),364) $(port)" )
#
field( FLNK, "$(H):$(N):ErrHist6.PROC PP MS" )
}
record( stringin, "$(H):$(N):ErrHist6" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),365) $(port)" )
#
field( FLNK, "$(H):$(N):ErrHist7.PROC PP MS" )
}
record( stringin, "$(H):$(N):ErrHist7" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),366) $(port)" )
#
field( FLNK, "$(H):$(N):ErrHist8.PROC PP MS" )
}
record( stringin, "$(H):$(N):ErrHist8" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),367) $(port)" )
#
field( FLNK, "$(H):$(N):ErrHist9.PROC PP MS" )
}
record( stringin, "$(H):$(N):ErrHist9" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),368) $(port)" )
#
field( FLNK, "$(H):$(N):ErrHist10.PROC PP MS" )
}
record( stringin, "$(H):$(N):ErrHist10" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),369) $(port)" )
#
field( FLNK, "$(H):$(N):SetRotSpdRPM.PROC PP MS" )
}
record( longin, "$(H):$(N):SetRotSpdRPM" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),397) $(port)" )
field( PINI, "YES" )
# display parameters
field( EGU, "rpm" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
#
field( FLNK, "$(H):$(N):ActualSpdRPM.PROC PP MS" )
}
record( longin, "$(H):$(N):ActualSpdRPM" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),398) $(port)" )
# display parameters
field( EGU, "rpm" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
#
field( FLNK, "$(H):$(N):NominalSpdRPM.PROC PP MS" )
}
record( longin, "$(H):$(N):NominalSpdRPM" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readInt($(ADD),399) $(port)" )
# display parameters
field( EGU, "rpm" )
# thresholds
field( ADEL, "1" )
field( MDEL, "0" )
}
##--------------------------------------------------------------------------------
## Control commands
record( bo, "$(H):$(N):Heating" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeBoolOld($(ADD),001) $(port)" )
# State strings
field( ZNAM, "OFF" )
field( ONAM, "ON" )
}
record( bo, "$(H):$(N):Standby" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeBoolOld($(ADD),002) $(port)" )
# State strings
field( ZNAM, "OFF" )
field( ONAM, "ON" )
}
record( bo, "$(H):$(N):RUTimeCtrl" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeBoolOld($(ADD),004) $(port)" )
# State strings
field( ZNAM, "OFF" )
field( ONAM, "ON" )
}
record( bo, "$(H):$(N):ErrorAckn" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeBoolOldNR($(ADD),009) $(port)" )
}
record( bo, "$(H):$(N):PumpgStatn" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeBoolOld($(ADD),010) $(port)" )
# State strings
field( ZNAM, "OFF" )
field( ONAM, "ON" )
}
record( bo, "$(H):$(N):EnableVent" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeBoolOld($(ADD),012) $(port)" )
# State strings
field( ZNAM, "OFF" )
field( ONAM, "ON" )
}
record( bo, "$(H):$(N):CfgSpdSwPt" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),017) $(port)" )
# State strings
field( ZNAM, "Switchpoint 1" )
field( ONAM, "Switchpoint 1 & 2" )
}
#record( mbbo, "$(H):$(N):CfgDO1" ) {
#record( mbbo, "$(H):$(N):CfgDO2" ) {
#record( mbbo, "$(H):$(N):CfgRelR1" ) {
#record( mbbo, "$(H):$(N):CfgRelR2" ) {
#record( mbbo, "$(H):$(N):CfgRelR3" ) {
# field( DTYP, "stream" )
# field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),019) $(port)" )
# # State strings
# field( ZRST, "Switchpoint reached" )
# field( ONST, "no error" )
# field( TWST, "Error" )
# field( THST, "Warning" )
# field( FRST, "Error or Warning" )
# field( FVST, "Set speed reached" )
# field( SXST, "Pump on" )
# field( SVST, "Pump accelerates" )
# field( EIST, "Pump delays" )
# field( NIST, "always 0"
# field( TEST, "always 1"
# field( ELST, "remote prioritised" )
# field( TVST, "Heating" )
# field( TTVL, "Fore pump" )
# field( FTVL, "Seal gas" )
# field( FFVL, "pump stand" )
# #field( --VL, "pump rotates" )
# #field( --VL, "Pressure switching point 1 undershot" )
# #field( --VL, "Pressure switching point 2 undershot" )
# #field( --VL, "fore vacuum valve delayed" )
# #field( --VL, "standby fore pump" )
# # State values
# 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, "12" )
# field( TVVL, "13" )
# field( FTVL, "14" )
# field( FFVL, "15" )
# #field( --VL, "16" )
# #field( --VL, "17" )
# #field( --VL, "19" )
# #field( --VL, "20" )
# #field( --VL, "21" )
# #field( --VL, "22" )
#}
record( longout, "$(H):$(N):CfgDO1" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),024) $(port)" )
}
record( longout, "$(H):$(N):CfgDO2" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),019) $(port)" )
}
record( longout, "$(H):$(N):CfgRelR1" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),045) $(port)" )
}
record( longout, "$(H):$(N):CfgRelR2" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),046) $(port)" )
}
record( longout, "$(H):$(N):CfgRelR3" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),047) $(port)" )
}
record( bo, "$(H):$(N):MotorPump" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeBoolOld($(ADD),023) $(port)" )
# State strings
field( ZNAM, "Off" )
field( ONAM, "On" )
}
record( mbbo, "$(H):$(N):OpModeBKP" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),025) $(port)" )
# State strings
field( ZRST, "continuous operation" )
field( ONST, "Interval operation" )
field( TWST, "delayed switch on" )
field( THST, "delayed int operation" )
# State values
field( ZRVL, "0" )
field( ONVL, "1" )
field( TWVL, "2" )
field( THVL, "3" )
}
record( bo, "$(H):$(N):SpdSetMode" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),026) $(port)" )
# State strings
field( ZNAM, "Off" )
field( ONAM, "On" )
}
record( mbbo, "$(H):$(N):GasMode" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),027) $(port)" )
# State strings
field( ZRST, "heavy gases" )
field( ONST, "light gases" )
field( TWST, "Helium" )
# State values
field( ZRVL, "0" )
field( ONVL, "1" )
field( TWVL, "2" )
}
record( mbbo, "$(H):$(N):CfgRemote" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),028) $(port)" )
# State strings
field( ZRST, "Default" )
field( ONST, "Relay inverted" )
# State values
field( ZRVL, "0" )
field( ONVL, "4" )
}
record( mbbo, "$(H):$(N):VentMode" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),030) $(port)" )
# State strings
field( ZRST, "delayed flooding" )
field( ONST, "no flooding" )
field( TWST, "direct flooding" )
# State values
field( ZRVL, "0" )
field( ONVL, "1" )
field( TWVL, "2" )
}
record( mbbo, "$(H):$(N):CfgAccA1" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),035) $(port)" )
# State strings
field( ZRST, "Fan (permanent)" )
field( ONST, "Flooding valve (NC)" )
field( TWST, "Heating" )
field( THST, "Forepump" )
field( FRST, "Fan (temp regulated)" )
field( FVST, "Seal gas" )
field( SXST, "always 0" )
field( SVST, "always 1" )
# field( EIST, "Power failure venting valve" )
field( EIST, "Power failure vent valve" )
field( NIST, "TMS heating" )
field( TEST, "TMS cooling" )
field( ELST, "2nd flooding valve" )
field( TVST, "Seal gas monitoring" )
# State values
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, "12" )
field( TVVL, "13" )
}
record( mbbo, "$(H):$(N):CfgAccB1" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),036) $(port)" )
# State strings
field( ZRST, "Fan (permanent)" )
field( ONST, "Flooding valve (NC)" )
field( TWST, "Heating" )
field( THST, "Forepump" )
field( FRST, "Fan (temp regulated)" )
field( FVST, "Seal gas" )
field( SXST, "always 0" )
field( SVST, "always 1" )
field( EIST, "Power failure vent valve" )
field( NIST, "TMS heating" )
field( TEST, "TMS cooling" )
field( ELST, "2nd flooding valve" )
field( TVST, "Seal gas monitoring" )
# State values
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, "12" )
field( TVVL, "13" )
}
record( mbbo, "$(H):$(N):CfgAccA2" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),037) $(port)" )
# State strings
field( ZRST, "Fan (permanent)" )
field( ONST, "Flooding valve (NC)" )
field( TWST, "Heating" )
field( THST, "Forepump" )
field( FRST, "Fan (temp regulated)" )
field( FVST, "Seal gas" )
field( SXST, "always 0" )
field( SVST, "always 1" )
# field( EIST, "Power failure venting valve" )
field( EIST, "Power failure vent valve" )
field( NIST, "TMS heating" )
field( TEST, "TMS cooling" )
field( ELST, "2nd flooding valve" )
field( TVST, "Seal gas monitoring" )
# State values
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, "12" )
field( TVVL, "13" )
}
record( mbbo, "$(H):$(N):CfgAccB2" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),038) $(port)" )
# State strings
field( ZRST, "Fan (permanent)" )
field( ONST, "Flooding valve (NC)" )
field( TWST, "Heating" )
field( THST, "Forepump" )
field( FRST, "Fan (temp regulated)" )
field( FVST, "Seal gas" )
field( SXST, "always 0" )
field( SVST, "always 1" )
field( EIST, "Power failure vent valve" )
field( NIST, "TMS heating" )
field( TEST, "TMS cooling" )
field( ELST, "2nd flooding valve" )
field( TVST, "Seal gas monitoring" )
# State values
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, "12" )
field( TVVL, "13" )
}
record( mbbo, "$(H):$(N):Press1HVen" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),041) $(port)" )
# State strings
field( ZRST, "off" )
field( ONST, "on" )
field( TWST, "on at spd SwPt reached" )
field( THST, "on at prs SwPt undershot" )
# State values
field( ZRVL, "0" )
field( ONVL, "1" )
field( TWVL, "2" )
field( THVL, "3" )
}
record( bo, "$(H):$(N):SealingGas" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeBoolOld($(ADD),050) $(port)" )
# State strings
field( ZNAM, "Off" )
field( ONAM, "On" )
}
record( mbbo, "$(H):$(N):CfgAO1" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),055) $(port)" )
# State strings
field( ZRST, "Actual speed" )
field( ONST, "Power" )
field( TWST, "Current" )
field( THST, "always 0 V" )
field( FRST, "always 10 V" )
field( FVST, "follow AI1" )
field( SXST, "Pressure value 1" )
field( SVST, "Pressure value 2" )
field( EIST, "control prevacuum" )
# State values
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" )
}
record( bo, "$(H):$(N):CfgAI1" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),057) $(port)" )
# State strings
field( ZNAM, "disabled" )
field( ONAM, "Preset speed control mode" )
}
record( mbbo, "$(H):$(N):CtrlViaInt" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),060) $(port)" )
# State strings
field( ZRST, "remote" )
field( ONST, "RS485" )
field( TWST, "PV.can" )
field( THST, "Field bus" )
field( FRST, "E74" )
field( FVST, "Unlock if selection" )
# State values
field( ZRVL, "1" )
field( ONVL, "2" )
field( TWVL, "4" )
field( THVL, "8" )
field( FRVL, "16" )
field( FVVL, "255" )
}
record( bo, "$(H):$(N):IntSelLckd" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeBoolOld($(ADD),061) $(port)" )
# State strings
field( ZNAM, "off" )
field( ONAM, "on" )
}
record( mbbo, "$(H):$(N):CfgDI1" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),062) $(port)" )
# State strings
field( ZRST, "disabled" )
field( ONST, "release flood" )
field( TWST, "Heating" )
field( THST, "sealing gas" )
field( FRST, "Run-up time monitoring" )
field( FVST, "speed control mode" )
field( SXST, "release HV-Sensor" )
# State values
field( ZRVL, "0" )
field( ONVL, "1" )
field( TWVL, "2" )
field( THVL, "3" )
field( FRVL, "4" )
field( FVVL, "5" )
field( SXVL, "7" )
}
record( mbbo, "$(H):$(N):CfgDI2" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),062) $(port)" )
# State strings
field( ZRST, "disabled" )
field( ONST, "release flood" )
field( TWST, "Heating" )
field( THST, "sealing gas" )
field( FRST, "Run-up time monitoring" )
field( FVST, "speed control mode" )
field( SXST, "release HV-Sensor" )
# State values
field( ZRVL, "0" )
field( ONVL, "1" )
field( TWVL, "2" )
field( THVL, "3" )
field( FRVL, "4" )
field( FVVL, "5" )
field( SXVL, "7" )
}
record( mbbo, "$(H):$(N):CfgDI3" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),062) $(port)" )
# State strings
field( ZRST, "disabled" )
field( ONST, "release flood" )
field( TWST, "Heating" )
field( THST, "sealing gas" )
field( FRST, "Run-up time monitoring" )
field( FVST, "speed control mode" )
field( SXST, "release HV-Sensor" )
# State values
field( ZRVL, "0" )
field( ONVL, "1" )
field( TWVL, "2" )
field( THVL, "3" )
field( FRVL, "4" )
field( FVVL, "5" )
field( SXVL, "7" )
}
##--------------------------------------------------------------------------------
## Setpoint specifications
record( longout, "$(H):$(N):RUTimeSVal" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),700) $(port)" )
# limits
field( DRVH, "120" )
field( DRVL, "1" )
# display
field( HOPR, "120" )
field( LOPR, "1" )
field( EGU, "min" )
}
record( longout, "$(H):$(N):SpdSwPt1" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),701) $(port)" )
# limits
field( DRVH, "97" )
field( DRVL, "50" )
# display
field( HOPR, "97" )
field( LOPR, "50" )
field( EGU, "%" )
}
record( ao, "$(H):$(N):SpdSVal" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),707) $(port)" )
# conversion
field( ASLO, ".01" )
field( AOFF, "0." )
# limits
field( DRVH, "100" )
field( DRVL, "20" )
# display
field( HOPR, "100" )
field( LOPR, "20" )
field( EGU, "%" )
field( PREC, "2" )
}
record( longout, "$(H):$(N):PwrSVal" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),708) $(port)" )
# limits
field( DRVH, "100" )
field( DRVL, "10" )
# display
field( HOPR, "100" )
field( LOPR, "10" )
field( EGU, "%" )
}
record( longout, "$(H):$(N):SwOffBKP" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),710) $(port)" )
# limits
field( DRVH, "1000" )
field( DRVL, "0" )
# display
field( HOPR, "1000" )
field( LOPR, "0" )
field( EGU, "W" )
}
record( longout, "$(H):$(N):SwOnBKP" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),711) $(port)" )
# limits
field( DRVH, "1000" )
field( DRVL, "0" )
# display
field( HOPR, "1000" )
field( LOPR, "0" )
field( EGU, "W" )
}
record( ao, "$(H):$(N):StdbySVal" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),717) $(port)" )
# conversion
field( ASLO, ".01" )
field( AOFF, "0." )
# limits
field( DRVH, "100" )
field( DRVL, "20" )
# display
field( HOPR, "100" )
field( LOPR, "20" )
field( EGU, "%" )
field( PREC, "2" )
}
record( longout, "$(H):$(N):SpdSwPt2" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),719) $(port)" )
# limits
field( DRVH, "97" )
field( DRVL, "5" )
# display
field( HOPR, "97" )
field( LOPR, "5" )
field( EGU, "%" )
}
record( longout, "$(H):$(N):VentSpd" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeShort($(ADD),720) $(port)" )
# limits
field( DRVH, "98" )
field( DRVL, "40" )
# display
field( HOPR, "98" )
field( LOPR, "40" )
field( EGU, "%" )
}
record( longout, "$(H):$(N):VentTime" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),721) $(port)" )
# limits
field( DRVH, "3600" )
field( DRVL, "6" )
# display
field( HOPR, "3600" )
field( LOPR, "6" )
field( EGU, "s" )
}
record( longout, "$(H):$(N):PrsSwPt1" ) {
field( DTYP, "stream" )
## Actually EXPO datatype (10)
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),730) $(port)" )
}
record( longout, "$(H):$(N):PrsSwPt2" ) {
field( DTYP, "stream" )
## Actually EXPO datatype (10)
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),732) $(port)" )
}
record( stringin, "$(H):$(N):PrsSn1Name" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),739) $(port)" )
field( PINI, "YES" )
}
record( longout, "$(H):$(N):Pressure1" ) {
field( DTYP, "stream" )
## Actually EXPO datatype (10)
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),740) $(port)" )
}
record( ao, "$(H):$(N):PrsCorrPi1" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),742) $(port)" )
# conversion
field( ASLO, ".01" )
field( AOFF, "0." )
# limits
#field( DRVH, "100" )
#field( DRVL, "20" )
# display
#field( HOPR, "100" )
#field( LOPR, "20" )
#field( EGU, "%" )
field( PREC, "2" )
}
record( stringin, "$(H):$(N):PrsSn2Name" ) {
field( DTYP, "stream" )
field( INP, "@Pfeiffer_vacuum.proto readString($(ADD),749) $(port)" )
field( PINI, "YES" )
}
record( longout, "$(H):$(N):Pressure2" ) {
field( DTYP, "stream" )
## Actually EXPO datatype (10)
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),750) $(port)" )
}
record( ao, "$(H):$(N):PrsCorrPi2" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),752) $(port)" )
# conversion
field( ASLO, ".01" )
field( AOFF, "0." )
# limits
#field( DRVH, "100" )
#field( DRVL, "20" )
# display
#field( HOPR, "100" )
#field( LOPR, "20" )
#field( EGU, "%" )
field( PREC, "2" )
}
record( longout, "$(H):$(N):NomSpdConf" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),777) $(port)" )
# limits
field( DRVH, "1500" )
field( DRVL, "0" )
# display
field( HOPR, "1500" )
field( LOPR, "0" )
field( EGU, "Hz" )
}
record( longout, "$(H):$(N):SlgWrnThrs" ) {
field( DTYP, "stream" )
field( OUT, "@Pfeiffer_vacuum.proto writeInt($(ADD),791) $(port)" )
# limits
field( DRVH, "200" )
field( DRVL, "5" )
# display
field( HOPR, "200" )
field( LOPR, "5" )
field( EGU, "sccm" )
}
- References:
- Support for Pfeiffer HiPace with TC400 control unit Heinz Junkes (FHI) via Tech-talk
- Navigate by Date:
- Prev:
Support for Pfeiffer HiPace with TC400 control unit Heinz Junkes (FHI) via Tech-talk
- Next:
Protocol format issues in StreamDevice during COMBIVAC CM 52 device commissioning. LONG FENG via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
<2025>
2026
- Navigate by Thread:
- Prev:
Support for Pfeiffer HiPace with TC400 control unit Heinz Junkes (FHI) via Tech-talk
- Next:
Protocol format issues in StreamDevice during COMBIVAC CM 52 device commissioning. LONG FENG via Tech-talk
- Index:
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
<2025>
2026
|