Fluke 289 vs. TestController:
Is it possible to log VAC in "Peak" mode, which allows measuring with 100 ms response time instead of the usual 1 sec. periode?
Starting
;; Start thread for: 192.168.1.162 - Kollmorgen AKD2G Servo
;; Found Kollmorgen AKD2G Servo on 192.168.1.162
axis1.vl.fb
;; AKD2G: Tx <axis1.vl.fb>
axis1.il.fb
;; AKD2G: Tx <axis1.il.fb>
Error: [0085] Command was not found.
-->axis1.vl.fb
59.372 [rpm]
-->axis1.il.fb
-0.002 [Arms]
-->
You can select any mode you wish on the meter.
It only logs the main value and there it will log everything the meter shows. You can use a fast sample rate if you wish.
I tried to measure/log the "Peak" with 100 ms response time from +332,7 VAC till -332,4 VAC as shown in the display, but only got the average in TestController... - what do I miss?
Suggestions for next steps to start getting replies/working communication?
V0.66 is up
This version includes a new driver called "ascii", it is very similar to the Modbus driver with command definition, but this time it is plain ascii commands that is defined. This will hopefully make it possible to connect to a lot of non-scpi equipment.
I am using the new ascii driver to create a device driver for FY6800 Signal Generator and are having issues sending integers greater then 999999 it converts it to scientific notation and the Signal Generator is expecting an integer.
I am using the new ascii driver to create a device driver for FY6800 Signal Generator and are having issues sending integers greater then 999999 it converts it to scientific notation and the Signal Generator is expecting an integer.
You are supposed to be able to do something like (int(value)), but the int function has a problem in the current version (It will be fixed in next version).
Another way is to use (formatDouble(value,1,20,0,0))
You are supposed to be able to do something like (int(value)), but the int function has a problem in the current version (It will be fixed in next version).
Another way is to use (formatDouble(value,1,20,0,0))
My mistake I should have said float, the value is 0.000001 to 60000000.000000 hz
The +/- peak is not the main meter reading, I only read the main value.
The specification for formatDouble is formatDouble(value,minIntegerDigits,maxIntegerDigits,minFractionalDigits,maxFractionalDigits), i.e. you can do: formatDouble(value,1,10,0,6)
You need the bracket around everything to active the parser.
#scpiCmd RMA? txrx? RMA /1000
#cmdSetup number P-P_Amplitude Output_1
:read: RMA?
:readmath: ((value)/10000)
Thanks for the above clarification, the next issue I am having is when trying to divide the returned value by 1000. It is not work the same as it did in the modbus driver
Never mind, I was able to figure it out using :readmath:
Exactly, I did not add shortcuts for multiplying or dividing in this driver. I assumed when using ascii most devices would return non-scaled values.
And just a note: You do not need brackets around (value), but it do not do any harm. I uses two strategies for handling the parameters for readmath:
Any (value) string it directly replaced with the received value. If there are a () pair left the parser/calculator will handle it with the received value set up as a variable called value.
; A list of possible column name with unit and formatter (SI, Time, Int, D0..D6)
#value Frequency1 Hz SI
#value Amplitude1 V SI
#value Offset1 V SI
#value DutyCycle1 % D1
#value Frequency2 Hz SI
#value Amplitude2 V SI
#value Offset2 V SI
#value DutyCycle2 % D1
; How to poll for data, this is used for table and #values?
; a #askMode, #cmdMode and #prepareSample is used before this is string is used.
; This is a single line command
#askValues RMF?;RMA?;RMO?;RMD?;RFF?;RFA?;RFO?;RFD?
#askValuesMathFormat
I was able to do all of the scaling needed in the #cmdSetup but now I can not figure out how the do it with #askValuesMathFormat. I am able to get it to work if only logging one value but if I do more then one I can not get it to work.
Why do you need a #askValuesMathFormat if you already have scaled the values correctly? mathFormat is not easy to use when you have many values, because you need to process everything in one expression.
If you need to get rid of units use #askValueReadFormat.
#scpiCmd RMA? txrx? RMA
:readmath: (value/10000)
;; 01:59:28.445 FY6800: Tx <RMF?>The readmath does not work correctly under #scpiCmd see below I get NaN
The readmath does not work correctly under #scpiCmd see below I get NaNI can see the problem, it was a typo in my code. You can get a new jar file from the usual link.
#scpiCmd RMA? txrx? RMA
:readmath: (formatDouble(value/10000,1,2,4,4))
;; 08:38:54.861 FY6800: Tx <RMA?>
;; 08:38:54.865 FY6800: Tx <txrx? RMA>
;; 08:38:54.869 COM5: Tx: <RMA.> 52 4D 41 0A
;; 08:38:54.869 COM5: Rx: <121234> 31 32 31 32 33 34
;; 08:38:54.871 FY6800: Rx <12.0000>
I hate to be a pain, but now the value is only be returned as whole number.Code: [Select]#scpiCmd RMA? txrx? RMA
:readmath: (formatDouble(value/10000,1,2,4,4))
I hate to be a pain, but now the value is only be returned as whole number.Code: [Select]#scpiCmd RMA? txrx? RMA
:readmath: (formatDouble(value/10000,1,2,4,4))
That is the correct result
It is because you are dividing a integer with a integer, then the result will be a integer. It is very easy to fix, instead of dividing by 10000 you divide by 10000.0
Tried but no luck. I even tried *0.0001
Tried but no luck. I even tried *0.0001
Ok, I found the problem. For now you can do:
double(value)/10000
Works like a charm, thanks.