Monday, October 15, 2012

Creating an Arbitrary Waveform Remotely on a 33500 Series Waveform Generator

In this post we will look at how to send an arbitrary waveform to a 33500A/B series waveform generator using a remote connection. We will use Standard Commands for Programmable Instruments (SCPI) to communicate and send the waveform data to the waveform generator. We will look at two different ways to send the waveform data first the easier but less efficient method of just using ASCII or string characters for the waveform points. The second method, which is more complex but more efficient, is using binary blocks of the waveform data. Finally we will present information on where you can download a MATLAB function that connects and sends arbitrary waveform data to a 33500A/B series waveform generator using a LAN connection.

The following SCPI command examples will work on the following waveform generators: 33521A, 33522A, 33521B, 33522B, 33511B, 33512B. The SCPI commands are in green and the comments describing them are in blue.

SCPI Commands to Configure and Send Waveform to 33500
//Reset the 33500 to power up state
*RST
//Clear volatile memory (not needed, just used for completeness)
SOUR1:DATA:VOL:CLE
//Nine waveform points sent to waveform memory, normalized between 1 and -1 (binary block example //discussed later
DATA:ARB myArb, .75, 1, .50, .25, 0, -.25, -.50,-1, -.75
//Wait for command to finish (optional, do not need on waveforms that do not have a lot of points)
*WAI
//Select the waveform (chan 1) we just sent to volatile memory
SOUR1:FUNC:ARB myArb
//Select Arb waveform mode on the generator
SOUR1:FUNC ARB
//Store waveform in non-volatile memory if you want to use it again otherwise it will be erased when //generator is turned off
MMEM:STOR:DATA1 "INT:\myArb.arb"
//Set the sample rate of the waveform generator
SOUR1:FUNC:ARB:SRAT 1e6
//Set the amplitude
SOUR1:VOLT 1.0
//Set the amplitude offset
SOURCE1:VOLT:OFFSET 0
//Turn off filter for step / staircase response. Other filter settings include "Normal" and "Step" (default)
FUNC:ARB:FILT OFF
//Set output Z to 50 Ohms
OUTP:LOAD 50
//Turn on the output
OUTPUT1 ON

Note that depending on the programming language and drivers being used you may have to add a newline character "\n" at the end of each command. The above SCPI commands resulted in the below waveform:

In the above example the waveform data was sent using data points in ASCII or string form. This method works fine for small to medium sized waveforms, but not large waveforms made up of hundred of thousands or millions of points. The two main reasons are long strings take up large amounts of memory and could cause a program to run out of RAM space and the long string causes to large latencies over the remote IO that often lead to connection timeouts. The answer is to send the data in binary blocks. The command for sending a waveform as a binary block of data is: DATA:ARB myArb, #236[36 bytes of your_binary_data];[PMT]. Notice the first part of the command is the same "DATA:ARB arbname," The number immediately after the pound sign tells the generator how long the byte length number is so in the example '2' means that the byte length number is two digits XX. The next numbers (2 digits) is 36, which tells the generator that there are 36 bytes of waveform data. The "PMT" portion of the example is the endline character.

What makes sending binary block waveform data a little more complex compared to the string example is the waveform data has to be converted into binary data. The details for converting double or float values to binary data differs from programming language to programming language. The following example is done in MATLAB. In this example only the command for sending the waveform data will be shown, the same setup and configuration commands used in the first example would be used here as well.

Sending Waveform using Binary Block Data in MATLAB
%Store waveform in array called wPoints
wPoints = [ .75 1 .50 .25 0 -.25 -.50 -1 -.75];
%Since default is double convert wPoint to single precision and convert to column vector
wPoints = single(wPoints');
%Tells generator that least-significant byte (LSB) of each data point is first. Most computers use this
fprintf(fgen, 'FORM:BORD SWAP');  

%get the length of the waveform data in points in bytes (each points 4 bytes)
iBytes=num2str(length(I) * 4);
%create string header of SCPI command
header= ['SOUR1:DATA:ARB myArb, #' num2str(length(iBytes)) iBytes];
%Convert waveform datapoints to a block of binary data
binblockBytes = typecast(wPoints, 'uint8');  
%combine header and datapoints then send to waveform generator
fwrite(fgen, [header binblockBytes], 'uint8'); 


I created a MATLAB function that connects to a 33500A/B waveform generator via LAN and sends it a waveform from a vector variable. The function is free to download at MATLAB Central using the link provided below or just search on its name "33500 Arbitrary Waveform Function" to find it.

In this post we looked at how to create an arbitrary waveform on the 33500A/B series of waveform generators. We looked at how to send waveform data in string form and binary block form. If you have any questions from this posts please email me and if you have anything to add to this post use the comments section below.

Download MATLAB function to send waveform data to 33500

Click here to download the 33500 series user guide / programming reference

Click here for more information on the 33500B series of waveform generators

22 comments:

  1. افضل شركة تنظيف خزانات بالاحساء و بالدمام

    تنظيف الخزانات من الامور الهامة فشركة الاول شركة تنظيف خزانات بالاحساء لديها افضل خدمات تنظيف خزانات بالدمام من التطهير والتعقيم والتنظيف على اكمل وجة فشركة الاول لخدمات تنظيف خزانات بالاحساء لديها امكانيه التنظيف وغسيل جميع انواع الحزانات من خزان العلوى والارضى والخرسانيه بطريقة احترافية تساعد على ازالة كل الترسوبات والمتواجدة فى الخزان والاهتمام باعمال التعقيم من خلال افضل مواد متواجدة ومتعارف عليها ذات جودة عالمية دون ان ثؤثر على مياه الشرب فالاول افضل شركة تنظيف خزانات بالدمام و تتميز باسعارها التى تناسب الجميع وانظباط المواعيد وتتميز بعمالة مدربة على جميع انواع الخزانات

    _______

    افضل شركة تنظيف خزانات بالرياض

    تنظيف الخزانات من الامور الهامة فشركة الاول شركة تنظيف خزانات بالرياض لديها افضل خدمات الخاصة بعمليات تنظيف خزانات بالرياض من التطهير والتعقيم والتنظيف على اكمل وجة فشركة الاول لتنظيف خزانات لديها امكانيه التنظيف و غسيل خزانات بالرياض
    جميع انواع الحزانات من خزان العلوى والارضى والخرسانيه بطريقة احترافية تساعد على ازالة كل الترسوبات والمتواجدة فى الخزان والاهتمام باعمال التعقيم من خلال افضل مواد متواجدة ومتعارف عليها ذات جودة عالمية دون ان ثؤثر على مياه الشرب

    ReplyDelete
  2. بادروا الآن بالتواصل مع أهم شركة تسليك مجارى بالدمام و بجميع
    أنحاء المملكة و هي شركة أبراج دبي التي تقدم لكم مستوي رائع
    من الخدمات فتخلصكم من جميع مشاكل تسربات المياه التي تنتج
    من مواسير الصرف كما تعتبر
    شركتنا أكبر شركة كشف تسربات المياه بالدمام و توفر
    لكم أحدث الأجهزة .

    للتواصل الآن عبر :-


    http://abraj-dubai.net/%D8%B4%D8%B1%D9%83%D8%A9-%D8%AA%D8%B3%D9%84%D9%8A%D9%83-%D9%85%D8%AC%D8%A7%D8%B1%D9%89-%D8%A8%D8%A7%D9%84%D8%AF%D9%85%D8%A7%D9%85-%D9%88%D8%A7%D9%84%D9%82%D8%B7%D9%8A%D9%81/

    http://abraj-dubai.net/%D8%B4%D8%B1%D9%83%D8%A9-%D9%83%D8%B4%D9%81-%D8%AA%D8%B3%D8%B1%D8%A8%D8%A7%D8%AA-%D8%A7%D9%84%D9%85%D9%8A%D8%A7%D9%87-%D8%A8%D8%A7%D9%84%D8%AF%D9%85%D8%A7%D9%85/

    ReplyDelete
  3. شركة تاج لتنظيف المنازل وتسليك المجاري ومكافحة الحشرات بالدمام 0551844053 تمتلك الشركة افضل الادوات المثالية التى تستخدم في
    عمليات التنظيف بمفهومها الشامل والحديث شركة تنظيف منازل بالدمام
    ومن خدمات شركة تاج ايضا بمدينة الدمام ومنها :
    شركة تسليك مجاري بالدمام
    شركة مكافحة حشرات بالدمام
    شركة مكافحة النمل الابيض بالدمام
    شركة مكافحة الحمام بالدمام والخبر
    شركة تنظيف وشفط بيارات بالدمام والخبر
    شركة توصيل وشبك وتسليك بيارات بالدمام والخبر

    ReplyDelete
  4. شركة تاج للخدمات المنزلية بمدينة الرياض 0551844053 وتقديم افضل المستويات والاساليب على مستوى عالي من الدقة والخبرة الممتازة
    من تنظيف للمنازل والبيوت والشقق ورش المبيدات ومكافحة الحشرات ومكافحة النمل الابيض مع توفير قسم خاص لتسليك المجارى وتسليك
    بلاعات الحمامات والمطابخ وتسليك غرف التفتيش وتنظيف البيارات وتسليكها بالرياض شركة تسليك مجارى بالرياض

    شركة مكافحة حشرات بالرياض
    شركة مكافحة النمل الابيض بالرياض
    شركة رش مبيدات بالرياض
    شركة رش دفان بالرياض

    ReplyDelete
  5. شركة ركن الامثل لتسليك المجارى ومكافحة الحشرات بالقطيف 0502644550 نقدم افضل الحلول المثالية والشاملة في تقديم
    الخدمات المنزلية من تنظيف للمنازل والشقق والفلل ومكافحة النمل الابيض وكشف تسربات المياه بالقطيف


    شركة تسليك مجارى بالقطيف
    شركة مكافحة حشرات بالقطيف
    شركة كشف تسربات المياه بالقطيف
    شركة المثالية لمكافحة الحشرات بالقطيف
    شركة المثالية لمكافحة النمل الابيض بالقطيف

    ReplyDelete

  6. شركة ركن الامثل لتنظيف المنازل بالجبيل 0502644550 وتقديم كافة الخدمات المتعلقة بالمنازل وصيانتها من تسليك للمجاري
    وكشف لتسربات المياه ورش للمبيدات ومكافحة الحشرات ومكافحة النمل الابيض وتنظيف للشقق والسجاد والموكيت والمجالس بافضل
    الادوات المثالية باحترافية عالية وجودة ممتازة شركة تنظيف منازل بالجبيل

    شركة تسليك مجارى بالجبيل
    شركة تنظيف سجاد بالجبيل
    شركة تنظيف مجالس بالجبيل
    شركة رش مبيدات بالجبيل
    شركة كشف تسربات المياه بالجبيل
    شركة مكافحة حشرات بالجبيل

    ReplyDelete