当前位置: 首页 > 范文大全 > 公文范文 >

计算机与可编程仪器的串行通信探析

时间:2022-03-19 09:55:55  浏览次数:

摘要: 串行通信技术作为一个古老的通信技术广泛的应用在目前所有的计算机系统之中,在主流的操作系统都已经具备串行通信的底层支持,而虚拟化软件的发展也使得利用串行通信控制可编程芯片越来越容易。

关键词: 可编程芯片;串行通行;LABVIEW虚拟化软件

中图分类号:TP273 文献标识码:A 文章编号:1671-7597(2011)0920177-02

0 引言

在计算机系统内部和外部的通信中,串行技术是最先发展也应用的最广泛的一种技术。除了最初的EIA工业标准之外,USB和IEEE1394等新型的串行技术弥补了串行通信在速率上的不足。

1 可编程控制器中常用的通信技术

1)由电子工业协会(EIA)制定的RS-232、RS-422、RS-485串行接口技术是目前使用最为广泛的工业用通讯接口。目前的PC和工业用计算机都配有相应的通信模块,而市面上的操作系和程序设计软件也都有相关的API接口函数可以使用。

RS-232应用的最为广泛也是最早制定的通信协议,最高传输速率20kbps,使用不平衡传输方式,最大传输距离为15米。单片机和PLC中都配置有RS-232通讯模块,在数据传输量不大且对速度要求不高的情况下使用。

RS-422为RS-232的改进版,主要是提高了传输速度和距离,最高可以达到10Mbps,距离上限也增加至1000米,不过会随着距离的增加速率会下降,通常使用双绞线不应超过100米。在RS-422协议中只能存在一个主设备,因此在设备间不能通信。

RS-485则在RS-422基础上发展起来,传输速率和距离都一样,增加了双向传输功能,目前在应用中使用的较为普遍。

2)GBIP通用接口总线即IEEE488接口总线,是一种专用于连接可编程仪器的技术标准,传输速率为1.8Mbps,传输距离20米。使用双向异步传输方式,负逻辑电平,可同时连接多台仪器,目前受VXI和USB接口的威胁使用范围有所下降。

3)VIX总线是为了取代GBIP而发展的一项新技术,作为一个开放体系使用统一的校准方法以实现Plug&Play,在此基础上发展出了虚拟仪器(VI)概念。

4)USB作为在九十年代发展起来的新型串行接口一直以来只能在民用领域发展,但是近年来随着便携性仪器的发展与普及,可热插拔的要求也越来越重要,USB技术也开是在工业领域有所发展。

5)IEEE1394接口作为一种与系统平台无关的通信协议因为其高速性和纯数字特性,在抗干扰方面有着一定的优势也开始在工业应用中崭露头角。

2 可编程控制器中常用到的控制方法

1)单片机作为最早的可编程控制设备应用的最为广泛,相关的技术文档也最容易获得。

在早些时期通常使用汇编语言进行编程,汇编语言因为最接近硬件底层,使得程序控制代码在结构简练,占用空间少的同时程序与硬件的关系非常密切。当硬件发生任何改变的时候,程序都需要做出相应的调整。现在所有的图形化操作系统荷软件中都有相应的API可以调用。

在win32API中提供了CreateFile()、CloseHandle()、ReadFile()和WriteFile()等几种函数。

使用API串行编程时首先要对串口进行初始化,即设定通信端口号、设定通讯协议、设定传输速率和其他参数,使用CreateFile()函数实现。

串口事件的捕捉可以通过函数SetCommMask()和GetCommMask()完成。Win32API支持同步和异步操作,读写函数ReadFile()和WriteFile()同时支持两种方式,而ReadFileEx()和WriteFileEx()仅支持异步操作。Windows程序的习惯在使用完对象后需要进行关闭操作,对串口通信对象由函数CloseHandle()实现。

在windows系统中也可以利用ActiveX控件和VisualBasic配合进行,在VB软件之中选择加载MicrosoftCommControl控件,在此控件中可以进行一些串口属性的简单设置如通信口、波特率、通信状态等。在其他的一些面向对象的可视化编程软件VisualC++和Delphi中都有类似的对象可以使用,这些控件对象大大减少了在程序设计时与硬件打交道的时间可以更加专注的用来进行数据处理。

2)使用PLC作为可编程控制器使用

PLC虽然和微机的组成相似但是其工作原理却不尽相同,作为顺序执行的一种逻辑处理器,在中断响应和数据处理上还是同单片机有所差距,因此在实际的使用中PLC都是和单片机结合使用,PLC作为输入而单片机负责数据处理和与上位机(PC)进行通行。

常用的FX系列PLC提供一个符合RS-485的异步全双工串行通信接口,与常用的51及其兼容单片机使用的TTL电平,两者之间不能直接通信需要电平转换,在具体的应用中一般会增加光电隔离电路以提高系统的抗干扰能力。

单片机和PLC之间的通讯需要满足一定的格式,即采用异步全双工串行通信接模式,波特率位9.6kbps,具有校验位和采用ASCII码字符形式。每个ASCII码只有七位进行实际数据的发送,最低位是奇偶校验位,二者采用主从通讯方式。

单片机在主程序中进行初始化,采用串行工作方式,波特率9.6kbps,单片机为主机向PLC呼叫。单片机在发出通讯信号请求(ENQ)测试PLC,由命令字CMD(具体的ASCII码信息参考相应的单片机手册)控制,PLC需要应答,在无校验错误是返回应答信号ACK(ASCII06H),反之则返回NAK(ASCII15H)。

3 采用LABVIEW虚拟仪器程序

1)不管是使用单片机系统还是单片机和PLC组件的复合系统,在进行编写程序时都需要熟悉相应的硬件线路,而且在程序编写时面对的是程序界面,对实际的系统结构不能有直观的印象。

LABVIEW,即LaboratoryVirtualInstrumentEngineering是一种图形化的编程集成环境,称为虚拟仪器程序(VI),实现了仪器的虚拟概念。

在此集成环境中弱化了编程语言,使用直观的流程图语言进行控制,而使用系统提供的大量图形化控件,在这里常用的仪器功能如开关、按钮、旋钮等都可以直观的表现,而不是在高级编程语言中的枯燥晦涩的代码,可以简化编程力度,节约编程时间,缩短软件研发周期。

2)LABVIEW开发平台包括程序前面板、程序流程图、图标连接器,软件界面等等。

程序前面板是数据输入和输出通道,用来进行输入量的参数设置和输出值的显示,前面所讲到地控件就是在此面板上。

程序流程图相当于传统意义上的源代码,在这里是用LABVIEW图形化语言进行描述。

图标连接器是程序调用接口,图标是节点而连接器代表数据的输入输出。

在设计时通常会使用到控件面板、函数面板、工具面板,其中函数面板只出现在程序框图窗口,控件面板只出现在前面板窗口中。

LABVIEW可以实现程序地嵌套,即可以将自行设计的一个VI程序作为一个子的VI程序用在另一个程序之中。

LABVIEW包含有分析软件包,可以进行如数值分析、信号处理、曲线拟合等功能,在自带地软件包不足以完成时可以使用其他语言编写的程序脚本。

3)在LABVIEW软件中有完善地串行通信控件,如图1所示为VISA控件模块,包含VISA串口地配置、写入、读取、关闭操作,同时也提供了VISA串口字节数、串口中断、设置与清空I/O缓冲区。

图1

和前面提到的设计方法一样首先需要对端口进行初始化,使用VISA串口配置节点,此操作在前面板中进行。

串口读操作节点用于完成缓存数据的读取,各端口字节总数控制从设备中所读取的数据长度,而用来判断当前输入字节数则有属性节点控制。在进行读操作前先使用属性节点检查当前输入缓存中的数据长度,以便可以一次性将缓存数据全部读出。

一个循环完成后需要使用串口关闭节点释放资源,这在通讯端口较多的时候尤为重要,此节点的端口如图2所示。

图2

一个简单的串口通信程序,在实际的使用中需要在操作之后加入一个等待时间,因为无论是单片机还是PLC都需要一定的时间来进行操作而不会及时的给出响应,具体的等待时间则需要根据实际使用的PLC和单片机频率以及执行的程序耗时来确定。在这里可以使用定时函数控件(节点)进行或者定时结构控件(节点)来完成具体的使用可根据实际情况选用,控件的使用可参考软件自带的帮助文件。

4)上述过程仅仅涉及到一个PLC或单片机的通信,在日常使用中由于PLC一次也只能读取27个寄存器,单片机就更少了,所以会使用多个PLC。在此情况下要完成所有的数据操作就需要多次的读写动作,在系统中提供了顺序结构,分为平铺式和层叠式如图。

5)平铺式顺序结构由一个或者多个子程序(VI)组成,在此称之为帧。数据执行按照从左至右进行,前一帧的输出将作为下一帧的输入。

层叠式顺序结构可使用分支,数据在帧之间的传输可以使用顺序局部变量来完成,而在平铺式结构中不需要。

在新版本的程序中提供有了一个仪器I/O助手控件,利用此控件可以很好的解决由于数据长度不同,数据较多时程序等待的问题。在此控件中提供了与常用仪器I/O接口的直接连接,其中包含了USB、GPIB等接口。

参考文献:

[1]何树有、钱海鹰、高昂,基于Win32平台下串行通信编程方法研究[J].计算机与数字工程,2007(5).

[2]李晓挥,单片机与PLC通信的研究与应用[J].水利采煤与管道运输,2006(2).

[3]夏建芳、赵世富,虚拟仪器与单片机串口通信地实现[J].机械工程与自动化,2006.

[4]杨乐平,LabVIEW程序设计与应用[M].北京电子工业出版社,2001.

推荐访问: 可编程 探析 仪器 通信 计算机
[计算机与可编程仪器的串行通信探析]相关文章