Monday, December 17, 2012

SCPI Example and Tools for the 34970A and 34972A

In this post we will look at a Standard Commands for Programmable Instruments (SCPI) example for controlling Agilent's 34970A / 34972A DAQ / Switch Units remotely. In the example we will remotely monitor a channel and then setup and execute a scan. From there we will look at controlling the 34972A via its built-in web interface and how the web interface can be used as a SCPI programming tool for building a custom program.

In the following example a pseudo programming language is used around the SCPI examples. In our pseudo programming language "//' represents comments that will be used to explain what is happening in the demo as we go. The connect() function will be used to connect to the 34970A / 34972A (in our example we will be using a 34972A with LAN, but they each use the same SCPI language). The printf() function will be used to send a command to the 34972A. The query() function will be used to send a command and read back the response from the 34972A. The "data:" will be used to print out the response from the instrument. The SCPI commands will be handled as strings so they will be placed in quotation marks "". A newline "\n" character will be used after each command, depending on the programming language and driver you are using in your program this may or may not be needed.

In the following example we will monitor temperature measurement using a thermocouple J-type sensor. Next will execute a multiple channel.

//Connect to the 34972A via LAN using the IP address, the instruments hostname could also be used
instr = connect("555.555.555.555");
//send a reset so we are starting at a known state
printf(instr, "*RST\n");
//identify the 34972A we are talking to
data = query(instr, "*IDN?\n");
//display the returned identity of the 34972A
data: Agilent Technologies,34972A,ALFREDO172,1.11-1.12-02-01
//configure channel 12 in slot 1 for thermocouple J-type 
printf(instr, "CONF:TEMP TC,J,(@112)\n");
//set channel 12 in slot 1 to the channel we want to monitor
printf(instr, "ROUT:MON:CHAN (@112)\n");
//Start monitoring channel 12, the 34972A will now continuously make measurements on channel 12
printf(instr, "ROUT:MON:STAT ON\n");
//query for channel 112 measurement
data = query(instr, "ROUT:MON:DATA?\n");
//display channel 12 temp measurement in degrees C
data: +1.81960000E+01
//query for another channel 112 measurement (remember monitor runs continuously) 
data = query(instr, "ROUT:MON:DATA?\n");
//display channel 12 temp measurement in degrees C
data: +1.81760000E+01
//turn the monitor function off
printf(instr, "ROUT:MON:STAT OFF\n");
//Now lets setup the scan using four channels in slot 1, 2 temp measurements and 2 resistance measurements
//Since one temperature measurement has already been configured lets do the other
printf(instr, "CONF:TEMP TC,J,(@113)\n");
//Configure both of the resistance measurements
printf(instr, "CONF:RES (@103,108)\n");
//Create a scan list with the four channels
printf(intr, "ROUT:SCAN (@101,105,112,113)\n");
//set the scan list to run five times so we will have a total of 20 measurements (4 channels x 5 sweeps = 20)
printf(intr, "TRIG:COUN 5\n");
//run the scan list
printf(instr, "INIT\n");
//wait 2 seconds for scan to finish 
wait(2);
//get the 20 readings from the 34972A's memory
data = query(instr, "FETC?\n");
//display the readings from the scan
data: +2.85266320E+03,+1.49620420E+02,+1.75500000E+01,+1.77660000E+01,+2.85271470E+03,+1.49617860E+02,+1.75350000E+01,+1.77510000E+01,+2.85271470E+03,+1.49620420E+02,+1.75320000E+01,+1.77510000E+01,+2.85270180E+03,+1.49620420E+02,+1.75420000E+01,+1.77510000E+01,+2.85271470E+03,+1.49621710E+02,+1.75200000E+01,+1.77410000E+01
//clear the scan list (optional)
printf(intr, "ROUT:SCAN (@)\n");
//close the connection to the 34972A
disconnect(instr);

The 34970A and the 34972A, for the most part, offer the same functionality and measurement capability. The main differences come from the remote IO. The 34970A offers GPIB and RS232 connectivity and the 34972A offers LAN and USB connectivity. The 34972A also offers a built-in web interface that can be accessed via the LAN connection. All you need is a LAN connection and a web browser to access the 34972A's web interface. The web interface allows you to control the 34972A remotely and offers tools that help you create custom software for controlling the 34972A remotely.

A 34972A was connected to the same local LAN network that my PC was connected to. I obtained the 34972A's IP address from its front panel. I entered the IP address in the address bar of the web browser on my PC and I was able to connect to the 34972A's web interface. The below figure shows the web interface control page for the 34901A card in slot 1 of the 34972A. From this page I can close switches, monitor a channel, and create scans.


By selecting the "Utility..." button in, the SCPI programming tools can be accessed. As an example, the "Command Monitor" function in the Utility menu provides a list of SCPI commands that coincides with the settings and functionality that were implemented via the web interface. This allows you to mimic on the web interface what you plan to do in your software and then simply cut and paste the resulting commands from the Command Monitor into your program. The below figure shows the Command Monitor window with recorded commands that show a relay being opened and closed continuously, a channel being setup for monitoring, and the monitor reading being fetched from the 34972A. 



In this blog post we looked at some examples of how to remotely control the 34970A and 34972A using SCPI. We then looked at the LAN web interface on the 34972A and how it can be used as a tool for creating custom software based on SCPI. As always if you have anything to add use the comments section below and if you have any questions feel free to email me.

For more information on the 34972A click here

For more information on the 34970A click here

For more information on a free program for controlling the 34970A and the 34972A click here

5 comments:

  1. Replies
    1. عن
      شركة مكافحة حشرات بالرياض القضاء على الحشرات المنتشره فى كافة اركان المنزل لذا اذا كنت بحاجه الى
      شركة رش مبيدات بالرياض متخصصه فى القضاء على كافة الانواع المختلفه من الحشرات الطائره والزاحفه فان شركة البراك تعد من افضل شركة رش مبيد بالرياض ، فالشركة تقدم
      مكافحة حشرات بالرياض باستخدام المعدات التى تساعد على القضاء على الحشرات جذريا وفى وقت بسيط بمجرد استخدام ادوات رش مبيدات بالرياض
      كما تمتلك الشركة
      رش مبيدات لها سمعتها الكبيره فى التخلص من الحشرات بانواعها المختلفه
      شركة مكافحة الفئران بالرياضتمتلك فريق عمل كبير جد\ا كل مهمته توفير واستخدام كل الفرص المتاحه من الادوات والمبيدات فى القضاء ومكافحة الحشرات بالطائف المنتشره بانواعها المختلفه
      فقد تكون من اكثر الاشخاص الباحتين عن شركة مكافحة النمل الابض بالرياض لما له من اثار خطيره على عفش المنزل فهو يقوم بتاكل عفش منزلك ويستطيع ان يتغذى على الخشب المكون منه اثاث المنزل لذا ينصخ يالبحن عن شركة مكافحة النمل الابيض بالرياض لها القدره على التخلص من النمل بكافة انواعها وكذلك التخلص من اليرقات التى تنتج عن هذا النوع
      من الاخطار الكبيره ايضا للنمل الابيض وهو انتشاره بكثره فى اساسات المنازل ويسكن فى البنيه التحتيه ويستطيع ان يسبب تاكل كبير فى البينه التحتيه الامر الذى يستلزم عليك شركة رش مبيدات بالرياض تستخدم المبيدات المختلفه للقضاء على هذا النوع منه فورا واعطاء كافة الضمانات التى تمنع من انتشار هذه الحشرات مره اخرى كذلك نمتلك شركة مكافحة النمل الابيض بالرياض تمتلك انواع مختلفه من المبيدات ذات الروائح النفاذه والاخرى التى لا تمتلك ايه الروائح كذلك استخدام الحقن الالمانى كل هذا لن تجده غير فى شركة مكافحة حشرات بالقصيم للتخلص فورا من الحشرات

      Delete
  2. Replies
    1. كنت تبحث عن شركة نقل عفش بالرياض لنقل عفش منزلك نيجة للسفر او الهجره او الانتقال فان شركة البراك تعد من اهم شركات نقل عفش بالرياض لها سمعتها الكبيره فى اعمال نقل وتخزين الاثاث فهى ايضا
      شركة تخزين عفش بالرياض لتخزين الاثاث لفترات اذا منت بحاجه الى تخزين الاثاث . شركة البراك
      شركة تخزين عفش بالرياض تمتلك العماله المدربه فى اعمال فك وتركيب الاثاث وكذلك تغليف الاثاث حتى لا يتعرض الى خدوش او كسور اثناء عمليات النقل المختلفه
      كما اننا نمتلك شركة نقل عفشوكافة فروع المملكه كما ان الشركه ليها اسطول كبير جدا من سيارات نقل الاثاث المختلفه وبكافة الاحجام كما تمتلك اسعار مناسبه جدا لكل حجم من احجام الاثاث لذا اذا كنت تبحث عن شركات نقل عفش بالرياض تمتلك عماله مدربه ولها القدره على نقل الاثاث من والى اصعب المناطق او نقل الاثاث خارج المملكه فان شركة البراك تعد خيارك الاول فى خدمات نقل العفش وتخزينه وكذلك شراء الاثاث المستعمل
      عند طلب خدمان شركة نقل عفش بالرياض فان الشركه تقوم بارسال مندوب لمعاينه الاماكن التى ستم نقل الاثاث منها واليها وكذلك حجم الاثاث ومداخل ومخارج الاماكن كما يقوم بتحديد حجك الاثاث للاتفاق مع الاسعار المناسببه لخدمات نقل العفش . بعد ذلك سيقوم بارسال فريق عمل كمنا بتحديده نتيجة لكمية الاثاث التى تمت معاينتها من قبل مندوب الشركه
      يقوم العمال باعمال الفك والتغليف حتى يتم ضمان الاثاث اثناء عملية النقل وعدم تعرضه الاثاث لاى مشاكل اثناء تحرك وانتقال السياره كذلك اثناء التحميل الامر الذى يتطلب استخدام بعض الانواع المختلفه من المغلفات التى تساعد على تغليف الاثاث باحكام وعدم تعرضه لاى احتكاك اثناء الانتقال من مكان الى اخر
      فى افضل لم تجد الا موسسة البراك تهتم دائمة بمواكبه كل جديد من الادوات والمعدات ومن السيارات التى تساعدنا على تقديم خدمات نقل عفش بطريقه احترافيه تمنع حدوث اى مشاكل اثناء عملية التحميل والنقل والتركيب فى موسسة البراك نراعى دائما طلبات العملاء وتقديم كافة النصائح اللازمه التى تساعدنا على اتمام عملية النقل بكل سهوله ويسر
      دائما ما تبحث عن اارقام شركات نقل عفش بالرياض فى صفحات الانترنت دون معرفه مسبقه عن خدمات الشركه التى تقوم بطلبها لذا ننصح دائما بالبحث عن توصيات عملاء سابقين ومدى ثقة العملاء فى الشركه وفى الخدمات التى تقوم بها الشركه ومن الخدمات اضا التى تشتهر بها شركة البراك ايضا ارقام شركة نقل عفش بالرياض وتقدم خدمات اخرى باضافة لفك وتركيب الاثاث اثناء نقل الاثاث

      Delete