Rigol DP832A kalibrasyon prosedürü

taydin

Timur Aydın
Staff member
Katılım
24 Şubat 2018
Mesajlar
21,788
Daha önce elimdeki DP821A güç kaynağını, bir bash script ile ve SCPI arabirimi üzerinden kalibre etmiştim. Bununla ilgili internette herhangi bir dokümantasyon olmamasına rağmen, parça parça sağda solda bulunan bilgileri derleyip ve bol bol deneme yanılma ile çalışan bir prosedür elde edebildim. Bugün aynı kalibrasyon işlemini en sık kullandığım güç kaynağı olan DP832A için yaptım. Burada aşama aşama nasıl yapıldığını anlatacağım.

Öncelikle kullandığım ekipmanları listeliyorum:

1) Rigol DM3068 6.5 haneli multimetre. Mutlaka bu modelin kullanılmasına gerek yok, ama kullanılacak multimetrenin ağ üzerinde SCPI protokolünü desteklemesi lazım. Ayrıca script'te kullanılan bazı SCPI komutlarının diğer multimetreye göre değişmesi gerekebilir. Örneğin akım ölçümü yaparken multimetreyi 10A kademesine alıyorum. Bunun için belki başka bir multimetre'de farklı bir SCPI komutu gerekiyor olabilir.

2) Uygun akım taşıma kapasitesine sahip, iki tarafı erkek banana jack'ler. Ben 1.5 mm2 kesitli çok damarlı kablo kullandım.

3) Üzerinde lxi-tools yazılım paketi kurulu olan ve ağa bağlı olan bir linux bilgisayar. Benim bilgisayar'de lxi-tools version 1.21 kurulu.
 
Öncelikle hem DP832A hem de DP3068'i bilgisayar ağına bağlıyoruz ve linux makinadaki bir terminalden aratıyoruz.

Bash:
[ta@bonsai ~]$ lxi discover
Searching for LXI devices - please wait...

Broadcasting on interface lo
Broadcasting on interface eno1
  Found "KEITHLEY INSTRUMENTS,MODEL 2450,04448841,1.6.7c" on address 10.2.1.151
  Found "RIGOL TECHNOLOGIES,DP832A,DP8B171700360,00.01.13" on address 10.2.1.182
  Found "Rigol Technologies,DM3068,DM3O190900153,01.01.00.01.10.00" on address 10.2.1.150
Broadcasting on interface ppp0

Found 3 devices

[ta@bonsai ~]$

Burada DP832A ve DM3068'i görebiliyoruz, o halde bu bilgisayardan bu iki cihaz ile SCPI protokolü ile iletişim kurulabilir.
 
Sonra DP832A nın ilk çıkışını multimetrenin voltaj ölçüm girişlerine bağlıyoruz. Bunun için yukarıda belirtilen banana jack'leri kullanıyoruz.

Sonra aşağıdaki bash script'i terminalden çalıştırıyoruz. Bu script öncelikle ağda DM3068'i ve DP832A nın IP adresini tespit ediyor ve ekrana yazıyor. Eğer geçerli bir IP adres bulunamamışsa script'i devam ettirmemek gerekir ve sorun neyse önce girerilmesi gerekir.

Ama geçerli IP adresler bulunmuşsa script devam edecek ve sırasıyla 1. çıkış, 2. çıkış, ve 3. çıkışın kalibrasyonunu yapacaktır. Her bir çıkış için de prosedür şöyle:

1) Üretilen ve ölçülen gerilim kalibrasyonu yapılacak.
2) Script bu aşamada, çıkışın multimetrenin akım ölçüm girişlerine bağlanmasını bekleyecek.
3) Üretilen ve ölçülen akım kalibrasyonu yapılacak.
4) Bu aşamada bu çıkış için kalibrasyon tamamlanmış olacak ve script, bir sonraki çıkışı multimetrenin vojtaj ölçüm girişlerine bağlanmasını bekleyecek.

Bu adımlar, DP832A nın üç tane çıkışı için tekrar edilecek.

Bash:
#!/bin/bash

VPOINTS=(
    0.0
    0.01
    0.03
    0.1
    0.2
    0.7
    1.0
    1.2
    1.7
    2.0
    2.3
    2.7
    3.0
    3.8
    4.2
    4.7
    5.1
    5.3
    5.6
    6.0
    6.5
    7.0
    8.0
    8.4
    9.0
    10.0
    11.0
    12.0
    13.0
    14.0
    15.0
    16.0
    17.0
    18.0
    19.0
    20.0
    21.0
    22.0
    23.0
    24.0
    25.0
    26.0
    27.0
    28.0
    29.0
    30.0
    31.0
    32.0
)

CPOINTS=(
    0.0
    0.001
    0.002
    0.005
    0.01
    0.02
    0.03
    0.04
    0.05
    0.06
    0.07
    0.08
    0.09
    0.1
    0.2
    0.3
    0.4
    0.5
    0.6
    0.7
    0.8
    0.9
    1.0
    1.2
    1.5
    1.7
    2.0
    2.2
    2.5
    2.7
    3.0
    3.2
)

get_device_ip ()
{
    local DEVICE="$1"
    local IPADDR=`lxi discover | grep "$DEVICE" | grep -oe '[0-9\.]*$'`
    echo $IPADDR
}

get_dmm_ip ()
{
    get_device_ip DM3068
}

get_ps_ip ()
{
    get_device_ip DP832A
}

DMM_IP=`get_dmm_ip`
PS_IP=`get_ps_ip`

write_ps_cmd ()
{
    local CMD="$1"
    lxi scpi -a $PS_IP "$CMD"
}

write_dmm_cmd ()
{
    local CMD="$1"
    lxi scpi -t 10 -a $DMM_IP "$CMD"
}

read_dmm_vdc ()
{
    V_SCPI=`write_dmm_cmd ":meas:volt:dc?"`
    printf "%f\n" $V_SCPI
}

read_dmm_cdc ()
{
    write_dmm_cmd ":meas:curr:dc max"
    V_SCPI=`write_dmm_cmd ":meas:curr:dc?"`
    printf "%f\n" $V_SCPI
}

read_ref ()
{
    local POINT="$1"

    if [ "$MODE" = "V" ]; then
        REF=${VPOINTS[$POINT]}
    elif [ "$MODE" = "C" ]; then
        REF=${CPOINTS[$POINT]}
    else
        REF="somejunk"
    fi

    echo $REF
}

read_value ()
{
    if [ "$MODE" = "V" ]; then
        VALUE=`read_dmm_vdc`
    elif [ "$MODE" = "C" ]; then
        VALUE=`read_dmm_cdc`
    else
        VALUE="somejunk"
    fi

    echo $VALUE
}

calibration_loop ()
{
    echo "CH = $CH, MODE = $MODE, DEV = $DEV"

    write_ps_cmd ":output $CH,on"

    for (( POINT = 0; POINT < $NUMPOINTS; POINT++ )); do
        local REF=`read_ref $POINT`
        echo "POINT = $POINT, REF = $REF"
        write_ps_cmd ":calibration:set $CH,$MODE,$POINT,$REF,$DEV"
        sleep 2
        local VALUE=`read_value`
        echo "VALUE = $VALUE"
        write_ps_cmd ":calibration:meas $CH,$MODE,$POINT,$VALUE,$DEV"
    done

    write_ps_cmd ":output $CH,off"
}

calibrate_ch ()
{
    echo "Multimeter IP Address = $DMM_IP"
    echo "Power Supply IP address = $PS_IP"

    local CH="$1"
    local NUMV="$2"
    local NUMC="$3"

    write_ps_cmd ":calibration:start 11111,$CH"
    write_ps_cmd ":calibration:clear $CH,all"

    local MODE="V"

    local NUMPOINTS=$NUMV

    local DEV="1"
    calibration_loop

    local DEV="0"
    calibration_loop

    echo "SWITCH DMM to Current Measurement, press enter to continue ..."
    read

    MODE="C"

    local NUMPOINTS=$NUMC

    local DEV="1"
    calibration_loop

    local DEV="0"
    calibration_loop

    write_ps_cmd ":calibration:end `date +%d/%m/%Y`,$CH"
}

# put device into a known state
write_ps_cmd ":*RST"

calibrate_ch CH1 48 32

echo "SWITCH power supply output, press enter to continue ..."
read

calibrate_ch CH2 48 32

echo "SWITCH power supply output, press enter to continue ..."
read

calibrate_ch CH3 18 32
 
Son düzenleme:
Bu şekilde kalibrasyonu tamamladım ve şu anda ayarlanan ve ölçülen değerler hem voltaj hem akım için en fazla 1 mV ve 1 mA sapma gösteriyor. Daha önce voltaj için kabaca 7 mV sapma, akım için ise 25 mA civarında sapma vardı.
 
Kalibrasyonun çalışma aşamasında üretilen ekran çıktısı ekteki metin dosyasında.
 

Ekler

  • dp832a_calout.txt
    16.9 KB · Görüntüleme: 299
Aynı komutlar (DMM ismini değiştirmek koşulu) ile Siglent SDM3065X kullanarak DP832A kalibrsayonu yaptım ve sorunsuz çalıştı. Eline sağlık @taydin

 
Rigol ve Siglent birbirleri ile rekabet ettikleri için ve birbirinden müşteri kapmak istedikleri için demekki SCPI komut setlerini uyumlu tutuyorlar :)
 

Forum istatistikleri

Konular
5,833
Mesajlar
99,481
Üyeler
2,478
Son üye
TA3CD

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top