您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 电气安装工程 > 4000_通讯_ADS通讯-高级语言
1ADS通讯-高级语言TheWindowsControlandAutomationTechnology李小宁TwinCAT23.05.20202TwinCAT介绍TwinCAT介绍TwinCAT=TheWindowsControlandAutomationTechnology特点:•不改变Windows•无需PC外的其他硬件•将标准Windows变成实时操作系统•循环时间可短至50微秒、强制优先排序•完全支持浮点单元(FPU)硬件平台•PC高性能、高精度的控制任务•CX适用于中大型复杂控制任务•BX适用于中等规模控制任务•BC适用于小规模控制任务软件平台•XP/XPE/CE等通讯•可通过OCX,Dll访问Windows用户界面•可通过TCP/IP\OPC等实现远程访问TwinCAT23.05.20203TwinCAT硬件平台性能BC系列BX系列CX系列costsTwinCAT介绍Beckhoff控制器分4个性能等级工业PC高性能、高精度等级的自动化设备TwinCAT23.05.20204TwinCATSystemManagerTwinCAT介绍系统硬件管理扫描、配置系统软件管理起停、时基、通讯系统调试诊断(Freerun)4套PLC独立运行TwinCAT23.05.20205TwinCATSystemManagerIO映射IO输入输出IOIOTwinCAT过程映像现场总线1现场总线2现场总线3映射TwinCAT结构系统IO映射对所有主要现场总线开放支持PC硬件接口易于安装和诊断从逻辑映射到物理I/OLIGHTBUSEthernetTCP/IPRS232RS485TwinCAT23.05.20206TwinCATPLCControlTwinCAT介绍每套PLC的Input区16,000字节,甚至还可增加支持源代码下载,上传源代码时所有注释均可保留•其他工具软件示波器软件:scopeview设备仿真器(CE5/CE6)最多4个Task设定优先级任务最短50us充分利用IPC的内存、硬盘和CPU资源Task是分配CPU资源的唯一入口TwinCAT23.05.20207TwinCATPLCControlTwinCAT介绍PLC可直接在开发环境的机器上运行。类似高级语言的调试功能,支持断点功能独立启动和停止PLC模块化结构组件:VisulizationTwinCAT23.05.20208TwinCATPLC功能库TwinCAT介绍TwinCAT通讯系统拓扑:R3IO是通过指针直接访问IO内存映射.本地操作(把它当成高级语言编写的PLC)ADS是网络通讯,可以是远程访问通讯周期:R3IO通讯时间可以忽略,数据交换时间取决于定时器,CE试用BECKHOFF提供的TcTimer可以达到100微秒XP系统最小在1毫秒左右ADS通讯时间在2-3毫秒左右.但是考虑到ADSServer的响应时间,一个命令周期可能需要200毫秒上位用户界面和BECKHOFF产品通讯主要方式:实时非远程:R3IO非实时远程:ADS通讯,Modbus、OPC等9TwinCAT介绍TwinCAT23.05.202010InternetADS路由器ADSDllTwinCATOPC服务器VBC#,VB.NetDelphiC++XMLVB,C#Delphi/C++ASPOCX.Net第三方WrapperBeckhoffADS接口开放、简单、灵活、文档齐全支持多家Scada软件标准OPC接口支持的规范:DA/AE/XMLExplorer第三方TwinCAT通讯接口第三方TwinCAT介绍11ADS简介在BeckhoffTwinCAT系统中,各个软件模块(如TwinCATPLC、TwinCATNC、Windows应用程序等)的工作模式类似于硬件设备,它们能够独立工作。各个软件模块之间的信息交换通过TwinCATADS而完成。ADS(AutomationDeviceSpecification)即自动化设备规范,它为设备之间的通讯提供路由。在TwinCATPC和Beckhoff的CX、BX、BC系列控制器中都包含TwinCAT信息路由器。因此各个ADS设备之间都能够交换数据和信息。基于ADS的TwinCAT系统构架如下图所示:12ADS通讯协议概述ADS协议处于网络通讯协议的应用层。应用层传输层Internet层网络接口层TCP/IP模型OSI模型13TwinCATADS设备标识每台TwinCATADS设备都有各自不同的AdsAmsNetId和AdsPort(端口号),以相互区别。AdsAmsNetId是TCP/IP地址的扩展,是TwinCATMessageRouter,存在于每台TwinCATPC或BeckhoffCX、BX、BC系列控制器中。例如:如果一台PC的IP地址是“192.168.2.10”,那么它的AdsAmsNetId就是“192.168.2.10.1.1”。当然,也可以对AdsAmsNetId进行修改。每台ADS设备(ADSServer)的AdsPort都各不相同,且固定不变。而ADS客户端(ADSClient)应用程序的AdsPort则是可变的。不同ADS设备的AdsPort如下图所示:ADS设备AdsPortPC控制器中的PLCRun-timesystem1801Run-timesystem2811Run-timesystem3821Run-timesystem4831自定义任务(AdditionalTask)AdditionalTask1301AdditionalTask2302BCxxxx控制器中的PLC800NC50014ADS通讯方式ADS设备之间的通讯有多种方式,不同方式有不同的特点。1.一般的ADS通讯(GeneralADSServices)-异步方式(Asynchronous)ADS客户端向ADS服务器发送ADS请求,同时客户端继续自己的工作。ADS服务器处理请求后,把响应以Call-back函数方式发给客户端。-通知方式(Notification)ADS客户端向ADS服务器发送ADS请求,ADS服务器以Call-back函数的方式不断向客户端发送响应,直到客户端取消该请求。这两种通讯方式的效率高,但需求复杂的客户端程序。优点:不会造成系统堵塞缺点:不能确保每次请求都有返回15ADS通讯方式2.特殊的ADS通讯(SpecificADSServices)TwinCATADS设备和Windows应用程序(例如VB、VC应用程序等)之间的通讯除了可以采用一般的ADS通讯方式外,还可以采用特殊的通讯方式,即同步通讯方式。-同步方式(Synchronous)ADS客户端向ADS服务器发送ADS请求,在通讯过程中客户端程序停止执行,直到获得ADS服务器返回的响应。这种通讯方式不需求复杂的客户端程序,但其轮循的通讯方式给系统带来比较大的负载,因此通讯效率较低。优点:能即时返回结果缺点:如果通讯故障会造成系统堵塞16ADSAPI为方便各种计算机高级语言及其环境使用ADS通讯,BeckhoffTwinCAT提供相如下组件:•ADS.NETComponent适用.NET平台,VB.NET,C#等•ADS-OCX(ActiveXCOM控件)适用于VisualBasic,VisualC++,Delphi等.•ADS-DLL适用于VisualC++等.•ADS-Script-DLL适用于VBScript,Jscript等脚本,创建B/S架构的应用.•JAVADLL适用于JAVA语言。•“PlcSystem.lib”PLC库ADS设备可以通过据此和其他ADS设备以及Windows进行通讯。17ADS访问变量方式TwinCATADS访问变量有两种方式:1.地址方式一个PLC变量的地址由两部分组成:GroupIndex和OffsetIndex:GroupIndex一般用于区别寄存器类型,在TwinCATADS设备中为常量,具体内容可以参考InformationSystem(后附常用的GroupIndex值)。OffsetIndex为变量的偏移地址,在PLC中为该变量的地址。2.变量名方式在TwinCATADS设备中每个变量都有一个句柄(Handle)。适用变量名访问变量首先需要得到该变量的句柄。(不同的高级语言方式略有不同)18常用的GroupIndexGroupIndex值描述0x00004020M寄存器(用%M声明)0x00004021MX寄存器(用MX声明)0x0000F020I寄存器(用%I声明)0x0000F021IX寄存器(用IX声明)0x0000F030Q寄存器(用%Q声明)0x0000F031QX寄存器(用QX声明)0x0000F003取变量的句柄0x0000F005通过变量句柄访问变量值0x0000F006释放句柄1.对于MX,IX,QX寄存器的偏移地址的单位是“位”,而不是字节,计算地址需要注意2.M寄存器偏移地址最大值为0x0000FFFF,而MX,I,IX,Q,QX偏移地址最大值为0xFFFFFFFF。3.上表后三个主要用于C++语言,其他高级语言已经封装成专有方法,不需直接调用。19ADS组件库文件组成简介ADS组件库集成在TwinCAT软件中,安装任何版本的TwinCAT软件都包含ADS通讯组件,如果用户希望在没有安装TwinCAT软件的计算机适用ADS通讯组件可以安装Supplement中的TwinCAT_ADS_Communication_Library此为免费产品。除需要复制到Windows/System32目录外绝大部分相关文件可以在TwinCAT安装目录找到。假设TwinCAT安装路径为C:\TwinCAT文件描述C:\TwinCAT\ADSApi\TcAdsDll\ADSDLLC:\TwinCAT\ADSApi\.NET.NET组件(支持三个版本的Framework)C:\TwinCAT\ADSApi\AdsToJavaADSJAVADLLC:\TwinCAT\ADSApi\CompactFramework.NETCompactFramework组件C:\TwinCAT\ADSApi\LibVS97LibC:\TwinCAT\ADSApi\TcAdsWebServiceWebService组件C:\WINDOWS\system32\AdsOcx.ocxADSOCXC:\TwinCAT\TcScript.dllADS-Script-DLL20Ads组件调用过程简介.NET调用流程新建工程添加引用TwinCAT.Ads.dll定义TcAdsClient对象privateTcAdsClientadsClient;初始化TcAdsClient对象adsClient=newTcAdsClient();adsClient.Connect(801);通过变量名取得变量的句柄注册DeviceNotification事件用于读写变量AddDeviceNotification读写变量接受处理返回结果释放资源21Ads组件调用过程简介C++在VisualC++中进行链接和程序开发时所需要的文件:TcAdsDll.dll–动态链接库TcAdsDll.lib–使用TcAdsDll.dll的函数库TcAdsApi.h–声明ADS功能的头文件TcAdsDef.h–声明结构和常数的头文件主要接口:AdsPortOpen:建立TwinCAT信息路由器连接(通讯口)。AdsPortClose:关闭TwinCAT信息路由器的连接(通讯口)。AdsGetLocalAddress:返回本地NetId和端口号AdsSyncWriteReq:同步写数据到一个ADS设备AdsSyncReadReq:从ADS服务器中同步读数据。AdsSyncReadWriteReq:同步写入数据到ADS服务器中并从ADS设备接收返回的数据。AdsSyncReadStateReq:从ADS服务器中读AD
本文标题:4000_通讯_ADS通讯-高级语言
链接地址:https://www.777doc.com/doc-5524853 .html