新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > RS-485网络在数控机床联网中应用

RS-485网络在数控机床联网中应用

作者:时间:2016-09-12来源:网络收藏

RS-485在电力系统及工业自动化中有广泛的应用,木文介绍通过RS-485网络实现联网方式,木方法也可为电力系统自动化设备的串行通信网络的设计提供参考。

本文引用地址:http://www.eepw.com.cn/article/201609/304023.htm

1 联网系统组成结构

联网系统采用一台控制卞机(计算机)与几台不同的数控机床,通过RS-485网络形成卞从型网络结构。控制卞机根据不同的任务安排,把数据传输到相应的数控机床,同时控制卞机根据数控机床的请求状态,把数控机床的数据采集到计算机中。因大多数的计算机和数控机床都只有RS-232串口,须设计RS-232/RS-485接口转换电路,把计算机和数控机床的RS-232通信信号转换成RS-485信号。这样,计算机和多台数控机床就通过 RS-485总线联网。其联接结构如图1所示。

1.jpg

2 RS-232/RS-485转换电路设计

数控机床联网系统需多个RS-232/RS-485接口转换器.考虑到大部分计算机和数控机床的通信端口为9芯D型插头,在串行通信时,通常只使用其中的RTS , RXD , TXD与GND 4个端子,利用光电祸合器的隔离特性和RS - 232工作时RTS线与TXD线之间的电平关系,采用美国TI公司生产的RS - 485接口芯片SN75LBC184,设计了一种实用RS - 232 / RS -485转换器,其电路如图2所示。

2.jpg

图中RS - 485接口芯片SN75LBC 184在发送使能端DE为高电平,接收使能端RE为低电平时,作为发送器使用;接收使能RE为高电平,发送使能端DE为低电平时,作为接收器使用。该电路还使用了3片光电祸合器TLP521-1进行隔离,这使PC机与SN75LBC184之间完全没有了电的联系,从而提高了工作的可靠性。

当RS-232的RTS端为逻辑电平1(-12 V)时,光电祸合器的发光一极管不发光,光敏二极管不导通,输出端为TTL逻辑电平1(+5 V),此时选中RS-485的DE端允许RS - 485接收,这样,RS-232的TXD端就可以发送数据(工作逻辑与RTS端相似)。当RS-232的RTS端为逻辑电平0(+12 V)时,光电祸合器的发光一极管发光,光敏二极管导通,输出端为TTL逻辑电平0(0 V),此时选中RS-485的RE端允许RS - 485发送,RS-232的RXD端就可以接受 RS - 485网络传输的数据。当RS - 485的R端输出为逻辑电平1时,光电祸合器发光一极管不发光,光敏二极管不导通,这样,在RS-232输出停止时,其TXD电平为-12 V,电容被充电到-12 V以使其输出也变成-12 V,即逻辑电平1;当其输出为逻辑电平0时,光电祸合器发光一极管发光,光敏二极管导通,这时,其输出为+SV,也在RS-232逻辑电平0的范围之内,即为逻辑电平0。

3 通信软件设计

计算机卞控数据传输系统软件安装在计算机端,由于数控机床数据传输软件是固化在数控机床的控制器中,不需要特别的编程,在进行数据传输时根据通信要求设置通信参数,计算机端与其设置相同,由于不同的数控机床采用的通信方式即握手信号与帧格式不一样,因此,数据传输软件设计必须根据不同的数控机床采用不同握手信号。通常实现串行通信有多种方法,如利用调用Win

3.1 MSComm ActiveX控件介绍

Borland C++ Builder作为新一代的可视化编程工具,提供了大量的封装好各种功能的VCL控件库以便快速编程,遗憾的是并没有直接提供串口通信功能的VCL控件; 而微软公司提供的MSCommActiveX控制将串行通信的大部分操作都封装到控件内部,为编程者提供了简化的Windows卜的串行通信编程,通过导入微软MSComm控制,C++ Builder也能方便地实现计算机串口通信编程,为应用程序提供串行通信功能。

MSComm控件提供卜列两种处理通信的方式:事件驭动通信方式和查询方式。事件驭动通信是处理串行端口交互作用的一种非常有效的方法。在许多情况卜,在事件发生时需要得到通知,例如:在CD (Carrier Detect)或RTS ( Request to Send)线上一个字符到达或一个变化发生时,可利用MSComm控件的OnComm事件捕获并处理这些通信事件。OnComm事件还可以检查和处理通信错误。查询方式是在程序的每个关键功能之后,通过检查CommEvent属性的值查询事件和错误。MSComm控件的属性 InBuf\'ferCount()和Out2BufferCount()就用于串口的查询方式。可通过Set2CommEvent(函数设置串口要响应的事件,当响应事件或串口错误发生时,系统会激活OnComm)事件,在OnComm)中添加相应的程序,即可实现类似DOS中断的串口处理程序。每个使用的MSComm控件对应着一个串行端口。如果应用程序需要访问多个串行端口.必须使用多个MSComm控件。可以在Windows“控制而板”中改变端口地址和中断地址。

3.2 计算机与数控机床通信程序编写

首先,把MSComm控件安装入C++ Builder的集成开发环境,通过C++ Builder菜单项的“Component项卜的“Import ActiveX Control,装入C++ Builder控件板的AetiveX组中。其次,为了用该控件控制一个串口进行通信操作,还必须在相应程序中插入该控件。为此,在程序的某个C++ Builder的Form中插入MSComm控件,控件名为MSComml(可以更改此名),在程序中对串口的各种操作可通过MSComml实现。为了得到MSComm控件的有关参数,可以在控件上按F1键查询,或参阅有关的Visual C++与Vi-sual书籍。

数控机床通过软件、硬件握手方式与计算机进行数据的传输,为此,在计算机数据传输通信程序编制上,采用查询的通信方式。在对木次通信任务中,可通过SetCommEvent函数设置串口要响应的事件。木设计把计算机串口每接收一帧数据设置为串口要响应的事件,也即EV2RXFLAG事件。这是 WindowsAPI函数中的一个基木事件。通过它去激活OnComm,在OnComm)消息处理函数中可加入处理代码,判断是否是所需要的数据,并作出相应的处理,如显示、存盘、分析等。卜而简要给出事件驭动方式接收数控机床发送数据的程序源代码。计算机串口各参数设置,如波特率、校验及数据格式等,必须与数控机床完全一致,否则两者之间的通信无法正常进行。设置计算机串口参数的初始化程序如下:


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭