Products > Test Equipment
EXCEL WITH MACRO TO RUN SDM3055, SDG1032X AND RD6006P
(1/1)
uargo:
Hello, I have been testing an Excel with a macro inside that is capable of managing a Siglent multimeter from the SDM3000 series, a Siglent signal generator from the SDG1000 series (other series may also work) and a Riden RD6006P source.
Manage Siglent devices via LAN and the Riden source via USB.
It is still in the Alpha phase and whoever uses it should understand that it may still not work completely well.
Functions it has:
1) It is capable of taking AC and DC measurements indefinitely from the SDM3000 and storing them in Excel itself.
2) Choose a maximum intensity and vary the voltage from the source and measure DC voltage and current and store the values in Excel and it will automatically generate a graph. graph (V vs Intensity)
2) Choose an rms AC voltage and vary the frequency from the SDG1000 and measure AC voltage and store the values in Excel and it generates a graph automatically. graph (V vs Frequency)
allows you to make a basic bode plot
https://drive.google.com/file/d/1QwC-W-pvLDK3XJuieplhsSMR9Ag6pSxP/view?usp=sharing
Once the file is downloaded, go to where the file was downloaded, right click on it, and unlock
uargo:
I suppose you all know how to manage the Siglent via SCPI, but for those interested in managing the Riden power supplies, I will tell you that it is done via USB in the RTU MODBUS protocol, that is, (serial MODBUS), and I will add some links to the tables of the addresses etc
https://github.com/Baldanos/rd6006/blob/master/registers.md
example;
--- Code: ---
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Dim MSComm As Object
Dim Buffer() As Byte
Dim a As Long
Dim tt As Long
Dim dd As Double
Dim volt As Double
Dim amp As Double
' Build Modbus RTU request (write to register 9 set amp)
ReDim Buffer(5)
Buffer(0) = &H1
Buffer(1) = &H6
Buffer(2) = &H0
Buffer(3) = &H9 'amperage set
dd = CDbl(amp) * 10000 'convert the variable amp to double and multiply by 10000, to convert it to Amperes
tt = dd
Buffer(4) = tt \ 256
Buffer(5) = tt Mod 256
a = enviamodbus(Buffer)
'Build the Modbus RTU request (write to register 8 set volt)
ReDim Buffer(5)
Buffer(0) = &H1
Buffer(1) = &H6
Buffer(2) = &H0
Buffer(3) = &H8 'set voltage
dd = CDbl(volt) * 1000 'convert the variable volt to double and multiply by 1000, to convert it to volts
tt = dd
Buffer(4) = tt \ 256
Buffer(5) = tt Mod 256
a = enviamodbus(Buffer)
'Build Modbus RTU request (write to register 18-12Hex set on/off)
ReDim Buffer(5)
Buffer(0) = &H1
Buffer(1) = &H6
Buffer(2) = &H0
Buffer(3) = &H12 'set on/off
Buffer(4) = &H0
Buffer(5) = &H1 '&H1 = on / &H0 = off
a = enviamodbus(Buffer)
Public Function enviamodbus(data() As Byte) As Boolean
Dim MSComm As Object
'Dim Buffer() As Byte
Dim i As Integer
Dim a As Long
Dim b, c As Byte
Dim bufferr As String
'Instantiate serial port control
Set MSComm = CreateObject("MSCOMMLib.MSComm.1")
' Open the serial port on textbox3 (adjust settings as necessary)
MSComm.CommPort = Int(TextBox3.Text)
MSComm.Settings = "115200,N,8,1" ' Communication settings
MSComm.InputLen = 0 ' Input length (0 to receive all)
' Abrir el puerto serie
MSComm.PortOpen = True
'Calculate CRC16 (CRC16 checksum)
a = CRC16(data)
b = a \ 256
c = a Mod 256
' Add the CRC16 bytes to the buffer
ReDim Preserve data(UBound(data) + 2)
data(UBound(data) - 1) = c ' Byte
data(UBound(data)) = b ' Byte
MSComm.Output = data
bufferr = ""
hh = 0
Do
'Bufferr = Bufferr & MSComm.Input
bufferr = MSComm.Input
hh = hh + 1
Sleep (5)
DoEvents
Loop Until Len(bufferr) > 6 Or hh > 40 '6
MSComm.PortOpen = False
enviamodbus = True
End Function
--- End code ---
Navigation
[0] Message Index
Go to full version