文献综述
1.本课题研究现状及发展趋势:
TwinCAT ( The Windows Control and Automation Technology )是由德国Beckhoff公司推出的一种集控制、编程和可视化为一体的自动化系统编程开发软件。TwinCAT 是一个大的系统构架,包含了许多各种控制功能的软件模块,如TwinCAT System Manager、TwinCAT PLC、TwinCAT NC、Windows应用程序等,这些软件模块既可以独立的进行工作又可以通过TwinCATADS通讯进行软件模块之间的连接与数据传输。控制系统软件通常包括上位机软件和下位机软件。在TwinCAT系统架构中,上位机软件即Windows应用程序,它的开发是在Visual Studio开发环境下进行的,主要实现数据处理,文件管理,界面显示等功能。在现场控制中,每台ADS设备都有自己独立的地址和AdsPort(端口号)来区别不同的设备。AdsAmsNetId是在TCP/IP地址的基础上进行的扩展,保证了不同ADS设备的唯一性,其地址通常是默认的,但是也可以对其进行修改。而对于AdsPort而言,各个设备都不同且固定不变。
ADS(Automation Device Specification)是自动化设备规范的简称,它是一种独立于现场设备和数据总线的访问ADS设备的接口控制,可以为设备之间的通信提供路由。ADS通讯是以TCP/IP协议为基础的,处于网络通讯协议的应用层,是可以实现PLC之间、PLC与第三方平台开发的应用程序之间进行数据传输的一种双方协议。ADS设备之间有多种不同的通讯方式,总体可以分为一般通讯方式和特殊通讯方式,它们各有各自的特点。一般通讯方式可以分为异步方式(Asynchronous)和通知方式(Notification)两种。异步方式是指在通讯初始时ADS客户端通过数据接口将命令请求发送给ADS服务器,同时服务器继续进行当前的工作,ADS服务器处理请求后将响应数据以回调函数的方式发送给客户端。通知方式是指在通讯初始时ADS客户端通过数据接口将命令请求发送给ADS服务器,在客户端取消该命令请求之前服务器都以回调函数的方式不断的向客户端发送响应。这两种通讯方式通讯效率较高且不会造成传输信息时系统堵塞,但它们不能确保每次发送的请求都有份返回,而且还需要复杂的客户端应用程序。特殊通讯方式即同步方式(Synchronous),它只是在通讯初始时ADS客户端通过数据接口将命令请求发送给ADS服务器后客户端程序暂停执行,在接受ADS服务器返回的响应函数之后继续执行。该通讯方式能够即时得到返回结果而且不需要复杂的客户端应用程序,但由于其通讯结构采用间歇式执行的操作方式,所以信息传输效率较低,在遇到通讯故障的时候会出现系统堵塞行为。本课题采用同步方式,并用线程解决系统堵塞问题,这样就能简化客户端应用程序。
在控制系统中,上位机和下位机都可以发送和接收数据信息,它们之间所传输的数据类型都是无符号字节型,传输过程中都是首先传低字节,然后传高字节,并且通过奇偶校验的方式来检测数据传输的结果是否正确。数据发送前先设置--个奇偶校验位,在接收到数据之后对数据流中的信息进行校验,通过比较来确定传输数据的正确性。如果校验数据与发送信息不相符,接收方则会把收到的该帧数据遗弃,并请求发送方重新发送该帧数据。ADS访问变量的方式有直接访问地址方式和访问变量名方式两种。前者通过寻找内存地址或偏移地址直接访问结构体成员变量,后者则采用上位机与下位机变量名一一对应的方式,在为每个ADS设备中的变量建立一个句柄后,可以通过变量名直接对其进行访问。本课题中为了加快传输速度一般采用直接访问地址方式。
为方便各种计算机高级语言及其环境使用ADS通讯,BeckhoffTwinCAT提供相如下组件:ADS.NET Component:适用NET平台、VB.NET、C#等;ADS-OCX(ActiveXCOM控件):适用于Visual Basic、Visual C 、Delphi等;ADS-DLL:适用于Visual C 等;ADS-Script-DLL:适用于VBScript、Jscript等脚本,创建B/S架构的应用;JAVA DLL:适用于JAVA语言;“PIcSystem.lib'PLC库:ADS设备可以通过据此和其他ADS设备以及Windows进行通讯。可见以Python为高级语言编写ADS通讯的方法不是很普遍,主要是Python中没有指针,所以必须把编写好的Python代码通过PyADS模块包含的函数完成数据传输。Python是一种计算机程序设计语言。是一种动态的、面向对象的脚本语言,最初被设计用于编写自动化脚本(shell),随着版本的不断更新和语言新功能的添加,越来越多被用于独立的、大型项目的开发。Python是完全面向对象的语言。函数、模块、数字、字符串都是对象。并且完全支持继承、重载、派生、多继承,有益于增强源代码的复用性。Python支持重载运算符和动态类型。Python的设计哲学是“优雅”、“明确”、“简单”。因此,Perl语言中“总是有多种方法来做同一件事”的理念在Python开发者中通常是难以忍受的。Python开发者的哲学是“用一种方法,最好是只有一种方法来做一件事”。在设计Python语言时,如果面临多种选择,Python开发者一般会拒绝花俏的语法,而选择明确的没有或者很少有歧义的语法。由于这种设计观念的差异,Python源代码通常被认为比PerI具备更好的可读性,并且能够支撑大规模的软件开发。
2.本课题研究的意义和价值:
ADS通讯开发的高级语言中一般不包含Python语言,但比起其他语言(例如C )
Python有学习周期短,功能模块丰富等优点使得初学者的入手难度小于其他高级语言,因此可以提高学习和设计的效率。
此外这次毕业设计,我们培养了运用所学的基础理论知识来解决实际问题的能力。通过计算机相关设计软件,来设计出基本符合实际要求的实体程序出来,是培养我们独立工作能力、创新能力以及理论联系实际和严谨求实的工作作风的重要途径。对于我们今后的工作学习,也十分有帮助。
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。