You should set DRVH to 200 in SetEpass so the VAL filed cannot be set to more than 200.
Use caput to set SetEpass to 150 and see what happens in the asynTrace output. You can also enable StreamDebug if you still have problems.
Mark
Sent from my iPhone
On Mar 18, 2022, at 12:16 AM, TONY YU <tonyyucom at gmail.com> wrote:
Hi Mark and Andrew,
I added asynSetTraceMask("IDEA",-1,0x9) and asynSetTraceIOMask("IDEA",-1,0x2) in st.cmd to monitor the outputs from IDEA. Here is the first few lines from the output:
2022/03/18 10:45:52.753 terminal.chamber6:10002 write 10
Get ekin\r\n
2022/03/18 10:45:52.763 terminal.chamber6:10002 read 7
0.000\r\n
2022/03/18 10:45:52.765 terminal.chamber6:10002 write 9
Get hsa\r\n
2022/03/18 10:45:52.774 terminal.chamber6:10002 read 8
1638.400
2022/03/18 10:45:52.775 terminal.chamber6:10002 read 2
\r\n
2022/03/18 10:45:53.206 terminal.chamber6:10002 write 12
Get filter\r\n
2022/03/18 10:45:53.215 terminal.chamber6:10002 read 8
#07 filt
2022/03/18 10:45:53.216 terminal.chamber6:10002 read 7
er on\r\n
2022/03/18 10:45:53.297 terminal.chamber6:10002 write 11
Get range\r\n
2022/03/18 10:45:53.306 terminal.chamber6:10002 read 8
#06 rang
2022/03/18 10:45:53.307 terminal.chamber6:10002 read 7
e x10\r\n
2022/03/18 10:45:53.998 terminal.chamber6:10002 read 8
#01 ok\r\n
2022/03/18 10:45:53.999 terminal.chamber6:10002 write 5
ver\r\n
2022/03/18 10:45:54.010 terminal.chamber6:10002 read 24
EFC_for_NanoESCA V01.03
2022/03/18 10:45:54.012 terminal.chamber6:10002 read 7
B0115\r\n
2022/03/18 10:45:54.013 terminal.chamber6:10002 write 17
Set mode remote\r\n
2022/03/18 10:45:54.022 terminal.chamber6:10002 read 8
#04 remo
I realize that the default get and set voltage is exceed the range of the operation (terminal.chamber6:10002 read 8 1638.400), which can't be handled by the power supply. The maximum value in the DB file should be 200. The problem is that I cannot set
the output voltage properly. When I try to set the voltage in CSS, there is no response from the changing. Below shows the logging.
2022/03/18 11:04:40.283 terminal.chamber6:10002 write 18
Set hsa 0.000000\r\n
2022/03/18 11:04:40.292 terminal.chamber6:10002 read 12
#0E HSA ok\r\n
2022/03/18 11:04:40.734 terminal.chamber6:10002 write 9
Get hsa\r\n
2022/03/18 11:04:40.744 terminal.chamber6:10002 read 8
1638.400
2022/03/18 11:04:41.228 terminal.chamber6:10002 write 9
Get hsa\r\n
2022/03/18 11:04:41.237 terminal.chamber6:10002 read 10
1638.400\r\n
I would like to know how to initialize the set values to the devices in the db file. Below the the corresponding db.
record(ai, "$(P):$(NAME):Epass") {
field(SCAN, ".5 second")
field(DTYP, "stream")
field(INP, "@IDEA.proto Get_HSA $(interface)")
field(PREC, "3")
field(EGU, "V")
field(HOPR, "200")
field(LOPR, "0")
field(AOFF, "0")
field(ASLO, "0.5239717")
}
record(ao, "$(P):$(NAME):SetEpass") {
field(DTYP, "stream")
field(OUT, "@IDEA.proto Set_HSA $(interface)")
field(PREC, "3")
field(EGU, "V")
field(HOPR, "200")
field(LOPR, "0")
field(AOFF, "0")
field(ASLO, "0.5239717")
field(HIHI, "200")
field(LOLO, "30")
field(HIGH, "200")
field(LOW, "30")
}
Best,
Tony
Hi Tony,
The error messages you posted ought to be self-explanatory if you read them in order:
> error:
> IDEA ImpMik:IDEA:Status: Input "#31 hv error detect" mismatch after 4 bytes
> IDEA ImpMik:IDEA:Status: got "hv error detect" where "ok" was expected
> IDEA ImpMik:IDEA:SetFilterOn: Input "#2E impossible, erro" mismatch after 1 byte
> IDEA ImpMik:IDEA:SetFilterOn: got "2E impossible, error" where "0" was expected
Your protocol for reading the status from the device says:
> #
> # Get_Status
> #
> Get_Status {
> out "Get status";
> in "#%2i ok";
> out "ver";
> in "EFC_for_NanoESCA V01.03 B0115";
> out "Set mode remote";
> in "#04 remote mode";
> }
Thus you're telling StreamDevice that after it sends a "Get status" string, it will get back "#" followed by a 2-digit integer and the word "ok". The first two error message lines explain that instead of "ok" it's seeing the string "hv error detect". Have you
looked at the instrument that it's talking to? I would guess there's a problem with some high voltage signal that it isn't seeing. You should probably fix the protocol file so it can accept error strings like that from the device and make them available in
a stringin record instead of always assuming that the instrument is working and will never give you an error, but you might be able to resolve your immediate issue by fixing whatever the instrument is complaining about.
Always fix your first error first, then look at any error messages you get in that state — later errors are often caused by earlier ones and may go away once you've fixed the first problem.
HTH,
- Andrew
--
Complexity is free, it's Simplicity that takes work.
|