前言

主要利用C#通过串口通信控制步进电机和安捷伦信号源。


一、串口通信

第一步通过串口RS232控制步进电机,CSDN上很多串口通信示例,下面直接上代码

        private void Form1_Load(object sender, EventArgs e){string[] strCom = SerialPort.GetPortNames();if (strCom == null){MessageBox.Show("本机没有串口!", "Error");return;}foreach (string com in strCom){cbCom.Items.Add(com);}cbCom.SelectedIndex = 0;sp1.PortName = cbCom.Items[0].ToString();//串口号sp1.BaudRate = 9600;Control.CheckForIllegalCrossThreadCalls = false;sp1.DataReceived += Sp1_DataReceived;// sp1.DataReceived += new SerialDataReceivedEventHandler(Sp1_DataReceived);sp1.DtrEnable = true;sp1.RtsEnable = true;sp1.ReadTimeout = 1000;sp1.Close();cbBaudRate.Text = "9600";cbDataBits.Text = "8";cbStop.Text = "1";cbCheck.Text = "无";}
        private void sp_DataReceived(object sender, SerialDataReceivedEventArgs e){System.Threading.Thread.Sleep(100);     //延时100ms等待接收数据//this.Invoke  跨线程访问ui的方法this.Invoke((EventHandler)(delegate{if (isHex == false){tbxRecvData.Text += sp.ReadLine();//Azi_fpos = sp.ReadExisting();}else{Byte[] ReceivedData = new Byte[sp.BytesToRead];sp.Read(ReceivedData, 0, ReceivedData.Length);String RecvDataText = null;for (int i = 0; i < ReceivedData.Length - 1; i++){RecvDataText += ("0x" + ReceivedData[i].ToString("X2") + " ");}tbxRecvData.Text += RecvDataText;}sp.DiscardInBuffer();       //丢弃接收缓冲区数据}));}

这里需要注意的是有个事件,如果需要每次send发送完数据就立马收数据的话可以用,如果不是的话可以手动接收sp.ReadExisting();

//定义DataReceived事件,当串口收到数据后触发事件
//sp.DataReceived += new SerialDataReceivedEventHandler(sp_DataReceived);

第二步当通信成功后我们需要通过指令来控制步进电机,这时候就需要查询用户手册并调试。当然在这之前可以还需要一个串口调试助手更有效的验证,下面分享两个串口助手给大家

1是win10自带的串口调试助手,

2是360 软件下载

调试通过后,就可以接下的步骤。

二、VISA和SCPI

SCPI(可编程仪器的标准命令)是一种基于 ASCII 的仪器命令语言,供测试和测量仪器使用,简单来说就是你发送给一个设备一串SCPI格式的字符串,它就能完成相应操作,这就是它们的通用语言。SCPI分为标准SCPI和扩展的SCPI,前者是各种设备通用的,如重置命令RST,后者是各个厂家各种设备自己扩展的命令。如果相应设备支持SCPI,在其操作手册中会对SCPI详细说明,最好是查看需要控制的设备说明文档。

VISA(Virtual Instrument Software Architecture,简称为"Visa"),即虚拟仪器软件结构,是VXI plug&play联盟制定的I/O接口软件标准及其规范的总称。VISA提供用于仪器编程的标准I/O函数库,称为VISA库。计算机通过它来控制仪器。
         VISA的适用和各种仪器接口通信,无论仪器使用的串口还是其他任何一种总线,诸如USB、GPIB、VXI、PXI和LXI等,都具有相同的操作函数,从而实现了控制操作上的统一。

安捷伦等仪表通讯需要用到VISA的库。库的获取方法目前知道两个,1个是下载是德科技的IO Library,还有就是上NI下载NI-VISA.

1.引入库

在项目中添加引用,引用VISA的库。

2.编写安捷伦信号源程序

VISA程序集不支持太老的安捷伦设备,需另行解决可以通过LAN或者GPIB等

        //方法:实现设备连接public void Connect(string address){ResourceManager con = new ResourceManager();FormattedIO488 ioobj = new FormattedIO488();try{ioobj.IO = (IMessage)con.Open(address, AccessMode.NO_LOCK, 2000, "");ioobj.WriteString("*IDN?", true);string message = ioobj.ReadString();if (message != ""){RecList("连接", message, "连接成功");}ioobj.IO.Clear();ioobj.IO.Close();}catch (Exception){RecList("失败", "", "发送命令或接收数据异常!");}}

连接成功后就可以通过 ioobj.WriteString()和ioobj.ReadString()方法进行读写数据。也可以把这个方法放在类里边,这样声明了类的对象,就是可以多次重复使用。


总结

初次发表,感谢大家。如果大家有问题可以多交流。


利用C#Winform串口通信安捷伦信号源相关推荐

  1. 基于vs2017 Qt编写软件控制安捷伦信号源

    一. 背景 暗室测试通过PC 软件直接控制信号源(信号发生器),不用手动操作.像这种标准控制仪器都有提供有PC接口,要完成信号源的控制我们需要了解两方面的知识:SPCI和VISA. SPCI:SCPI ...

  2. 基于VS2010下利用MFC编写软件控制安捷伦频谱仪

    所用频谱仪N90XXA 需求: (1)能够实现设置中心频率 (2)能够实现设置带宽 (3)能够实现设置参考电平 (4)能够实现设置参考电平补偿 (5)能够实现最大保持 (6)能够实现清除最大保持 (7 ...

  3. 安捷伦or是德信号源+频谱仪操作:从程控到自动测试(附A)信源播放的程控实现

    ** 安捷伦/是德信号源+频谱仪操作:从程控到自动测试(附A)信源播放的程控实现 ** 一.概述 目前,对于射频模块的调试与测试,国内大多数的厂商(特别是中小型企业)均是通过最原始的手工调测方式,需要 ...

  4. QT 与日置、安捷伦测试仪 通讯 232串口 GPIB

    记录一下经验 一.232串口通讯 日置仪表 232串口通讯比较简单,自带的QSerialPort就可以识别. 1.包含头文件. #include <QtSerialPort/QSerialPor ...

  5. 安捷伦万用表--Agilent34401A数字万用表串口发送数据只上位机使用说明

    Agilent34401A数字万用表串口发送数据使用说明 安捷伦34410A万用表可以通过背后的RS232接口与电脑连接,进行串口通信. 仪表的串口有两种工作方式,一种是交互模式–既能接收命令,又能发 ...

  6. 基于C#的计算机与安捷伦34970A通信方法

    最近做个项目要用到安捷伦34970A采集数据,34970A支持RS232接口,但是如果直接用winform自带的seriaport类基本是不管用的,经过几天研究和问客服呀,也没得到个啥结果,头发倒是掉 ...

  7. 《安富莱嵌入式周报》第296期:硬件电路实现SPI转以太网,单片机3D游戏图形引擎,Linux基金会年度报告,安捷伦直流电源原理图,KEIL C51更新9.61

    往期周报汇总地址:http://www.armbbs.cn/forum.php?mod=forumdisplay&fid=12&filter=typeid&typeid=104 ...

  8. 【案例分析】从安捷伦的逆袭之路,看供应商管理如何实现双赢

    供应商管理的好坏对企业来说至关重要.特别是对于品质要求较高的仪表仪器行业,如选择的供应商在库存水平.材料品质.供货提前期.交货等方面存在问题,将会直接打乱企业的生产节奏.本文就仪器仪表行业发展现状为分 ...

  9. Agilent/安捷伦N4010A蓝牙测试仪

    产品名称:无线连接测试仪 产品型号: N4010A 厂商品牌:安捷伦 技术指标:  N4010A无线连接测试仪可灵活测量最新的无线标准并提高测试效率. N4010A是一款通用的多格式无线连接测试解决方 ...

最新文章

  1. python 科学计算基础教程电子版-Python 科学计算基础 (整理)
  2. 医疗影像网络PACS系统方案
  3. requests获取响应时间(elapsed)与超时(timeout)
  4. dubbo 服务压测_Dubbo高性能网关--Flurry介绍
  5. 有问题,上微信问答群!
  6. python项目开发:用RabbitMQ实现异步RPC
  7. 显示编译代码时长的demo
  8. oracle函数 NLS_INITCAP(x[,y])
  9. 天翼短信 java_中国电信天翼开放平台自定义短信验证码和模板短信demo
  10. 高等数学(下)知识点总结
  11. 学习笔记(三)数据预处理之数据清理
  12. 2020年的成长印记
  13. 学霸的迷宫 - 广搜例题
  14. 读取采购订单附件(GOS)-[BDS_GOS_CONNECTIONS_GET/SO_DOCUMENT_READ_API1]
  15. 日志分析之识别真假蜘蛛与处理办法
  16. 基于正点原子开拓者FPGA串口的Modelsim仿真程序
  17. 指纹图片调对比度 c语言,手动调整图片打印深浅(亮度/对比度 Windows OS)
  18. 《高斯数学日记》——简介
  19. 黑龙江大学软件测试实验报告
  20. 博途SCL伪随机数产生(全局库解析)

热门文章

  1. 创建maven web项目出错Project build error: Non-parseable POM D:\Ieven\workspace\ws1802\jt-web\pom.xm
  2. RAMDISK 虚拟内存硬盘设置
  3. Win7系统下解决魔兽争霸全屏问题
  4. 为什么说物流企业离不开商业智能系统
  5. 这几款图片转PDF软件推荐给你
  6. 多行文本超出部分省略号代替
  7. 仿小米导航栏;导航栏悬浮滚动更改背景色javascript实现;
  8. centos上没有yum 也没有wget 怎么办
  9. 编码器—绝对式与增量式的区别(图解)
  10. 轻量级orm框架——gzero指南