1000_PLC_TwinCAT高级语言编程接口.ppt
《1000_PLC_TwinCAT高级语言编程接口.ppt》由会员分享,可在线阅读,更多相关《1000_PLC_TwinCAT高级语言编程接口.ppt(28页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、TwinCAT高级语言编程接口,1,TheWindowsControlandAutomationTechnology,尚德明,TwinCATSoftPLC,工业软PLC分类:实时运行核:使用操作系统的实时性自主研发实时核编程语言PLC程序执行机制和Windows应用程序的执行机制不同,Windows应用程序是通过消息机制触发,而PLC程序的执行时通过一个定时器自动定期触发。因此对于软PLC来说,定时器的精准直接影响PLC逻辑执行的准确性和效率。自主开发的实时核和操作系统依赖性小,更稳定,更准确。目前世界上主要有三家公司开发了实时核:Beckhoff,IntervalZero,TenAsys。目
2、前我们公司的实时核还不对外开放,TwinCAT3以后将对外开放,对外开放就意味可以使用高级语言来编写PLC程序。目前TwinCAT系统中想使用高级语言来进行控制只能使用操作系统的实时系统通过R3IO来实现另外一种软PLC。:编程语言计算机高级语言(如C+)(R3IO)IEC61131-3国际编程标准,2,高级语言和下位的通讯方式,上位用户界面和BECKHOFF产品通讯主要方式:实时非远程:R3IO非实时远程:ADS通讯,Modbus,OPC文档:R3IO:InformationSystem-TwinCAT-TwinCATR3IOADS:InformationSystem-TwinCAT-Twi
3、nCATSystem-TwinCATConnectivity,3,通讯方式比较,通讯周期:R3IO通讯时间可以忽略,数据交换时间取决于定时器,CE试用BECKHOFF提供的TcTimer可以达到100微秒XP系统最小在1毫秒左右ADS通讯时间在2-3毫秒左右.但是考虑到ADSServer的响应时间,一个命令周期可能需要200毫秒系统拓扑:R3IO是通过指针直接访问IO内存映像.本地操作(把它当成高级语言编写的PLC)ADS是网络通讯,可以是远程访问Modbus和OPC的性能和ADS在水平以下主要介绍ADS通讯,4,ADS简介,在BeckhoffTwinCAT系统中,各个软件模块(如TwinCA
4、TPLC、TwinCATNC、Windows应用程序等)的工作模式类似于硬件设备,它们能够独立工作。各个软件模块之间的信息交换通过TwinCATADS而完成。ADS(AutomationDeviceSpecification)即自动化设备规范,它为设备之间的通讯提供路由。在TwinCATPC和Beckhoff的CX、BX、BC系列控制器中都包含TwinCAT信息路由器。因此各个ADS设备之间都能够交换数据和信息。ADS服务有TwinCAT服务程序提供,当PLC中需要调用操作系统功能时也是通过ADS命令来驱动TwinCAT服务来完成(如文本文件读写,获取系统时间等)。基于ADS的TwinCAT系
5、统构架如下图所示:,5,ADS通讯协议概述,ADS协议处于网络通讯协议的应用层。,6,应用层,传输层,Internet层,网络接口层,TCP/IP模型,OSI模型,TwinCATADS设备标识,每台TwinCATADS设备都有各自不同的AdsAmsNetId和AdsPort(端口号),以相互区别。AdsAmsNetId是TCP/IP地址的扩展,是TwinCATMessageRouter,存在于每台TwinCATPC或BeckhoffCX、BX、BC系列控制器中。例如:如果一台PC的IP地址是“192.168.2.10”,那么它的AdsAmsNetId就是“192.168.2.10.1.1”。当
6、然,也可以对AdsAmsNetId进行修改。每台ADS设备(ADSServer)的AdsPort都各不相同,且固定不变。而ADS客户端(ADSClient)应用程序的AdsPort则是可变的。不同ADS设备的AdsPort如下图所示:,7,ADS通讯方式,ADS设备之间的通讯有多种方式,不同方式有不同的特点。一般的ADS通讯(GeneralADSServices)-异步方式(Asynchronous)ADS客户端向ADS服务器发送ADS请求,同时客户端继续自己的工作。ADS服务器处理请求后,把响应以Call-back函数方式发给客户端。-通知方式(Notification)ADS客户端向ADS
7、服务器发送ADS请求,ADS服务器以Call-back函数的方式不断向客户端发送响应,直到客户端取消该请求。这两种通讯方式的效率高,但需求复杂的客户端程序。注意:每个的端口最多注册550个通知优点:不会造成系统堵塞缺点:不能确保每次请求都有返回比喻:发邮件,8,ADS通讯方式,特殊的ADS通讯(SpecificADSServices)TwinCATADS设备和Windows应用程序(例如VB、VC应用程序等)之间的通讯除了可以采用一般的ADS通讯方式外,还可以采用特殊的通讯方式,即同步通讯方式。-同步方式(Synchronous)ADS客户端向ADS服务器发送ADS请求,在通讯过程中客户端程序
8、停止执行,直到获得ADS服务器返回的响应。这种通讯方式不需求复杂的客户端程序,但其轮循的通讯方式给系统带来比较大的负载,因此通讯效率较低。优点:能即时返回结果缺点:如果通讯故障会造成系统堵塞比喻:通电话,9,ADSAPI,为方便各种计算机高级语言及其环境使用ADS通讯,BeckhoffTwinCAT提供相如下组件:ADS.NETComponent适用.NET平台,VB.NET,C#等ADS-OCX(ActiveXCOM控件)适用于VisualBasic,VisualC+,Delphi等.ADS-DLL适用于VisualC+等.ADS-Script-DLL适用于VBScript,Jscript等
9、脚本,创建B/S架构的应用.JAVADLL适用于JAVA语言。“PlcSystem.lib”PLC库ADS设备可以通过据此和其他ADS设备以及Windows进行通讯。,10,ADS访问变量方式,TwinCATADS访问变量有两种方式:1.地址方式一个PLC变量的地址由两部分组成:GroupIndex和OffsetIndex:GroupIndex一般用于区别寄存器类型,在TwinCATADS设备中为常量,具体内容可以参考InformationSystem(后附常用的GroupIndex值)。OffsetIndex为变量的偏移地址,在PLC中为该变量的地址。2.变量名方式在TwinCATADS设备
10、中每个变量都有一个句柄(Handle)。适用变量名访问变量首先需要得到该变量的句柄。(不同的高级语言方式略有不同),11,ADS组件库文件组成简介,12,ADS组件库集成在TwinCAT软件中,安装任何版本的TwinCAT软件都包含ADS通讯组件,如果用户希望在没有安装TwinCAT软件的计算机适用ADS通讯组件可以安装Supplement中的TwinCAT_ADS_Communication_Library此为免费产品。除需要复制到Windows/System32目录外绝大部分相关文件可以在TwinCAT安装目录找到。假设TwinCAT安装路径为C:TwinCAT,如果可以建议用户最好用Tw
11、inCATCP,ADS组件出了配置稍微麻烦一些外,对于多个客户端并行通讯业有局限性,Ads组件调用过程简介,13,.NET调用流程,新建工程,添加引用TwinCAT.Ads.dll,定义TcAdsClient对象,privateTcAdsClientadsClient;,初始化TcAdsClient对象,adsClient=newTcAdsClient();adsClient.Connect(801);,通过变量名取得变量的句柄,注册DeviceNotification事件,用于读写变量,AddDeviceNotification,读写变量,接受处理返回结果,释放资源,ADS.NET组件通讯方
12、式,14,直接封装TcAdsDll.Dll(ADSClient工作模式)按照AMS协议组件Socket数据包直接通过TCP系统通讯(ADSServer),Ads组件调用过程简介,C+在VisualC+中进行链接和程序开发时所需要的文件:TcAdsDll.dll动态链接库TcAdsDll.lib使用TcAdsDll.dll的函数库TcAdsApi.h声明ADS功能的头文件TcAdsDef.h声明结构和常数的头文件主要接口:AdsPortOpen:建立TwinCAT信息路由器连接(通讯口)。AdsPortClose:关闭TwinCAT信息路由器的连接(通讯口)。AdsGetLocalAddress
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 1000 _PLC_TwinCAT 高级 语言 编程 接口
限制150内