% Date: 10/14/14 % Tested on a 64-bit Windows 7 computer % using NI-VISA 5.4 and Matlab 2014a % with Matlab Instrument Control Toolbox % Tested on AWG70002A with Firmware 3.0.0366 % Program: *.mat Waveform Import and Sequence Builder % This program imports waveforms from a *.mat file on the AWG's % C:\ drive, builds a sequence out of them, and adds two sequence % control commands (wait for event and goto) %% Configure VISA resource and identify instrument visa_brand = 'ni'; visa_address = 'TCPIP::192.168.1.11::INSTR'; buffer = 100000; awg = visa(visa_brand, visa_address, 'InputBuffer', buffer,'OutputBuffer', buffer); %configure instrument as a VISA resource fopen(awg); awg.timeout = 5; instID = query(awg,'*IDN?'); % identify disp(instID); fwrite(awg,'*RST'); % reset %% Import waveforms from *.mat file fwrite(awg,'mmemory:open:sasset "C:\binary patterns.mat"'); query(awg,'*opc?'); % wait for AWG to finish current operation %% Build the sequence % create new sequence fwrite(awg,'slist:sequence:delete "binary sequence"'); fwrite(awg,'slist:sequence:new "binary sequence", 16, 1'); %16 steps, 1 track % populate the sequence with waveforms fwrite(awg,'slist:sequence:step1:tasset1:waveform "binary sequence", "waveform_0"'); fwrite(awg,'slist:sequence:step2:tasset1:waveform "binary sequence", "DC_filler"'); fwrite(awg,'slist:sequence:step3:tasset1:waveform "binary sequence", "waveform_1"'); fwrite(awg,'slist:sequence:step4:tasset1:waveform "binary sequence", "DC_filler"'); fwrite(awg,'slist:sequence:step5:tasset1:waveform "binary sequence", "waveform_2"'); fwrite(awg,'slist:sequence:step6:tasset1:waveform "binary sequence", "DC_filler"'); fwrite(awg,'slist:sequence:step7:tasset1:waveform "binary sequence", "waveform_3"'); fwrite(awg,'slist:sequence:step8:tasset1:waveform "binary sequence", "DC_filler"'); fwrite(awg,'slist:sequence:step9:tasset1:waveform "binary sequence", "waveform_4"'); fwrite(awg,'slist:sequence:step10:tasset1:waveform "binary sequence", "DC_filler"'); fwrite(awg,'slist:sequence:step11:tasset1:waveform "binary sequence", "waveform_5"'); fwrite(awg,'slist:sequence:step12:tasset1:waveform "binary sequence", "DC_filler"'); fwrite(awg,'slist:sequence:step13:tasset1:waveform "binary sequence", "waveform_6"'); fwrite(awg,'slist:sequence:step14:tasset1:waveform "binary sequence", "DC_filler"'); fwrite(awg,'slist:sequence:step15:tasset1:waveform "binary sequence", "waveform_7"'); fwrite(awg,'slist:sequence:step16:tasset1:waveform "binary sequence", "DC_filler"'); % wait for trigger A on step 1 fwrite(awg,'slist:sequence:step1:winput "binary sequence", atrigger'); % go to step 1 after the last sequence step % the default goto command is NEXT fwrite(awg,'slist:sequence:step16:goto "binary sequence", first'); %% Assign sequence and enable ouptut fwrite(awg,'source1:casset:sequence "binary sequence", 1'); % assign sequence to track 1 fwrite(awg,'output1:state on'); fwrite(awg,'awgcontrol:run:immediate'); %% Disconnect from the instrument fclose(awg); delete(awg); clear awg;