IOCINFRAApp/Db/devKeithley6487.proto
author Heinz Junkes <junkes@fhi-berlin.mpg.de>
Thu, 07 Mar 2019 09:23:26 +0100
changeset 0 77d8eafe2a07
child 1 f6e1a4c75073
permissions -rw-r--r--
Initial repo
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
0
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     1
##########################################################################
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     2
# Copyright (c) 2011 Lawrence Berkeley National Laboratory, Accelerator
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     3
# Technology Group, Engineering Division
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     4
# This code is distributed subject to a Software License Agreement found
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     5
# in file LICENSE that is included with this distribution.
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     6
##########################################################################
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     7
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     8
@writetimeout { disconnect; }
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
     9
@replytimeout { disconnect; }
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    10
@readtimeout  { disconnect; }
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    11
@mismatch     { disconnect; }
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    12
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    13
ReplyTimeout = 1200;
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    14
InTerminator = "\n";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    15
OutTerminator = "\n";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    16
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    17
getIDN {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    18
    out "*IDN?";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    19
    in "%\$1[^\r\n]";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    20
    ExtraInput = Ignore;
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    21
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    22
cmd {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    23
    out "\$1";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    24
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    25
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    26
setD {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    27
    out "\$1 %d";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    28
    @init { out "\$1?"; in "%d"; }
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    29
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    30
getD {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    31
    out "\$1?";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    32
    in "%d";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    33
    ExtraInput = Ignore;
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    34
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    35
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    36
setF {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    37
    out "\$1 %f";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    38
    @init { out "\$1?"; in "%f"; }
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    39
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    40
getF {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    41
    out "\$1?";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    42
    in "%f";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    43
    ExtraInput = Ignore;
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    44
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    45
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    46
setRange {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    47
    out "RANG 2E-%d";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    48
    @init { out "RANG?"; in "%*[^E]E-%d"; }
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    49
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    50
getRange {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    51
    out "RANG?";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    52
    in "%*[^E]E-%d";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    53
    ExtraInput = Ignore;
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    54
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    55
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    56
setArmSource {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    57
    out "ARM:SOUR %{IMM|BUS|TIM|MAN|TLIN|NST|PST|BST}";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    58
    @init { out "ARM:SOUR?"; in "%{IMM|BUS|TIM|MAN|TLIN|NST|PST|BST}"; }
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    59
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    60
getArmSource {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    61
    out "ARM:SOUR?";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    62
    in "%{IMM|BUS|TIM|MAN|TLIN|NST|PST|BST}";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    63
    ExtraInput = Ignore;
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    64
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    65
setTriggerSource {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    66
    out "TRIG:SOUR %{IMM|TLIN}";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    67
    @init { out "TRIG:SOUR?"; in "%{IMM|TLIN}"; }
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    68
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    69
getTriggerSource {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    70
    out "TRIG:SOUR?";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    71
    in "%{IMM|TLIN}";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    72
    ExtraInput = Ignore;
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    73
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    74
cancel {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    75
    out "\030ABOR\r";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    76
    in "%*s";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    77
    ExtraInput = Ignore;
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    78
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    79
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    80
#
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    81
# Measure current
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    82
#
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    83
measureCurrent {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    84
    ReplyTimeout = 5000;
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    85
    out "READ?";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    86
    in "%f";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    87
    ExtraInput = Ignore;
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    88
    @init { out "FORM:ELEM READ;CONF:CURR:DC"; }
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    89
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    90
fetchBuffered {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    91
    ReplyTimeout = 10000;
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    92
    Separator = ",";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    93
    out "FETC?";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    94
    in "%f";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    95
    ExtraInput = Ignore;
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    96
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    97
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    98
#
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
    99
# Source
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   100
#
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   101
setIlimit {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   102
    out "SOUR:VOLT:ILIM 2.5E-%d";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   103
    @init { out "SOUR:VOLT:ILIM?"; in "2.5%*[^E]E-%d"; }
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   104
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   105
getIlimit {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   106
    out "SOUR:VOLT:ILIM?";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   107
    in "2.5%*[^E]E-%d";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   108
    ExtraInput = Ignore;
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   109
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   110
setSourceRange {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   111
    out "SOUR:VOLT:RANGE %d";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   112
    @init { out "SOUR:VOLT:RANGE?"; in "%{1.000000E+01|5.000000E+01|5.000000E+02}"; }
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   113
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   114
getSourceRange {
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   115
    out "SOUR:VOLT:RANGE?";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   116
    in "%{1.000000E+01|5.000000E+01|5.000000E+02}";
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   117
    ExtraInput = Ignore;
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   118
}
77d8eafe2a07 Initial repo
Heinz Junkes <junkes@fhi-berlin.mpg.de>
parents:
diff changeset
   119