组态王与arduino串口通讯的实现

组态王与arduino串口通讯的实现
组态王与arduino串口通讯的实现

组态王与arduino的通讯控制设计作者:霍澍

1、组态王。。。。。。。。。。。。。。。。。。。。3

2、arduino。。。。。。。。。。。。。。。。。。。3

3、组态王与arduino通讯的意义。。。。。。。。。。4

4、组态王与arduino通讯具体实现过程。。。。。。。5

1、组态王

组态王,即组态王开发监控系统软件,是新型的工业自动控制系统,它以标准的工业计算机软、硬件平台构成的集成系统。它具有适应性强、开放性好、易于扩展、经济、开发周期短等优点。尤其考虑三方面问题:画面、数据、动画。通过对监控系统要求及实现功能的

分析,采用组态王对监控系统进行设计。组态软件也为试验者提供了可视化监控画面,有利于试验者实时现场监控。而且,它能充分利用Windows的图形编辑功能,方便地构成监控画面,并以动画方式显示

控制设备的状态,具有报警窗口、实时趋势曲线等,可便利的生成各种报表。它还具有丰富的设备驱动程序和灵活的组态方式、数据链接功能。

2、arduino

Arduino是一款便捷灵活、方便上手的开源电子原型平台。包含

硬件(各种型号的Arduino板)和软件(Arduino IDE)。由一个欧洲开

发团队于2005年冬季开发。它主要包含两个主要的部分:硬件部分是可以用来做电路连接的Arduino电路板;另外一个则是Arduino IDE,你的计算机中的程序开发环境。你只要在IDE中编写程序代码,将程序上传到Arduino电路板后,程序便会告诉Arduino电路板要做些什么了。

Arduino能通过各种各样的传感器来感知环境,通过控制灯光、

马达和其他的装置来反馈、影响环境。板子上的微控制器可以通过A rduino的编程语言来编写程序,编译成二进制文件,烧录进微控制器。对Arduino的编程是通过 Arduino编程语言 (基于 Wiring)和A rduino开发环境(基于 Processing)来实现的。基于Arduino的项目,可以只包含Arduino,也可以包含Arduino和其他一些在PC上运行

的软件,他们之间进行通信 (比如 Flash, Processing, MaxMSP)来

实现。

3、组态王与arduino通讯的意义

arduino可以外接各种传感器来做检测或者外接电机、灯光或者

电磁阀来做各种控制。arduino最大的优点是价格便宜,电路连接简

单相对51单片机来说不需要去设计电源电路和通讯电路并且编程软

件相对容易掌握,而且在国内现在出现了很多图形化的模仿scratch

的图形化编程软件,其中最优秀的是中科院计算技术研究所王强老师开发的linkboy,以及北师大创客学院傅骞团队开发的米思齐。

arduino在国内大部分用来给中小学生做创客教育,虽然是创客

教育本质上还是属于电气自动化领域,自动化工程师都知道想要做好一个完整的自动控制系统必须要了解传感器在使用环境下的电气参数。arduino没有集成显示功能,传统的做法是用1602显示屏或者点阵

数码管来显示传感器读数,但是这样的话有几个问题,一是占用了输入输出点(IO端口),二是没有数据保存功能并且也不够直观。针

对这两个问题linkboy的开发者王强老师已经想到在软件中集成波形图功能,但是功能还不够完善。我查找了互联网关于arduino数据观察的资料发现多数使用者都是自己用通用编程软件(VB\VC\C#\DELPH

I等)自己开发的上位机软件,开发难度大要求之高已经不是业余爱

好者能轻易设计出来,唯一能集成了arduino的只有S4A和LABVIEW

的arduino库,但是这两款软件S4A太过于简单更倾向于scratch而LABVIEW软件太过庞大只是用来和arduino通讯就没有意义。所以我

创新使用了工业控制系统中常见的组态软件组态王。如同先前所述组态王使用简单功能强大自身集成了大量的设备驱动不需要使用者开发困难的通讯程序并且软件也很小。

4、组态王与arduino通讯具体实现过程

(1)设计准备

硬件:arduino pro mini

开发软件:linkboy 3.0

上位机软件:组态王 6.55

(2)arduino程序linkboy版

图中硬件串口接收数据段的程序是接受数据控制arduino主板上

的小灯,接受的数据类型是字符串,内容是1时灯亮如果是其他数字灯灭。最后发送完清空字符串。

图中控制器反复执行的是串口发送数据段程序,为了防止串口同

时收发有冲突我做了一个判断在串口有数据时不发送数据,其实lin kboy软件的开发者应该考虑到了这种有冲突的事件,只是我自己再

做一次。然后发送的也是字符串1024,在字符串后面必须要加换行

符或者回车符,否则一连串的数字对于组态王来说是无法准确分辨的。然后清空字符串延时0.5秒再发送,也就是说我们把传感器读数加在字符串中就能够把传感器的读数发送出来。

(3)组态王的设置、界面以及脚本

创建项目的步骤:

打开组态王

新建工程

新建完成后出现新建的那个工程,双击打开

进入工程开发界面

注意下图标识部分

1)设置串口,我在实验时用的是COM1口,请查找自己arduino

在电脑上的串口号,找到串口号后单击COM1或者COM2选择通讯协议,这里非常重要,一定要选智能模块-北京亚控-串口数据发送-串口

(如果选择单片机-通用单片机ASCII-串口不保证通讯成功)。

选好通讯协议后下一步默认,再下一步就是选择电脑上与ardui no连接的串口

然后继续下一步默认设置一直到完成

这里还有一个注意点是串口的设置尽量和arduino那端一致,尤

其是波特率

2)设置变量,单击数据词典进入变量编辑窗口,双击新建可以

创建新变量。变量分两种,一种是IO变量是用来和外部数据交换的,我们控制linkboy的信号和接受linkboy的数据都是在这种变量中传输的,也就是数据的通道。另一种是内部变量,用来在组态王内部做数据运算和实现脚本程序功能的变量。我们先新建两个IO变量,一

个用来发送,一个用来接收。

IO字符串变量“a”是接受变量,接受的是arduino端发送的数据,连接设备就选刚才创建的新IO设备,寄存器一定要选RDATA (读数据),数据类型也只能选string,读写属性设置为只读,采集频率应当和arduino端的程序延时是一致的,刚才用linkboy做程序时发送数据为了防止串口资源全部被占用,所以我们设置了0.5秒的延时,所以这里设置500ms。

IO字符串变量“b”是发送变量,发送的是arduino端接收的数据,连接设备与数据类型和刚才创建接受变量是一样的,但是寄存器一定要选WDATA(写数据),读写属性也应该设置为只写。

最后我们再创建一个内部整数变量,这个变量的作用是把接受到的字符串数据转换成原本的数据,也就是说刚才用linkboy做的程序中是把一个整数1024加在字符串中发送出来的,而PC端接受到这个字符串必须要把它还原成整数。

3)点击左侧的画面,双击新建可以创建操作画面

输入画面名称,点击命令语言,在这里可以输入这个画面下的脚

本程序命令,因为这个程序的数据都在这一个画面中,所以脚本程序可以在这里写入。这一段脚本的意思就是把输入的IO字符串变量“a”转换成内存整数变量“a1”,组态王脚本语言的编写遵循C语言的基本规范,一段语句结束了需要加上英文输入法下的;然后把脚本程序

的执行时间也改为500ms尽量和前面一致。

最后就是画面的制作,我们平时使用的电脑软件画面是否精美,功能按键是否很容易找到,这些全都体现在画面的制作上。好的画面让使用的人看了很舒服长时间使用也不会有不适应的感觉,而糟糕的画面让使用的人却很反感就算有很好的创意也不能体现出来。

以下的画面中原始的字符串下面的四个#号里面存放的是IO字符串输出,变换后的整数下面的四个#号里面存放的是内存整数。趋势图是为了更好的观察内存整数的变化趋势。

图中的灯按键用来控制arduino主板上的LED灯,内部有两个事件组成,一个是按键按下,还有一个是按键松开,分别对应发送字符串"1"和字符串"0",因为前面linkboy软件的程序中写到如果字符串内容等于"1"控制器指示灯点亮,否则控制器指示灯熄灭。

RS232串口通信详解

RS232串口通信详解(引脚定义,电气特性,传输格式,接收过程,单片机晶振,RS485,RS422) 通信原理知识2010-01-03 20:53 阅读1 评论0 字号:大中小RS232串口通信详解(引脚定义,电气特性,传输格式,接收过程,单片机晶振,RS485,RS422) 串口是计算机上一种非常通用的设备通信协议。 --------------------------------- 串口的引脚定义: 信号方向来 9芯 缩写描述 自 1调制解调器CD载波检测 2调制解调器RXD接收数据 3PC TXD发送数据 4PC DTR数据终端准备好 5GND信号地 6调制解调器DSR通讯设备准备好 7PC RTS请求发送 8调制解调器CTS允许发送 9调制解调器RI响铃指示器

两个串口连接时,接收数据针脚与发送数据针脚相连,彼此交叉,信号地对应相接即可。 --------------------------------- 串口的电气特性: 1)RS-232串口通信最远距离是50英尺 2)RS232可做到双向传输,全双工通讯,最高传输速率20kbps 3)RS-232C上传送的数字量采用负逻辑,且与地对称 逻辑1:-3 ~-15V 逻辑0:+3~+15V 所以与单片机连接时常常需要加入电平转换芯片: --------------------------------- 串口通信参数: a)波特率:RS-232-C标准规定的数据传输速率为每秒50、75、 100、150、300、600、1200、2400、4800、9600、19200波特。 b)数据位:标准的值是5、7和8位,如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位);扩展的ASCII码是0~255(8位)。 c)停止位:用于表示单个包的最后一位,典型的值为1,1.5和2位。由于数是在传输线上定时的,并且每一

C#和232串口通信方法

本例程主要讲解使用C#,实现与232串口通信。达到采集串口数据,监控,可视化处理等。 一.概述 在Visual Studio 中编写串口通讯程序,一般都使用MicrosoftCommunicationControl(简称MSComm)的通讯控件,只要通过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。但在技术广泛应用的今天,Visual 没有将此控件加入控件库,所以人们采用了许多方法在Visual 来编写串口通讯程序:第一种方法是通过采用Visual Studio 中原来的MSComm 控件这是最简单的,最方便的方法,但需要注册;第二种方法是采用微软在.NET 推出了一个串口控件,基于.NET的P/Invoke调用方法实现;第三种方法是自己用API写串口通信,虽然难度高,但可以方便实现自己想要的各种功能。 现在微软推出了最新版本的Visual Studio 2005开发工具,可以不再采用第三方控件的方法来设计串口通讯程序。NET Framework 类库包含了SerialPort 类,方便地实现了所需要串口通讯的多种功能,为了使MSComm编程方法快速转换到以SerialPort类为核心的串口通讯的设计方法,本文着重讨论了Visual Studio 的MSComm控件和SerialPort 类设计方法的异同点。 二.SerialPort常用属性、方法和事件 1.命名空间 命名空间包含了控制串口重要的SerialPort类,该类提供了同步I/O 和事件驱动的I/O、对管脚和中断状态的访问以及对串行驱动程序属性的访问,所以在程序代码起始位置需加入Using 。 2.串口的通讯参数 串口通讯最常用的参数就是通讯端口号及通讯格式(波特率、数据位、停止位和校验位),在MSComm中相关的属性是CommPort和Settings。SerialPort类与MSComm有一些区别: a.通讯端口号

串口通信基本接线方法要点

串口通信基本接线方法 龚建伟2001.6.20 目次:1.DB9和DB25的常用信号脚说明 2.RS232C串口通信接线方法 3.串口调试中要注意的几点 目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连,以回答前段网友的咨询。 1.DB9和DB25的常用信号脚说明 2.RS232C串口通信接线方法(三线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连 ?同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连; ?两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口)

上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接,就能百战 百胜。 3.串口调试中要注意的几点: ?不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接; ?线路焊接要牢固,不然程序没问题,却因为接线问题误事; ?串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; ?强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。

串口通信的接线方法

目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422、RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。 1、DB9和DB25的常用信号脚说明 2、RS232C串口通信接线方法(三线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连; 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口) 图2 上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼些交叉,信号地对应相接,就能百战百胜。 3、串口调试中要注意的几点: 不同编码机制不能混接,如RS232C不能直接与RS422接口相连,市面上专门的各种转换器卖,必须通过转换器才能连接; 线路焊接要牢固,不然程序没问题,却因为接线问题误事;

串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果; 强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。 RS232C标准串口接线方法 (第二版) 检验仪器与微机的通讯主要是以RS232C标准接口为主,而串口的接线方法也有一定的标准,在此谈谈几种常用的串口接法,仅作参考: 一、标准接法 1、9对9(包括9针对9孔,9孔对9孔,9针对9针): 说明:以下的孔、针指串口线两端的串口,不过2、3有可能不交换 2-------------3 3-------------2 4-------------6 5-------------5 6-------------4 7-------------8 8-------------7 2、9对25(包括9孔对25孔,9孔对25针) 2-------------3 (备注:2、3有可能不交换) 3-------------2 4-------------6 5-------------7 6-------------20 7-------------5 8-------------4

串口通讯通信协议技术

串口通讯—通信协议 所谓通信协议是指通信双方的一种约定。约定包括对数据格式、同步方式、传送速度、传送步骤、检纠错方式以及控制字符定义等问题做出统一规定,通信双方必须共同遵守。因此,也叫做通信控制规程,或称传输控制规程,它属于ISO'S OSI七层参考模型中的数据链路层。 目前,采用的通信协议有两类:异步协议和同步协议。同步协议又有面向字符和面向比特以及面向字节计数三种。其中,面向字节计数的同步协议主要用于DEC公司的网络体系结构中。 一、物理接口标准 1.串行通信接口的基本任务 (1)实现数据格式化:因为来自CPU的是普通的并行数据,所以,接口电路应具有实现不同串行通信方式下的数据格式化的任务。在异步通信方式下,接口自动生成起止式的帧数据格式。在面向字符的同步方式下,接口要在待传送的数据块前加上同步字符。 (2)进行串-并转换:串行传送,数据是一位一位串行传送的,而计算机处理数据是并行数据。所以当数据由计算机送至数据发送器时,首先把串行数据转换为并行数才能送入计算机处理。因此串并转换是串行接口电路的重要任务。 (3)控制数据传输速率:串行通信接口电路应具有对数据传输速率——波特率进行选择和控制的能力。 (4)进行错误检测:在发送时接口电路对传送的字符数据自动生成奇偶校验位或其他校验码。在接收时,接口电路检查字符的奇偶校验或其他校验码,确定是否发生传送错误。 (5)进行TTL与EIA电平转换:CPU和终端均采用TTL电平及正逻辑,它们与EIA采用的电平及负逻辑不兼容,需在接口电路中进行转换。 (6)提供EIA-RS-232C接口标准所要求的信号线:远距离通信采用MODEM时,需要9根信号线;近距离零MODEM方式,只需要3根信号线。这些信号线由接口电路提供,以便与MODEM或终端进行联络与控制。 2、串行通信接口电路的组成 为了完成上述串行接口的任务,串行通信接口电路一般由可编程的串行接口芯片、波特率发生器、EIA 与TTL电平转换器以及地址译码电路组成。其中,串行接口芯片,随着大规模继承电路技术的发展,通用的同步(USRT)和异步(UART)接口芯片种类越来越多,如下表所示。它们的基本功能是类似的,都能实现

工业控制--串口通讯方法(精)

工业控制--串口通讯方法(WINAPI实现)介绍介绍工业控制领域利用串口和外围设备进行通讯。正文前言:总所周之,利用串口进行数据通讯在在通讯通讯领域重占有着重要的地位。利用RS232-RS485进行数据信号的采集和传递是VC 编程的又一大热点。串口通讯在通讯软件重有着十分广泛的应用。如电话、传真、视频和各种控制等。在各种开发工具中间,VC由于功能强大和灵活,同时也得到了Microsoft的最大支持,所以在一般进行涉及硬件操作的通讯编程重,大都推荐使用VC作为开发工具。然而工业控制串口通讯这个又不同于一般的串口通讯程序,因为控制外围设备传送的大都是十六进制数据(BYTE类型),所以,为了提高程序的运行稳定性,我们在编写程序进行通讯时可以不考虑传送BYTE类型数 据的工作。串口通讯目前流行的方法大概有两种:一是利用Microsoft提供的CMSCOMM控件进行通讯,不过现在很多程序员都觉应该放弃这种方式。二是利用WINAPI函数进行编程,这种编程的难度最高,要求你要掌握很多的API函 数。三是利用现在网络上面提供的一些串口通讯控件进行编写,比如CSerial类等。程序实现:我在经过许多的项目的开发和实践中发现,采用WIN API函数进行串口的开发能够给程序员很大的控件,并且程序运也很稳定。所以我将与串口接触的函数进行封装,然后在各个工程中进行调用,效果还是比较好的,现将各个函数和调用方法列举出来,希望对各位有所帮助。一、设置串口相关工作 #define MAXBLOCK 2048 #define XON 0x11 #define XOFF 0x13 BOOL SetCom(HANDLE &m_hCom, const char *m_sPort, int BaudRate, int Databit, CString parity, CString stopbit { COMMTIMEOUTS TimeOuts; ///串口输出时间超时设置 DCB dcb; ///与端 口匹配的设备 m_hCom=CreateFile(m_sPort, GENERIC_READ | GENERIC_WRITE, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL | FILE_FLAG_OVERLAPPED, NULL; // 以重叠方式打开串口 if(m_hCom==INVALID_HANDLE_VALUE { AfxMessageBox("设置串口部分,串口打开失败"; /////重叠方式异步通信(INVALID_HANDLE_VALUE)函数失败。return FALSE; } SetupComm(m_hCom,MAXBLOCK,MAXBLOCK; //设置缓冲区memset(&TimeOuts,0,sizeof(TimeOuts; TimeOuts.ReadIntervalTimeout=MAXDWORD; // 把间隔超时设为最大,把总超时设为0将导致ReadFile立即返回并完成操作

串口通信的基本知识

串口通信的基本知识 串口通信的基本概念 1,什么是串口? 2,什么是RS-232? 3,什么是RS-422? 4,什么是RS-485? 5,什么是握手? 1,什么是串口? 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus 或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS- 232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB 设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII 码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表示传输的结束,并且提供计算机校正时钟同步的机会。适用于停止位的位数越多,不同时钟同步的容忍程度越大,但是数据传输率同时也越慢。 d,奇偶校验位:在串口通信中一种简单的检错方式。有四种检错方式:偶、奇、高和低。当然没有校验位也是可以的。对于偶和奇校验的情况,串口会设置校验位(数据位后面的一位),用一个值确保传输的数据有偶个或者奇个逻辑高位。例如,如果数据是011,那么对

测试电脑的串口是否是好的最完整最可靠的方法就是连接一个真实的串口通信线路

测试电脑的串口是否是好的 最完整最可靠的方法就是 连接一个真实的串口通信线 路(总5页) -CAL-FENGHAI.-(YICAI)-Company One1 -CAL-本页仅作为文档封面,使用请直接删除

测试电脑的串口是否是好的最完整最可靠的方法就是连接一个真实的串口通信线路,2 端用相应软件,如串口调试助手之类的,相互发送发送数据,看另外一端是否能正常接收! 当然,也可以简单的单台机器测试,即短接串口的 2、3 两针,用相应软件,如串口调试助手,发送数据,看能否回显发送的数据 串口测试工具使用说明之一——串口调试工具 回复 6|人气 1387|收藏|打印|推荐给版主 分享文章到: ye_w 个人主页给TA发消息加TA为好友发表于:2010-09-30 19:52:48 楼主 使用串口实现网络通讯,不仅仅需要熟悉控制双方的指令和相关的协议,而且还需要善于使用串口测试工具。在串口测试工具中,最常用的就是串口调试工具。这个串口调试工具网络上一大把,大家百度一下就能下载到(包括我逐步发布的调试工具,都不会提供资源,请大家直接去网络上查找),常用的包括:串口调试助手,串口精灵,Comm等。我也一直使用串口调试助手,下面就是用图形并茂的方式来介绍,请大家指出不足,以便共同进步。 串口调试助手,网络上的版本也有不少,我截2个不同版本的图,但本质没有区别 版本一 怎样测试串口和串口线是否正常? 一步:把串口线或者USB转串口线插到计算机上。 二步:打开串口调试助手 接着选择串口,串口线和USB转串口的端口号查看路径: 电脑上--右键--属性--硬件--设备管理器-端口(COM和LPT),点 开端口前面的+号查看即可。 注释:1、USB-SERIAL CH340(COM4)就是USB转串口的端口号 2、通讯端口(COM1)是计算机原来自带的端口号 第三步:设置串口调试助手(见下图) 1、串口:COM4是和串口线或者USB转串口线在上述路径中查看到的端口号。 2、发送的字符/数据:图片上输入的是59,你可以随便输入2位数字。 3、其余设置按照下图。

三菱_FX系列PLC串口通讯配置方法

WebAccess 与三菱 FX系列PLC串口通讯配置方法 WebAccess三菱FX系列驱动支持以下型号PLC:FX, FX0, FX0N, FX1N,FX2N,FX1S等。FX系列PLC与上位机软件的通讯方式分为:RS232与RS485两种模式,默认通讯参数如下:波特率:9600,数据位:7位,停止位:1位,奇偶校验:偶校验,下面分别从两个方面进行配置说明: 一、RS232方式通讯 通常情况下,三菱FX系列PLC通过编程口(PS/2)与上位机软件进行RS232模式通讯,此时PLC中不需要做特殊配置,只需在WebAccess中将PLC对应的通讯参数匹配即可。步骤如下: 1、添加通讯端口 图1 添加通讯端口 数据流控(Flow Control):Rts、Dtr握手协议 当使用RS232/RS485转换器进行通讯连接时,数据流控信号将根据该转换器的流 控功能来决定。有些RS232/RS485转换器不需要软件做任何类型的握手协议,而有些 则需要软件进行Rts信号握手协议。强烈建议用户选择具有自动流控的RS232/RS485 转换器。 2、添加设备

图2 设备参数配置 单元号:实际PLC的串行地址号,即Device ID。单个PLC可以默认0进行通讯。 3、添加IO点 根据下图中的“参数”栏选择合适的参数类型(模拟量、数字量)和相应的转换代码。 图3 添加IO点

表1

二、RS485方式通讯 为便于远距离通讯,三菱FX2N系列PLC通过FX2N-485-BD模块实现RS485方式与WebAccess软件通讯,安装FX2N-485-BD需设置PLC的D8120寄存器,请参照《FX通讯用户手册》。FX2N-485-BD通讯模块如下图: FX2N-485-BD模块安装位置图: 图4 FX2N-485-BD模块及接线图 (1)三菱PLC配置方法步骤 1、FXGP/WIN-C编程软件配置方法 使用FXGP/WIN-C编程软件来进行串行口设置。用SC-09编程电缆连接电脑与PLC,在“PLC”下拉菜单中选择“串行口设置(D8120)” 图5 FXGP/WIN-C编程软件串口通讯参数配置 如下图所示,在“硬件”下拉框中选择“RS-485”,在“控制线”下拉框中选择“H/W mode”。

常用通讯测试工具使用

常用通讯测试工具 鉴于很多MCGS用户和技术人员对通讯测试工具并不很熟悉,本文档将针对实际的测试情况,对串口、以太网通讯调试过程中所涉及到的常用的测试软件进行相关的讲解。 1. 串口测试工具: 串口调试工具:用来模拟上下位机收发数据的串口工具,占用串口资源。如:串口调试助手,串口精灵,Comm等。 串口监听工具:用来监听上下位机串口相关操作,并截获收发数据的串口工具。不占用串口资源。如:PortMon,ComSky等。 串口模拟工具:用来模拟物理串口的操作,其模拟生成的串口为成对出现,并可被大多数串口调试和监听软件正常识别,是串口测试的绝好工具。如:Visual Serial Port等。 下面将分别介绍串口调试助手、Comm、PortMon和Visual Serial Port的使用。

1.1. 串口调试助手: 为最常用的串口收发测试工具,其各区域说明及操作过程如下: 串口状态 打开/关闭串口 十六进制/ASCII 切换 串口数据 接收区 串口参数 设置区 串口数据 发送区 串口收发计数区 发送数据功能区 保存数据功能区 操作流程如下: ? 设置串口参数(之前先关闭串口)。 ? 设置接收字符类型(十六进制/ASCII 码) ? 设置保存数据的目录路径。 ? 打开串口。 ? 输入发送数据(类型应与接收相同)。 ? 手动或自动发送数据。 ? 点击“保存显示数据”保存接收数据区数据到文件RecXX.txt。 ? 关闭串口。 注:如果没有相应串口或串口被占用时,软件会弹出“没有发现此串口”的提示。

1.2. PortMon 串口监听工具: 用来监听上下位机串口相关操作,并截获收发数据的串口工具。不占用串口资源, 但在进行监听前,要保证相应串口不被占用,否则无法正常监听数据。 连接状态 菜单栏 工具栏 截获数据显示区 PortMon 设置及使用: 1). 确保要监听的串口未被占用。 如果串口被占用,请关闭相应串口的应用程序。比如:要监视MCGS 软件与串口1设备通讯,应该先关闭MCGS 软件。 说明:PortMon 虽不占用串口资源,但在使用前必须确保要监听的串口未被占用,否则无法进行监视。 2). 运行PortMon,并进行相应设置。 ? 连接设置: 在菜单栏选择“计算机(M)”->“连接本地(L)”。如果连接成功,则连接状态显示为“PortMon 于\\计算机名(本地)”。如下图:

关于串口通信(232、485、422)和常见问题

下面先讲串口通信的一些基本概念,术语。如果对串口通信比较熟悉的,就当复习,如果哪里讲的不到位,欢迎及时指出。 这里并不对串口的编程作讲解,主要是从应用的角度去讲一讲。因为更多的时候,都是产品做好了,比如触摸屏需要和控制器,PLC通信。理想的情况下,一般只要一上电,不需要太多的操作和配置,就可以通信上。 文章后半部分罗列了一些相关问题,在解答前还需要先了解一下什么是串口通信,232,485,422等。 什么是串口通信 常见的串口通信一般是指异步串行通信。 这里就要说一下同步和异步的区别了。 先讲一下串行通信的概念。那么,与串行通信相对的是什么呢? 与串行通信相对的是并行通信。数据传输一般都是以字节传输的,一个字节8个位。拿一个并行通信举例来说,也就是会有8根线,每一根线代表一个位。一次传输就可以传一个字节,而串口通信,就是传数据只有一根线传输,一次只能传一个位,要传一个字节就需要传8次。就像小虎队那首歌一样,把你的心,我的心,串一串,再烤一烤。。串口通信就是把数据串在一根线上传输,所以就叫串口吧。

与异步通信相对的就是同步通信了。同步通信一般是指有一个时钟信号进行数据信号同步。同步通信对接收方来说就相对简单一些。因为有时钟信号在,每一个高低电平变化一下,就去取一下数据就行了。通信速率可以由发送方或者说是主站设备进行控制。通信速度也相对比串口通信快很多。但是为什么很多设备,屏和plc,控制器不采用这种方式,都使用串口呢。 那么,在很多设备上,不方便接太多线,比如接8根数据线,也不方便接同步时钟信号(这个后面再说),于是一种异步串行通信就诞生了。 相对来说,异步串口通信,就只需要一根线就可以发送数据了。在对速率要求不高的情况,使用一根线发送数据是带来大大的方便和实用价值的。 那么问题来了,怎么样才能保证一根线就能发送正常的数据呢。也就说发送方发送的数据,接收方是怎么知道是什么数据呢。 为了能正常发送数据和接收正确的数据,那异步串口通信就需要满足以下几个条件: 也就是双方必要约定一种暗号。 也许当时发送这个通信的小组是这样讨论的。 经理:我要用一根线就能传输数据,你来给我定个标准。

串口通讯方法的三种实现

串口基本信息 用一台电脑实验串口自发自收,实验前要将串口(以9针为例)的发送引脚(2脚)和接受引脚(3脚)短接。 三线连接:适用于计算机之间尤其是PC机和单片机之间的数据通信。其连接信号对为(TxD,RxD)、(RxD,TxD)、(SG,SG)。即发送数据TxD端和接受数据RxD端交叉连接,信号地SG对应连接。 七线交叉连接:适用于同型号的计算机之间的连接,如PC机间的数据通信。其连接信号对为:(TxD,RxD)、(RxD,TxD)、(SG,SG)、(RTS,CTS)、(CTS,RTS)、(DSR.DTR)、(DTR,DSR)。其中,TxD、RxD、SG与前面信号的含义相同,RTS为请求发送,CTS为准许发送,DSR为数据装置准备好,DTR为数据终端准备好。在本地连接的微机系统中,RTS、CTS、DTR、DSR用作硬件联络控制信号。 目前使用的串口连接线有DB9和DB25两种连接器,用户可以国家使用的具体机器选择相应的连接器。 一个串口通讯类在https://www.360docs.net/doc/9217783594.html,/network/serialport.shtml。 PC机的RS-232接口的电平标准是-12V标示“1”,和+12V表示“0”,有些单片机的信号电平时TTL 型,即大于2.4v表示“1”,小于0.5v表示“0”,因此采用RS-232总线进行异步通信是,发送端和接受端要有一个电平转换接口。 串口通讯方法的三种实现 串口是计算机上一种非常通用的设备通信协议。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB兼容的设备也带有RS一232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信(Serial Communication),是指外设和计算机间,通过数据信号线、地线、控制线等,按位进行传输数据的一种通讯方式。串口通信方便易行,应用广泛。在Windows应用程序的开发中,我们常常需要面临与外围数据源设备通信的问题。计算机和单片机(如MSC—51)都具有串行通信口,可以设计相应的串El通信程序,完成二者之间的数据通信任务。 1串口通讯原理 串口通信的原理非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其它线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通信的端口,这些参数必须匹配。 2串口通讯实现 在.net平台下使用C#语言实现串口通信的方法主要有三种:第一种方法是采用VB6.0中提供的MSComm控件,这种方法编程简单.但MSComm控件在使用前需要在系统中注册;第二种方法是采用微软在.net2.0及其以后版本提供的内置的串口操作类--System.IO.SerialPort,使用简单,但欠灵活;第三种方法是Windows的API函数,虽然编程难度高,但这种方法可以清楚地掌握串口通信的机制,并且高效、自由、灵活。 无论那种采用方式实现串口通讯,都需要通过以下四个步骤来完成: 1)打开串口 MSComm控件是通过设置PortOpen属性值来打开和关闭串口.具体语法为:MSComm. PortOpen=True/False. SerialPort类则是调用类的Open()和Close()方法来实现串口的打开和关闭。 API函数是通过CreateFile来打开串口.因为在Win32系统中,串口被看作一个文件,使用与文件相同的操作方式进行操作。 2)配置串口

串口通信的基本概念

串口通信的基本概念 主要软件: Driver Software>>NI-Serial 主要软件版本: 1.7 主要软件修正版本: N/A 次要软件: N/A 硬件: Serial 问题: 我从那里能够学到串口通信的基本知识 解答: 串口通信的基本概念 1,什么是串口? 2,什么是RS-232? 3,什么是RS-422? 4,什么是RS-485? 5,什么是握手? 1,什么是串口? 串口是计算机上一种非常通用设备通信的协议(不要与通用串行总线Universal Serial Bus或者USB混淆)。大多数计算机包含两个基于RS232的串口。串口同时也是仪器仪表设备通用的通信协议;很多GPIB 兼容的设备也带有RS-232口。同时,串口通信协议也可以用于获取远程采集设备的数据。 串口通信的概念非常简单,串口按位(bit)发送和接收字节。尽管比按字节(byte)的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。它很简单并且能够实现远距离通信。比如IEEE488定义并行通行状态时,规定设备线总常不得超过20米,并且任意两个设备间的长度不得超过2米;而对于串口而言,长度可达1200米。 典型地,串口用于ASCII码字符的传输。通信使用3根线完成:(1)地线,(2)发送,(3)接收。由于串口通信是异步的,端口能够在一根线上发送数据同时在另一根线上接收数据。其他线用于握手,但是不是必须的。串口通信最重要的参数是波特率、数据位、停止位和奇偶校验。对于两个进行通行的端口,这些参数必须匹配: a,波特率:这是一个衡量通信速度的参数。它表示每秒钟传送的bit的个数。例如300波特表示每秒钟发送300个bit。当我们提到时钟周期时,我们就是指波特率例如如果协议需要4800波特率,那么时钟是4800Hz。这意味着串口通信在数据线上的采样率为4800Hz。通常电话线的波特率为14400,28800和36600。波特率可以远远大于这些值,但是波特率和距离成反比。高波特率常常用于放置的很近的仪器间的通信,典型的例子就是GPIB设备的通信。 b,数据位:这是衡量通信中实际数据位的参数。当计算机发送一个信息包,实际的数据不会是8位的,标准的值是5、7和8位。如何设置取决于你想传送的信息。比如,标准的ASCII码是0~127(7位)。扩展的ASCII码是0~255(8位)。如果数据使用简单的文本(标准ASCII码),那么每个数据包使用7位数据。每个包是指一个字节,包括开始/停止位,数据位和奇偶校验位。由于实际数据位取决于通信协议的选取,术语“包”指任何通信的情况。 c,停止位:用于表示单个包的最后一位。典型的值为1,1.5和2位。由于数据是在传输线上定时的,并且每一个设备有其自己的时钟,很可能在通信中两台设备间出现了小小的不同步。因此停止位不仅仅是表

串口通信控件

串口通信控件 Prepared on 22 November 2020

附录A串行通信控件MSComm 在VisualStudio(、VC++.NET、C#.NET)中编写串口通讯程序,一般都使用MicrosoftCommunicationControl(简称MSComm)的通讯控件,只要通过对此控件的属性和事件进行相应编程操作,就可以轻松地实现串口通讯。但在技术广泛应用的今天,VisualStudio没有将此控件加入控件库,所以人们采用了3种方法在VisualStudio中编写串口通讯程序:第一种方法是通过采用原来的MSComm控件,这是最简单的,最方便的方法,但需要注册(可以通过安装或VC++来实现);第二种方法是采用微软在.NET中推出的一个串口控件SerialPort,方便地实现所需要串口通讯的多种功能;第三种方法是用API函数进行串口通信,虽然难度高,但可以方便实现自己想要的各种功能。 一、MScomm控件的使用 MSComm控件全称为MicrosoftCommunicationsControl,是Microsoft公司提供的简化Windows下串行通信编程的ActiveX控件,它既可以用来提供简单的串行端口通信功能,也可以用来创建功能完备的、事件驱动的高级通信工具。 MSComm控件在串口编程时非常方便,程序员不必花时间去了解较为复杂的API函数,而且在、VC++.NET、C#.NET等语言中均可使用。使用它可以建立与串行端口的连接,通过串行端口连接到其它通信设备(例如调制解调器),发出命令,交换数据,以及监视和响应串行连接中发生的事件和错误。利用它可以进行诸如拨打电话、监视串行端口的输入数据乃至创建功能完备的终端程序等。 1.MSComm控件处理通信的方式 MSComm控件通过串行端口传输和接收数据,为应用程序提供串行通信功能。 它提供下列两种处理通信的方式: 1)事件驱动方式 该方式相当于一般程序设计中的中断方式。当串口发生事件或错误时,MSComm控件会产生OnComm事件,用户程序可以捕获该事件进行相应处理。它是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时程序会希望得到通知,例如,在串口接收缓冲区中有一个字符到达或一个变化发生时,程序都可以利用MSComm控件的OnComm事件捕获并处理这些通信事件;OnComm事件还可以检查和处理通信错误。在程序的每个关键功能之后,可以通过检查CommEvent属性的值来查询事件和错误。 在程序设计中,可以在OnComm事件处理函数中加入自己的处理代码,一旦事件发生即可自动执行该段程序。这种方法的优点是程序响应及时,可靠性高。 2)查询方式

串口通信基本连线操作以及流控制方式

串口通信基本连线操作以及流控制方式 目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口(RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。 1.DB9和DB25的常用信号脚说明 9针串口(DB9)25针串口(DB25) 针号功能说明缩写针号功能说明缩写 1 数据载波检测DCD 8 数据载波检测DCD 2 接收数据RXD 3 接收数据RXD 3 发送数据TXD 2 发送数据TXD 4 数据终端准备DTR 20 数据终端准备DTR 5 信号地GND 7 信号地GND 6 数据设备准备好DSR 6 数据准备好DSR 7 请求发送RTS 4 请求发送RTS 8 清除发送CTS 5 清除发送CTS 9 振铃指示DELL 22 振铃指示DELL 2.RS232C串口通信接线方法(三线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连 ·同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连; ·两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口) 上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接,就能百战百胜。 3.串口调试中要注意的几点: 串口调试时,准备一个好用的调试工具,如串口调试助手、串口精灵等,有事半功倍之效果;强烈建议不要带电插拨串口,插拨时至少有一端是断电的,否则串口易损坏。 单工、半双工和全双工的定义 如果在通信过程的任意时刻,信息只能由一方A传到另一方B,则称为单工。 如果在任意时刻,信息既可由A传到B,又能由B传A,但只能由一个方向上的传输存在,称为半双工传输。 如果在任意时刻,线路上存在A到B和B到A的双向信号传输,则称为全双工。 电话线就是二线全双工信道。由于采用了回波抵消技术,双向的传输信号不致混淆不清。双工信道有时也将收、发信道分开,采用分离的线路或频带传输相反方向的信号,如回线传输。 奇偶校验 串行数据在传输过程中,由于干扰可能引起信息的出错,例如,传输字符‘E',其各位为: 0100,0101=45H D7 D0 由于干扰,可能使位变为1,这种情况,我们称为出现了"误码"。我们把如何发现传输中的错误,叫"检错"。发现错误后,如何消除错误,叫"纠错"。

串口通信基本接线方法

串口通信基本接线方法 目前较为常用的串口有9针串口(DB9)和25针串口(DB25),通信距离较近时(<12m),可以用电缆线直接连接标准RS232端口 (RS422,RS485较远),若距离较远,需附加调制解调器(MODEM)。最为简单且常用的是三线制接法,即地、接收数据和发送数据三脚相连,本文只涉及到最为基本的接法,且直接用RS232相连。 1.DB9和DB25的常用信号脚说明  9针串口(DB9) 25针串口(DB25) 针号功能说明缩写针号功能说明缩写 1 数据载波检测 DCD 8 数据载波检测 DCD 2 接收数据 RXD 3 接收数据 RXD 3 发送数据 TXD 2 发送数据 TXD 4 数据终端准备 DTR 20 数据终端准备 DTR 5 信号地 GND 7 信号地 GND 6 数据设备准备好 DSR 6 数据准备好 DSR 7 请求发送 RTS 4 请求发送 RTS 8 清除发送 CTS 5 清除发送 CTS 9 振铃指示 DELL 22 振铃指示 DELL 2.RS232C串口通信接线方法(三线制) 首先,串口传输数据只要有接收数据针脚和发送针脚就能实现:同一个串口的接收脚和发送脚直接用线相连,两个串口相连或一个串口和多个串口相连 · 同一个串口的接收脚和发送脚直接用线相连对9针串口和25针串口,均是2与3直接相连; · 两个不同串口(不论是同一台计算机的两个串口或分别是不同计算机的串口) 上面表格是对微机标准串行口而言的,还有许多非标准设备,如接收GPS数据或电子罗盘数据,只要记住一个原则:接收数据针脚(或线)与发送数据针脚(或线)相连,彼此交叉,信号地对应相接,就能百战百胜。 3.串口调试中要注意的几点:

STM32串口通信设置(查询方式)

STM32的串口配置也挺方便的 首先是配置UART的GPIO口 /******************************************************************************* * Name : UART1_GPIO_Configuration * Deion : Configures the uart1 GPIO ports. * Input : None * Output : None * Return : None *******************************************************************************/ void UART1_GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; // Configure USART1_Tx as alternate push-pull GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOA, &GPIO_InitStructure); // Configure USART1_Rx as input floating GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOA, &GPIO_InitStructure); } 然后是配置串口参数 /******************************************************************************* * Name : UART1_Configuration * Deion : Configures the uart1 * Input : None * Output : None * Return : None *******************************************************************************/ void UART1_Configuration(void) { USART_InitTypeDef USART_InitStructure; /* USART1 configured as follow: - BaudRate = 9600 baud - Word Length = 8 Bits - One Stop Bit - No parity - Hardware flow control disabled (RTS and CTS signals) - Receive and transmit enabled */ USART_https://www.360docs.net/doc/9217783594.html,ART_BaudRate = 9600; USART_https://www.360docs.net/doc/9217783594.html,ART_WordLength = USART_WordLength_8b; USART_https://www.360docs.net/doc/9217783594.html,ART_StopBits = USART_StopBits_1;

相关文档
最新文档