„Digitális multiméter vezérlése mérésleírás” változatai közötti eltérés

A Fizipedia wikiből
88. sor: 88. sor:
  
 
== Feladatok ==
 
== Feladatok ==
 +
 +
A cél egy olyan grafikus felület, amely lehetővé teszi a multiméter két funkciójának, az egyenfeszültség- (DCV), valamint az ellenállásmérésnek kezelését. A kész program kijelzi, az idő függvényében ábrázolja, valamint elmenti a műszertől kapott adatokat.
 +
 +
A mérőprogramot a következőek szerint építsük fel:
 +
# Hozzuk létre azt a programrészletet, mely a kommunikáciért felelős, és teszteljük azzal, hogy egy gombnyomásra kiírjuk a műszer által beolvasott értéket! A mérőműszer és a soros port inicializálását a program betöltődésekor végezzük el: az alapértelmezett üzemmód legyen a feszültségmérés automatikus méréshatárral;
 +
# Tegyük a kiolvasást automatizálttá, azaz a kommunikációt és a kiírást végezzük egy Timer által meghatározott -változtatható- időközönként;
 +
# Adjunk lehetőséget a két szükséges üzemmód közötti változtatásra például két nyomógomb segítségével! Ügyeljünk arra, hogy a Timer event által futtatott kommunikáció összeakadhat más event portkezelésével, ezért az üzemmódváltást csak a következő Timer event végezze el! Erre egy módszer két globális logikai változó használata, melyeket a gombok lenyomása állít be és állapotuk meghatározza, hogy szeretnénk-e megváltoztatni az üzemmódot és ha igen, melyik üzemmód legyen aktív. Ekkor a változókat a Timer eventben megvizsgálva eldönthetjük, hogy szükséges-e a műszert átállítani;
 +
# Hozzuk létre a lemezre mentéshez szükséges struktúrákat: az állomány tartalmazza a mérés kezdete óta eltelt időt, valamint a mért mennyiség értékét és mértékegységét! A program felületén legyen lehetőség a mentést felfüggeszteni, majd újraindítani (ezt megtehetjük CheckBox, vagy két nyomógomb segítségével);
 +
# Ábrázoljuk a mért értékeket! Ügyeljünk arra, hogy üzemmódváltásnál ürítsük ki a régi tartalmat a grafikonról!
 +
# Tegyünk fel három gombot, amellyel lehetőség van a méréshatár váltására: DCV üzemmódban ezek legyenek rendre: 0.5V, 5V, Auto. Ellenállásmérés módban: 500Ω, 5kΩ, Auto. A méréshatár váltásánál is ügyeljünk az üzemmódváltásnál leírtakra!
 +
# Végül tegyük szebbé a kiírást és ábrázolást: Jelenítsük meg az aktuális mértékegységet a mért érték mögött és a grafikon tengelyén!
 +
 +
A mérésről készített jegyzőkönyv lényegében egy használati utasítás az elkészült felülethez. Ismertessük a megvalósított funkciókat, a grafikus felület kezelését, valamint részletesen térjünk ki az olyan megoldásokra, amelyek nem a fentiekben megfogalmazott felépítést követik! A jegyzőkönyvhöz csatoljuk a mérőprogram forráskódját!
 +
 +
= Syllabus in English =
 +
 +
== Introduction ==
 +
 +
The aim of this exercise is to learn how to program and automatically control measurements on a [http://www.goodwill.com.tw Goodwill] GDM-8246 digital multimeter (DMM).
 +
 +
== Description of the instrument ==
 +
[[Fájl:Goodwill DMM.PNG|right|thumb]]
 +
A picture of the instrument and its connectors is visible to the right. In the exercise, the values shown by the primary display of the front panel will be read and processed. The roles of the buttons on the front panel are taken over by the graphical user interface of our measurement program. On the back panel, an RS232 and GPIB connector can be seen. The RS232 interface will be used to control the device by sending '''character string''' (text) messages. For certain messages, the device produces a response, also in character strings, which must be read by the measurement program.
 +
 +
== Serial communication setup ==
 +
 +
The measurement program must establish a serial port communication with the device using the following settings:
 +
 +
* Port name="COM1" (it is possible that another port number is required if you use your own laptop, one fast possibility is to check Ports (COM & LPD) in Device Manager)
 +
* Baud rate=9600
 +
* Data bits=8
 +
* Stop bits=1
 +
* No Parity.
 +
 +
== Commands ==
 +
 +
The following table describes some of the more common commands to be used in this exercise.
 +
The first column is a description of the operation, the second is the actual character string that must be sent.
 +
 +
{| class="wikitable"
 +
|-
 +
! colspan="2"| Operation
 +
! Command syntax
 +
! Return value
 +
|-
 +
|colspan="2" |Device ID query
 +
| *idn?
 +
| "GW.Inc.GDM-8246,FW1.00"
 +
|-
 +
| colspan="2"|Reset device to default state
 +
| *cls
 +
|
 +
|-
 +
| colspan="2" | Read primary display value
 +
| :VAL?
 +
| "+1.2345"
 +
|-
 +
| rowspan="2"|Automatic measurement range
 +
|On
 +
| :CONF:AUT 1
 +
|
 +
|-
 +
|Off
 +
| :CONF:AUT 0
 +
|
 +
|-
 +
| colspan="2" | Query auto measurement range state
 +
| :CONF:AUT ?
 +
| "0" or "1"
 +
|-
 +
| rowspan="3" | DC Volt measurement
 +
| Auto range
 +
| :CONF:VOLT:DC 0
 +
|
 +
|-
 +
| 0.5V range
 +
| :CONF:VOLT:DC 0.5
 +
|
 +
|-
 +
| 5V range
 +
| :CONF:VOLT:DC 5
 +
|
 +
|-
 +
| rowspan="3" | Ω measurement
 +
| Auto range
 +
| :CONF:RES 0
 +
|
 +
|-
 +
| 500Ω range
 +
| :CONF:RES 0.5
 +
|
 +
|-
 +
| 5kΩ range
 +
| :CONF:RES 5
 +
|
 +
|}
 +
 +
The measured value will be returned in Volt or k&Omega units as a number string.
 +
The sent string commands must end with a newline character, for this the Serial.WriteLine(string) method can be used, which automatically appends a newline to the end of string.
 +
To read the instrument's responses, it is easiest to use the Serial.ReadLine() method. Only call this method when you know that the instrument was given a command it sends a response to, otherwise your measurement program will get stuck here, forever waiting for a string on the serial port that is never sent by the instrument.
 +
 +
== Tasks ==
 +
 +
The end goal is creating a GUI that
  
 
A cél egy olyan grafikus felület, amely lehetővé teszi a multiméter két funkciójának, az egyenfeszültség- (DCV), valamint az ellenállásmérésnek kezelését. A kész program kijelzi, az idő függvényében ábrázolja, valamint elmenti a műszertől kapott adatokat.  
 
A cél egy olyan grafikus felület, amely lehetővé teszi a multiméter két funkciójának, az egyenfeszültség- (DCV), valamint az ellenállásmérésnek kezelését. A kész program kijelzi, az idő függvényében ábrázolja, valamint elmenti a műszertől kapott adatokat.  

A lap 2018. február 17., 13:24-kori változata

Az alábbi leírás pdf formátumban is letölthető.

Tartalomjegyzék

Bevezetés

A mérési gyakorlat célja a Goodwill GDM-8246 típusú általános felhasználású digitális multiméter (DMM) megismerése és automatizált vezérlése.

A mérőeszköz kezelése

Goodwill DMM.PNG

A műszer rajza az ábrán található. Az előlapi elsődleges kijelző által mutatott értéket dolgozzuk fel a számítógéppel. A gombok szerepét teljes egészében a mérőprogram grafikus felülete veszi át. A hátlapon található az RS232, valamint a hálózati csatlakozó. A multimétert a soros porton szövegként kiküldött utasításokkal vezérelhetjük. Ezek közül több utasításra (például mérési adat lekérdezése) az eszköz választ ad, amit a soros porton keresztül tudunk beolvasni.

Soros kommunikáció adatai

A számítógépen a soros portot a következő beállításokkal kell használni:

  • Port name="COM1"
  • Baud rate=9600
  • Data bits=8
  • Stop bits=1
  • Paritás nincs.

Parancskészlet

Az alábbi táblázatban felsoroljuk a feladatok megoldásához használható parancskészletet. Az első oszlopban található a végrehajtott művelet. A második oszlopban a kiküldött utasítást találjuk.

Operation Command syntax Return value
Műszerazonosító lekérdezése *idn? "GW.Inc.GDM-8246,FW1.00"
Alaphelyzetbe állítás *cls
Elsődleges kijelző lekérdezése  :VAL? "+1.2345"
Automatikus méréshatárváltás bekapcsolása  :CONF:AUT 1
kikapcsolása  :CONF:AUT 0
Automatikus méréshatár lekérdezése  :CONF:AUT ? "0" vagy "1"
DC Voltmérés Auto méréshatár  :CONF:VOLT:DC 0
0.5V méréshatár  :CONF:VOLT:DC 0.5
5V méréshatár  :CONF:VOLT:DC 5
Ωmérés Auto méréshatár  :CONF:RES 0
500Ω méréshatár  :CONF:RES 0.5
5kΩ méréshatár  :CONF:RES 5

A mért eredményt a multiméter Volt, illetve kΩ egységekben szolgáltatja. Az utasításokat újsor karakterrel kell lezárni, ezért célszerű a Serial.WriteLine(string) metódus használata. A műszer által visszaküldött értéket a Serial.ReadLine() függvénnyel olvashatjuk be.

Feladatok

A cél egy olyan grafikus felület, amely lehetővé teszi a multiméter két funkciójának, az egyenfeszültség- (DCV), valamint az ellenállásmérésnek kezelését. A kész program kijelzi, az idő függvényében ábrázolja, valamint elmenti a műszertől kapott adatokat.

A mérőprogramot a következőek szerint építsük fel:

  1. Hozzuk létre azt a programrészletet, mely a kommunikáciért felelős, és teszteljük azzal, hogy egy gombnyomásra kiírjuk a műszer által beolvasott értéket! A mérőműszer és a soros port inicializálását a program betöltődésekor végezzük el: az alapértelmezett üzemmód legyen a feszültségmérés automatikus méréshatárral;
  2. Tegyük a kiolvasást automatizálttá, azaz a kommunikációt és a kiírást végezzük egy Timer által meghatározott -változtatható- időközönként;
  3. Adjunk lehetőséget a két szükséges üzemmód közötti változtatásra például két nyomógomb segítségével! Ügyeljünk arra, hogy a Timer event által futtatott kommunikáció összeakadhat más event portkezelésével, ezért az üzemmódváltást csak a következő Timer event végezze el! Erre egy módszer két globális logikai változó használata, melyeket a gombok lenyomása állít be és állapotuk meghatározza, hogy szeretnénk-e megváltoztatni az üzemmódot és ha igen, melyik üzemmód legyen aktív. Ekkor a változókat a Timer eventben megvizsgálva eldönthetjük, hogy szükséges-e a műszert átállítani;
  4. Hozzuk létre a lemezre mentéshez szükséges struktúrákat: az állomány tartalmazza a mérés kezdete óta eltelt időt, valamint a mért mennyiség értékét és mértékegységét! A program felületén legyen lehetőség a mentést felfüggeszteni, majd újraindítani (ezt megtehetjük CheckBox, vagy két nyomógomb segítségével);
  5. Ábrázoljuk a mért értékeket! Ügyeljünk arra, hogy üzemmódváltásnál ürítsük ki a régi tartalmat a grafikonról!
  6. Tegyünk fel három gombot, amellyel lehetőség van a méréshatár váltására: DCV üzemmódban ezek legyenek rendre: 0.5V, 5V, Auto. Ellenállásmérés módban: 500Ω, 5kΩ, Auto. A méréshatár váltásánál is ügyeljünk az üzemmódváltásnál leírtakra!
  7. Végül tegyük szebbé a kiírást és ábrázolást: Jelenítsük meg az aktuális mértékegységet a mért érték mögött és a grafikon tengelyén!

A mérésről készített jegyzőkönyv lényegében egy használati utasítás az elkészült felülethez. Ismertessük a megvalósított funkciókat, a grafikus felület kezelését, valamint részletesen térjünk ki az olyan megoldásokra, amelyek nem a fentiekben megfogalmazott felépítést követik! A jegyzőkönyvhöz csatoljuk a mérőprogram forráskódját!

Syllabus in English

Introduction

The aim of this exercise is to learn how to program and automatically control measurements on a Goodwill GDM-8246 digital multimeter (DMM).

Description of the instrument

Goodwill DMM.PNG

A picture of the instrument and its connectors is visible to the right. In the exercise, the values shown by the primary display of the front panel will be read and processed. The roles of the buttons on the front panel are taken over by the graphical user interface of our measurement program. On the back panel, an RS232 and GPIB connector can be seen. The RS232 interface will be used to control the device by sending character string (text) messages. For certain messages, the device produces a response, also in character strings, which must be read by the measurement program.

Serial communication setup

The measurement program must establish a serial port communication with the device using the following settings:

  • Port name="COM1" (it is possible that another port number is required if you use your own laptop, one fast possibility is to check Ports (COM & LPD) in Device Manager)
  • Baud rate=9600
  • Data bits=8
  • Stop bits=1
  • No Parity.

Commands

The following table describes some of the more common commands to be used in this exercise. The first column is a description of the operation, the second is the actual character string that must be sent.

Operation Command syntax Return value
Device ID query *idn? "GW.Inc.GDM-8246,FW1.00"
Reset device to default state *cls
Read primary display value  :VAL? "+1.2345"
Automatic measurement range On  :CONF:AUT 1
Off  :CONF:AUT 0
Query auto measurement range state  :CONF:AUT ? "0" or "1"
DC Volt measurement Auto range  :CONF:VOLT:DC 0
0.5V range  :CONF:VOLT:DC 0.5
5V range  :CONF:VOLT:DC 5
Ω measurement Auto range  :CONF:RES 0
500Ω range  :CONF:RES 0.5
5kΩ range  :CONF:RES 5

The measured value will be returned in Volt or k&Omega units as a number string. The sent string commands must end with a newline character, for this the Serial.WriteLine(string) method can be used, which automatically appends a newline to the end of string. To read the instrument's responses, it is easiest to use the Serial.ReadLine() method. Only call this method when you know that the instrument was given a command it sends a response to, otherwise your measurement program will get stuck here, forever waiting for a string on the serial port that is never sent by the instrument.

Tasks

The end goal is creating a GUI that

A cél egy olyan grafikus felület, amely lehetővé teszi a multiméter két funkciójának, az egyenfeszültség- (DCV), valamint az ellenállásmérésnek kezelését. A kész program kijelzi, az idő függvényében ábrázolja, valamint elmenti a műszertől kapott adatokat.

A mérőprogramot a következőek szerint építsük fel:

  1. Hozzuk létre azt a programrészletet, mely a kommunikáciért felelős, és teszteljük azzal, hogy egy gombnyomásra kiírjuk a műszer által beolvasott értéket! A mérőműszer és a soros port inicializálását a program betöltődésekor végezzük el: az alapértelmezett üzemmód legyen a feszültségmérés automatikus méréshatárral;
  2. Tegyük a kiolvasást automatizálttá, azaz a kommunikációt és a kiírást végezzük egy Timer által meghatározott -változtatható- időközönként;
  3. Adjunk lehetőséget a két szükséges üzemmód közötti változtatásra például két nyomógomb segítségével! Ügyeljünk arra, hogy a Timer event által futtatott kommunikáció összeakadhat más event portkezelésével, ezért az üzemmódváltást csak a következő Timer event végezze el! Erre egy módszer két globális logikai változó használata, melyeket a gombok lenyomása állít be és állapotuk meghatározza, hogy szeretnénk-e megváltoztatni az üzemmódot és ha igen, melyik üzemmód legyen aktív. Ekkor a változókat a Timer eventben megvizsgálva eldönthetjük, hogy szükséges-e a műszert átállítani;
  4. Hozzuk létre a lemezre mentéshez szükséges struktúrákat: az állomány tartalmazza a mérés kezdete óta eltelt időt, valamint a mért mennyiség értékét és mértékegységét! A program felületén legyen lehetőség a mentést felfüggeszteni, majd újraindítani (ezt megtehetjük CheckBox, vagy két nyomógomb segítségével);
  5. Ábrázoljuk a mért értékeket! Ügyeljünk arra, hogy üzemmódváltásnál ürítsük ki a régi tartalmat a grafikonról!
  6. Tegyünk fel három gombot, amellyel lehetőség van a méréshatár váltására: DCV üzemmódban ezek legyenek rendre: 0.5V, 5V, Auto. Ellenállásmérés módban: 500Ω, 5kΩ, Auto. A méréshatár váltásánál is ügyeljünk az üzemmódváltásnál leírtakra!
  7. Végül tegyük szebbé a kiírást és ábrázolást: Jelenítsük meg az aktuális mértékegységet a mért érték mögött és a grafikon tengelyén!

A mérésről készített jegyzőkönyv lényegében egy használati utasítás az elkészült felülethez. Ismertessük a megvalósított funkciókat, a grafikus felület kezelését, valamint részletesen térjünk ki az olyan megoldásokra, amelyek nem a fentiekben megfogalmazott felépítést követik! A jegyzőkönyvhöz csatoljuk a mérőprogram forráskódját!