SCPI命令VB.net负整数到字符串错误

时间:2018-02-27 19:35:32

标签: vb.net visual-studio gpib

在VB.net中,我通过GPIB-to-USB向agilent / keysight设备发送SCPI命令。我正在使用此示例将数据写入仪器。 https://www.keysight.com/main/editorial.jspx?cc=BR&lc=por&ckey=492255&nid=-33170.1090751.08&id=492255

以下是我遇到问题的部分代码。

Dim P As Integer
    Dim Power As Integer
    For P = -50 To 0 Step 10
        System.Threading.Thread.Sleep(500)
        Power = P
        instrument.WriteString("POW" & Str$(P) & "dbm")
        Console.WriteLine("Power" & P) 'Testing if this portion of the for loop is reached

我的代码构建成功,但我正在与之通信的设备显示错误消息“无效分隔符”。我认为问题是P起始为负数。如果我要做类似的事情,对于P = 0到10步骤1,它将在接收命令的设备上工作。但是,Str $似乎不适用于负数。使用Console.WriteLine,我确实看到我的循环在控制台输出中正常工作。根据控制台输出,循环的结构不是问题。

我怎么能用P作为负数开始这项工作?我测试了代码和设备,看它是否可以通过简单地使用instrument.WriteString(“POW -5 dbm”)来获取负数,这是有效的。我真的相信问题涉及 Str $ 。我也尝试过(“POW”& P.ToString()&“dbm”),但这也不起作用。我也用CStr替换了Str $,但这也没用。另请注意,睡眠/延迟不是问题,因为我在另一个for循环中实现了它,并且没有错误。

1 个答案:

答案 0 :(得分:0)

我只是想通了。战俘之后必须有一个空间。它应该看起来像“POW”