我主要是做磁场方面的课题,所以需要控制电源。然后电源是VISA协议的,一开始我完全不知道咋弄。我相信大家一开始接触硬件都是很懵逼,要控制他需要什么什么协议,听着是不是头都大了啊!! 我当时何止头大,都想不毕业了,太难了!!!
但是抹干了眼泪还是要毕业啊!! 一点一点的搞。搞了很久发现除了会手动按这个玩意。。
看这道光都快闪瞎了我的眼,我还敢去控制它吗?? 没办法 未必不毕业了? 学!!!!!
网上看了很多关于VISA控制电源的。我发现就算拿来了 我这边也不能直接用。 所以大家一定还是要靠自己理解啊。。
开始一点一点的接触啊。看软件语言到底是怎么控制硬件的。
就是这四大步骤。理论知识学了,该实际操作!!!
建议大家对于有硬件的小伙伴,为了节约自己的时间直接打电话给硬件厂商要技术支持,他们会省去你很大一笔时间的!!!!
VISA有一个程序可以输入SCPI指令。SCPI是什么呢?
这个指令就是我们控制电源的命令(字符串格式) 我们C++控制的时候,将要写的命令存在一个字符串,然后调用ViWrite就可以成SCPI去控制电源了。 我拿真实例子给你们打比方。
1.我先去查询了我电源的编程手册(找技术支持要,或者你直接找他找C++控制硬件程序都可),
2.第一步手册查出,开电源的开关的命令是:output 1 (0是关闭)
3.我们先在VISA的软件里输入这个SCPI命令看是否正确,你这步都不对,就算C++程序写好,你照样不能控制硬件。
在这里你可以看到你硬件的设备号,这个不知道的问硬件的技术支持或者你硬件面板应该都有! 然后双击连接
点开后点Input/Output,红框就是我要写入的指令,我开始写入打开电源指令了。然后点write
终于可以用电脑控制硬件了,开了一整天!!!电源亮了的图片忘记照了改天补上~~
因为我们控制硬件肯定是为了要有一些逻辑,要让硬件疯狂输出!直到我们毕业为止~~~哈哈哈哈
程序的算法必须要放在硬件上跑的!!
那么这就需要借助VISA协议了。它真的很牛叉,让我们只用调用几个api就把硬件搞得服服帖帖!!!
之前的流程图,我再用一下,我们跟着写。
但是这些的前提,我们至少要导包啊。。。 毕竟是api,虽然我们不写里面的程序,至少要它存在我们的程序中啊!!!导包如下:
INCLUDEPATH += "C:\Program Files (x86)\IVI Foundation\VISA\WinNT\Include"
LIBS += "C:\Program Files (x86)\IVI Foundation\VISA\WinNT\lib\msc\visa32.lib"
头文件要包含
砸门就可以开了的使用这些api了。
代码在此处免费获取:
https://download.csdn.net/download/qq_40262372/14988711
你们从 最下面的on_pushButton_clicked()看,这里是程序开始的地方
我这里先是 openDev(DC[0]); 这个openDev 在最上面的里面有两个指令对应着我们流程图的前两个流程。 DC[0]是我硬件的地址。
然后我开始循环写电流了, writeToDev(0.1*i); 里面就是把这个double的数组转为char[] 然后viwrite到visa。
VISA利用这个命令就可以控制硬件了。这个命令都是在硬件的控制命令都有的。 代码获取处(免费获取):
如果觉得对你有帮助的话,可以点个赞收藏之类的哦! 谢谢! 手都敲疼了。。。