基于SOCKETt和PLC的远程控制系统

更新时间:2023-11-14 10:45:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

有问题请EMAIL:vesor@126.com

1 引言

随着Internet的普及和远程控制策略的完善,基于Internet的远程控制成为可能。基于公众网络(Internet)的远程控制通过廉价的TCP/IP和Ethernet连接克服了工业网络的弊端,大大降低了网络的建设与维护成本,提高了已有设备的利用效率和联合生产能力,并广泛地延伸人类的工作空间。目前国际上已经成功地应用于远程机器人控制,满足在空间、海洋和医学显微环境中的特殊需求[3]。

Ferrel于1965就提出了在网络控制中时变的网络时延问题。华盛顿大学的T.J.Tarn教授与K.Brady是基于Internet机器人远程控制第一人。Wakita等人提出“智能化监视”远程机器人控制系统,指出低带宽、需求的重要性。Bejczy等人提出远程控制中“虚拟机器人”的概念。Kuk-Hyun Han等人进行机器人系统在KAIST与UC Davis之间的Internet远程控制实验,使用由Java语言编制的GUI监视机器人的状态。Ren C. Luo等人实现了简单迷宫中多障碍存在条件下机器人自动路径寻优,该实现是远程控制与智能控制两种先进控制手段的典型结合。Rovetta等人使用优化的通讯媒介混合进行远程外科手术。德国空间研究项目——ROTEX系统是公认的网络远程控制成功范例。它采用多个超前Kalman滤波器作预测,1993年装备于哥伦比亚航天飞机上。目前在国内还没有对基于Internet的网络远程控制的系统性研究[4]。

原来的基于公用电话网的远程控制系统[6],虽然实现了双向传输,但是传送/接受速率太低。基于无线寻呼网络为基础的远程控制系统虽然传输速率较高,但只能单项传输,不能进行反馈。公用电话网和无线寻呼网,还由于网络覆盖情况等限制,不能应用到家庭。本文设计的基于socket和plc的远程控制系统,克服了以上两个网络的缺陷。本文在Winsock 的基础上采用 TCP/IP 传输控制协议来完成数据的远程通信。由于TCP/IP协议组是为跨越局域网和广域网环境的大规模互联网设计的,因此,利用因特网为传输媒介,满足了远程控制系统应用到家庭上时,对网络覆盖范围的需求。另外,由于控制信息在因特网上传输时具有较快的速率,因此可以实现实时监控和实时控制。本系统在因特网上还可以实现信息反馈,使系统更加稳定、健全,实现一个完整的远程控制系统。用PLC作为本系统的可编程控制器,是因为PLC可以通过通信联网与服务器相连,实现分散控制,集中管理。PLC内有成百上千个可供使用的编程元件,有很强的功能,可以实现非常复杂的控制功能,具有很高的性能价格比[2]。

本设计的结构图,如下图所示:

1

有问题请EMAIL:vesor@126.com

客户端1 服务器端 风扇 客户端2 PLC 热水器 空调 客户端3 反馈信息 图1-1 控制系统结构图

有问题请EMAIL:vesor@126.com

2 远程控制系统硬件部分及通信相关协议

2.1 PLC简介

PLC主要由CPU模块、输入模块、输出模块和编程器组成。 a. 中央处理单元(CPU)

中央处理单元(CPU)是PLC的控制中枢。它按照PLC系统程序赋予的功能接收并存储从编程器键入的用户程序和数据;检查电源、存储器、I/O以及警戒定时器的状态,并能诊断用户程序中的语法错误。当PLC投入运行时,首先它以扫描的方式接收现场各输入装置的状态和数据,并分别存入I/O映象区,然后从用户程序存储器中逐条读取用户程序,经过命令解释后按指令的规定执行逻辑或算数运算的结果送入I/O映象区或数据寄存器内。等所有的用户程序执行完毕之后,最后将I/O映象区的各输出状态或输出寄存器内的数据传送到相应的输出装置,如此循环运行,直到停止运行。

为了进一步提高PLC的可靠性,近年来对大型PLC还采用双CPU构成冗余系统,或采用三CPU的表决式系统。这样,即使某个CPU出现故障,整个系统仍能正常运行。

b. 输入(Input)模块和输出模块(Output)

输入(Input)模块和输出模块(Output)简称为I/O模块,是联系外部现场设备和CPU模块的桥梁。输入模块用来接收和采集输入信号,开关量输入模块用来从按钮、选择开关、数字拨码开关、限位开关、接近开关、压力继电器等来的开关量输入信号。模拟量输入模块用来接收电位器,测速发动机和各种变送器提供的连续变化的模拟量电流电压信号。开关量输出模块用来控制接触器、电磁阀、指示灯数字显示装置和报警装置等输出设备,模拟量输出模块用来控制调节阀,变频器等执行装置[5]。

c. 编程器

编程器用来生成用户程序,用它来进行编辑、检查、修改和监视用户程序的执行情况。

使用编程软件可以在计算机的屏幕上直接生成和编辑梯形图和指令表程序,并可以实现不同编程语言之间的互换。程序被编译后下载到PLC,也可以将PLC中的程序上传到计算机。

2.2 RS-232C协议

RS-232-C是美国电子工业协会EIA(Electronic Industry Association)制定的一种串行物理接口标准。RS是英文“推荐标准”的缩写,232为标识号,C表示修改次数。RS-232-C总线标准设有25条信号线,包括一个主通道和一个辅助通道。

有问题请EMAIL:vesor@126.com

在多数情况下主要使用主通道,对于一般双工通信,仅需几条信号线就可实现,如一条发送线、一条接收线及一条地线。

RS-232-C标准规定的数据传输速率为每秒50、75、100、150、300、600、1200、2400、4800、9600、19200波特。

RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信。一般个人计算机上会有两组 RS-232 接口,分别称为 COM1 和 COM2。

2.3 TCP/IP协议

TCP/IP(传输控制协议/网际协议)是互联网中的基本通信语言或协议。在私网中,它也被用作通信协议。当用户直接网络连接时,用户的计算机应提供一个TCP/IP程序的副本,此时接收所发送的信息的计算机也应有一个TCP/IP程序的副本。

TCP/IP是一个两层的程序。高层为传输控制协议,它负责聚集信息或把文件拆分成更小的包。这些包通过网络传送到接收端的TCP层,接收端的TCP层把包还原为原始文件。低层是网际协议,它处理每个包的地址部分,使这些包正确地到达目的地。网络上的网关计算机根据信息的地址来进行路由选择。即使来自同一文件的分包路由也有可能不同,但最后会在目的地汇合。 TCP/IP使用客户端/服务器模式进行通信。TCP/IP通信是点对点的,意思是通信是网络中的一台主机与另一台主机之间的。TCP/IP与上层应用程序之间可以说是“没有国籍的”,因为每个客户请求都被看做是与上一个请求无关的。正是它们之间的“无国籍的”释放了网络路径,才是每个人都可以连续不断的使用网络。 许多用户熟悉使用TCP/IP协议的高层应用协议。包括万维网的超文本传输协议(HTTP),文件传输协议(FTP),远程网络访问协议(Telnet)和简单邮件传输协议(SMTP)。这些协议通常和TCP/IP协议打包在一起。 使用模拟电话调制解调器连接网络的个人电脑通常是使用串行线路接口协议(SLIP)和点对点协议(P2P)。这些协议压缩IP包后通过拨号电话线发送到对方的调制解调器中。 与TCP/IP协议相关的协议还包括用户数据报协议(UDP),它代替TCP/IP协议来达到特殊的目的。其他协议是网络主机用来交换路由信息的,包括Internet控制信息协议(ICMP),内部网关协议(IGP),外部网关协议(EGP),边界网关协议(BGP)。

2.4客户端/服务器端(C/S)通信

有问题请EMAIL:vesor@126.com

Client(客户端) Server(服务器端) PLC

图2-1 控制信息流程图

电视 冰箱 空调 如图2-1 客户端和服务器端之间通过Internet进行通信,采用了业界标准的协议组(TCP/IP)。因为(TCP/IP)协议组是为跨越局域网和广域网环境的大规模互联网络设计的,因此,在互联网中进行远程控制,需采用(TCP/IP)协议组[7]。

所有的网络在传输协议上都是分层的,层的集合通常称为栈。应用程序跟最高层通话,最底层则跟网络通话。图2-2显示了客户端和服务器端TCP/IP协议栈的结构[9],每一层在逻辑上与另一端相对应的层进行连接和通信;物理数据是从协议栈的上部传送到底部,通过网络传输到另一端协议栈的底部,然后再从栈的低端往上传送到对应的层。图中右边是服务程序,左边是客户程序,可以把基于HTTP协议的WWW服务器程序认为是服务程序,把自己计算机上的浏览器程序认为是客户程序。

本文来源:https://www.bwwdw.com/article/jh1v.html

Top