基于以太网的PLC远程控制系统方案

责任编辑:editor03

2013-08-06 10:32:35

摘自:比特网

plc具有可靠性高、通用性强等优点,可以大大减少故障的产生...

plc具有可靠性高、通用性强等优点,可以大大减少故障的产生,因此在工业控制领域得到了广泛的应用。随着电子控制技术的发展,各种高级控制策略得以面对不同的对象在不同的场合下应用,如何融合分析各种现场数据就是很现实的问题,这其中的前提之一就是各种数据的提取,伴随着网络技术的发展,通过以太网技术,就可以实现这种数据的远程传输,进而达到数据的集中分析处理,做出合理的控制策略。

2 系统构成

本系统是基于实验室设备而开发的一套远程控制系统,它的控制对象是多台plc控制的双容水箱,可以称之为双容水箱实验台,它包括plc变频器、水泵和双容水箱。plc包括ad、di等模块,plc通过控制变频器的输出来调整水泵的转速,进而控制双容水箱的进水量。plc通过串口与实验开发的以太网模块相连以实现plc数据与远端操作端的数据交换。由于是多个实验台组成一个网络,所以在组网的过程中采用的策略是利用hub与单块以太网模块相连,然后连在一台服务器上。利用rj45水晶头把hub和以太网模块连接以后,数据遵循802.3网络协议以实现以太网模块与服务器的数据传输。在服务器端,用sql语言建立一个数据库用以存放各种实验数据和控制命令,同时用c++builder编写所需要的现实画面和网络发布画面。整个系统框图如图1所示:

3 以太网模块硬件设计

以太网模块是用通用的c51系列单片机作为控制器,rtl8019as芯片作为以太网控制芯片,20f-01芯片作为网络滤波器,在这个10baset以太网中,采用非屏蔽双绞线的rj45标准接口。模块电路如图2所示。

这里主要介绍一下rtl8019as网络控制芯片。rtl8019as是台湾地区realtek公司生产的一种高度集成的全面支持iebb802.3标准的以大网控制器芯片,它支持8位位处理器。软件兼容ne2000,同时还支持微软的pnp(即插即用)规范。其主要特性如下:

符合ethernet ⅱ和ieee802.3标准;

支持跳线和免跳线两种工作方式;

全双工,收发可同时达到10mbps的速率;

内部有16k的sram;

支持 8位16位数据总线;

和ne2000系列兼容;

允许四个诊断led可编程输出;

100脚pqfp衬禁。

rtl8019as芯片内部主要可分为远程dma接口、本地dma接口、mac(介质访问子层)逻辑、数据编码解码逻辑和其它端口。isa总线接口即远程 dma接口是指主机对rtl8019as进行控制和操作的总线,本地dma接口是指rtl8019as与网络线的连接通道,作用是成控制器和网络线的数据交换。pnp(即插即用)逻辑部分主要是用来解决和 pc机的连接连接,bootrom端口作用是解诀远程启动问题:eeprom端口是用来操作rtl8019as和eeprom芯片93c46的接口,sram用来存放接收和要发送的数据:mac逻辑完成数据的发送和接收过程中的一些控制:当主机要发送数据时,将一帧数据经过远程dma信道送到以太网络控制器中的发送缓存内存中,然后发出传送命令,以太网络控制器在送出前一帧的数据后继而完成此帧的发送;接收数据时,串行数据组成字节送到fifo和 crc,发送逻辑将 fifo送来的字节在发送时脉的控制下逐步按位移出并送到crc,crc逻辑在接收时对输入的数据进行crc校验;将结果与帧尾的crc比较,如不同该帧数据将被柜收,如相问则送到接收缓冲区中,存到接收缓冲区收满一帧后以中断或缓存器标志的方式通知主处理器把数据读走。

4 以太网模块的软件设计

本系统程序是由keil c语言写成,主耍包括两部分:一是tcp/ip的实现,二是8019as的驱动程序。

4.1 tcp/ip协议的实现

tcp/1p实质上是一系列协仪的总称,是实现internet通讯必不可少的部分,包括十几个协议标准。传输的数据量很少且对实时性要求不是很高,不需要全部的协议,只要实现几个必要的就可以了;权衡之下,求在最小代码、最小资源需求和功能实现间取得一个平衡;只要实现了icmp(互联网控制报文协议)、tcp(传输控制协议)、ip(网络层协议)、arp(地址解析协议)4个协议。因为任何一个以太网数据帧要发送时都必须要知道对方的物理地址,这能过arp协议来取得,所以要实现arp协议,而ip协议是tcp和icmp协议数据的传输格式;tcp协议提供可靠的、可重组服务;而icmp协议是调试时所不可缺少的。

4.2 rtl8019as驱动程序

(1) rtl8019as的初始化

开机复位信号接在以太网络控制器的复位接脚上,因此当开机后以太网络控制器一直会处于复位状态,直到主控制器发出开始命令为止,初始化步骤如下:

硬件重置;

cr写入21h,进入第0页;

对dcr进行初始化;

对rbcr进行初始化:

对rcr进行初始化;

对tcr进行初始化;

接收缓仲区初始化包含bndry,pstrat,pstop,tpsr的初始化:

清除 isr的值写入 ffh,允许中断;间对imr进行初始化;

cr写入61h,进入第1页的对par0-5、mar0-7、curr进行初始化;

将以太网络控制器置于开始模式cr=22h;

将以太网控制器置第0页,准备开始工作。

(2) 接受帧的过程

在接收数据时,当rtl8019as接收到一个以太网帧时,当这帧数据的目的地址是本地地址且crc校验正确时,启动本地dma把数据读入接收缓冲区,然后通过中断通知主控制器,主控制器通过远程dma把rtl8019as中的数据读走。这时一定要设置bnry指针,因为它需要用户未设置,每读走一个数据都要把它加l。当它到ox7f时自动返回为初始化值。

(3) 发送帧的过程

传送流程比较复杂筒言之有几个重要步骤:

ip层软件己准备好数据帧;

将数据帧写入数据通讯端口处;

判断cr缓存器的txp值是否为入若为1表示上一帧数据尚未传完,暂时不能传送此数据帧,若为0则可以传送;再发出发迭数据的命令,启动本地dma把数据发送到以太网上即可,需要注意的是一定要设置以太网的目的地址和源地址,协议类型等。

这里采用查询方式来处理。数据发送之前,我们要将发送数据封装成以太网的ieee802.3t或者dix ethernet v2标准的mac帧,并通过远程dma写到发送缓冲区中。往常,我们只须向缓冲区填写目的地址、源地址.数据长度/类型和数据,前同步码和fsc由 rtl8019as发送时,自动产生。标准的以太网数据帧如图3所示:

5 网络编程

borland公司推出的c++builder是一个功能强大的windows应用软件开发工具,即可以编写一般windows应用程序和控制台程序,也可以编写复杂的数据库应用和web服务程序。本课题就是利用c++builder软件的可视化特性和高效存取数据库来完成相关的网络功能。在c/s模式下,本来可以直接利用在windows环境下的winsock组建来完成编程,但是由于考虑到可能需要了解相关的通信细节,而winsock组件在一定的程度上屏蔽了许多通信细节,所以采用了winsock api编程。在以太网数据传输过程中,主要使用udp协议通信,udp协议下socket通信流程如图5所示:

在c++builder中利用软件所提供的database desktop工具创建一个数据库,由于是在同一个开发环境下数据库的调用和数据的修改显得比较方便。

6 结束语

通过本课题的研究,以实验环境为背景的以太网远程控制系统是可以达到所设想的目的的,通过控制网络和通信网络的接合,可以方便的实现各种实验平台的联系,同时系统运行稳定,对于各种数据的集中分析处理会有比较大的帮助。

链接已复制,快去分享吧

企业网版权所有©2010-2025 京ICP备09108050号-6京公网安备 11010502049343号