ADS通讯 高级语言课件_第1页
ADS通讯 高级语言课件_第2页
ADS通讯 高级语言课件_第3页
ADS通讯 高级语言课件_第4页
ADS通讯 高级语言课件_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ADS通讯-高级语言TheWindowsControlandAutomationTechnology尚德明

2022/11/11

1ADS通讯-高级语言TheWindowsControlADS简介在BeckhoffTwinCAT系统中,各个软件模块(如TwinCATPLC、TwinCATNC、Windows应用程序等)的工作模式类似于硬件设备,它们能够独立工作。各个软件模块之间的信息交换通过TwinCATADS而完成。ADS(AutomationDeviceSpecification)即自动化设备规范,它为设备之间的通讯提供路由。在TwinCATPC和Beckhoff的CX、BX、BC系列控制器中都包含TwinCAT信息路由器。因此各个ADS设备之间都能够交换数据和信息。基于ADS的TwinCAT系统构架如下图所示:

2022/11/11

2ADS简介在BeckhoffTwinCAT系统中,各个软TwinCATADS设备标识每台TwinCATADS设备都有各自不同的AdsAmsNetId和AdsPort(端口号),以相互区别。AdsAmsNetId是TCP/IP地址的扩展,是TwinCATMessageRouter,存在于每台TwinCATPC或BeckhoffCX、BX、BC系列控制器中。例如:如果一台PC的IP地址是“0”,那么它的AdsAmsNetId就是“0.1.1”。当然,也可以对AdsAmsNetId进行修改。每台ADS设备(ADSServer)的AdsPort都各不相同,且固定不变。而ADS客户端(ADSClient)应用程序的AdsPort则是可变的。不同ADS设备的AdsPort如下图所示:ADS设备

AdsPortPC控制器中的PLCRun-timesystem1801Run-timesystem2811Run-timesystem3821Run-timesystem4831自定义任务(AdditionalTask)AdditionalTask1301AdditionalTask2302BCxxxx控制器中的PLC

800NC

500

2022/11/11

3TwinCATADS设备标识每台TwinCATADSADS通讯方式ADS设备之间的通讯有多种方式,不同方式有不同的特点。一般的ADS通讯(GeneralADSServices) -异步方式(Asynchronous) ADS客户端向ADS服务器发送ADS请求,同时客户端继续自己的工作。ADS服务器处理请求后,把响应以Call-back函数方式发给客户端。 -通知方式(Notification) ADS客户端向ADS服务器发送ADS请求,ADS服务器以Call-back函数的方式不断向客户端发送响应,直到客户端取消该请求。这两种通讯方式的效率高,但需求复杂的客户端程序。优点:不会造成系统堵塞缺点:不能确保每次请求都有返回

2022/11/11

4ADS通讯方式ADS设备之间的通讯有多种方式,不同方式有ADS通讯方式特殊的ADS通讯(SpecificADSServices)TwinCATADS设备和Windows应用程序(例如VB、VC应用程序等)之间的通讯除了可以采用一般的ADS通讯方式外,还可以采用特殊的通讯方式,即同步通讯方式。-同步方式(Synchronous)ADS客户端向ADS服务器发送ADS请求,在通讯过程中客户端程序停止执行,直到获得ADS服务器返回的响应。这种通讯方式不需求复杂的客户端程序,但其轮循的通讯方式给系统带来比较大的负载,因此通讯效率较低。优点:能即时返回结果缺点:如果通讯故障会造成系统堵塞

2022/11/11

5ADS通讯方式特殊的ADS通讯(SpecificADSADSAPI为方便各种计算机高级语言及其环境使用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进行通讯。

2022/11/11

6ADSAPI为方便各种计算机高级语言及其环境使用ADS通讯ADS通讯协议概述ADS协议处于网络通讯协议的应用层。应用层传输层Internet层网络接口层TCP/IP模型OSI模型

2022/11/11

7ADS通讯协议概述ADS协议处于网络通讯协议的应用层。应用ADS访问变量方式TwinCATADS访问变量有两种方式:1.地址方式一个PLC变量的地址由两部分组成:GroupIndex和OffsetIndex:GroupIndex一般用于区别寄存器类型,在TwinCATADS设备中为常量,具体内容可以参考InformationSystem(后附常用的GroupIndex值)。OffsetIndex为变量的偏移地址,在PLC中为该变量的地址。2.变量名方式在TwinCATADS设备中每个变量都有一个句柄(Handle)。适用变量名访问变量首先需要得到该变量的句柄。(不同的高级语言方式略有不同)

2022/11/11

8ADS访问变量方式TwinCATADS访问变量有两种方式ADS组件库文件组成简介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-DLL

2022/11/11

9ADS组件库文件组成简介ADS组件库集成在TwinCAT软件Ads组件调用过程简介.NET调用流程新建工程添加引用TwinCAT.Ads.dll定义TcAdsClient对象

private

TcAdsClientadsClient;初始化TcAdsClient对象adsClient=newTcAdsClient();adsClient.Connect(801);

通过变量名取得变量的句柄注册DeviceNotification事件用于读写变量AddDeviceNotification读写变量接受处理返回结果释放资源

2022/11/11

10Ads组件调用过程简介.NET调用流程新建工程添加引用TwAds组件调用过程简介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服务器中读ADS状态和设备状态。AdsSyncAddDeviceNotificationReq:通知在ADS服务器中进行定义(如PLC)。当某个事件发生时,该功能(回调功能)在ADS客户端进行调用(C程序)。AdsSyncDelDeviceNotificationReq:从ADS服务器中删除以前定义的通知。

2022/11/11

11Ads组件调用过程简介C++2022/11/9辅助工具-TwinCATADSMonitorTwinCATADSMonitor可以抓取ADS通讯数据包ADS数据结构帧数据通讯数据帧记录

2022/11/11

12辅助工具-TwinCATADSMonitorTwinC辅助工具-仿真器1.下载文件:以下路径为FTp路径()/Software/embPC-Control/CE/Solutions/CX_Emulator/emulator.zip(CE仿真器英文)/Software/embPC-Control/CE/Solutions/SDK/BeckhoffHMI500V1.3SDK.msi/Software/embPC-Control/CE/Solutions/VS_NET2005/CE5_DbgHlp.zip2.仿真器安装:a.安装MicrosoftWindowsCE5.0Emulator.msi需要连接互联网b.安装完仿真器,再安装虚拟网卡驱动netsvwrap.msi3.配置:a.安装后修改StartEmulator_DE.bat文件,将参数中的/Ethernet的MAC改为本地网卡的实际MAC地址b.参数vmid后的GUID值做为保存映像是的文件夹名称。4.设置仿真器和VS.net集成环境:WindowsCE5的模拟器是基于x86的,VS2005的DeviceEmulator是基于ARM的,VS2005开发环境无法和WinCE模拟器进行集成进行远程调试。但是可以通过下面的方式实现集成:1).将CE5_DbgHlp.zip压缩包文件解压复制仿真器的\harddisk\system路径下(实际的控制器新版本系统中这些文件已经存在)2).运行Conmanclient2.exe

2022/11/11

13辅助工具-仿真器1.下载文件:2022/11/9辅助工具-仿真器(续)3).配置VS2005开发环境:a.转到“Tools-->options-->devicetools-->devices”b.选择WindowsCE5.0设备,点击“属性(properties)”按钮c.在WindowsCE5.0设备属性对话框点击“配置(configure)”按钮d.在TCP/IP配置对话框选定“使用特定的IP(usespecificIPaddress)”,输入仿真器的IP地址。下面就可以DebugCE应用程序,选择部署到WindowsCE5.0。如果部署仍然失败,运行仿真器\harddisk\system路径下的cMaccept.exe文件。测试正常后保存仿真器的设置,载关闭时选择SaveSate而不是TrueOff,这样下次启动仿真器就不需要重新设置仿真器。如果想删除保存的文件,转到“我的文档\MyVirtualMachines下,将上文提到的在StartEmulator_DE.bat设置的vmid值为名称的文件夹删除即可。如果在具体操作用什么问题,您可以随时和我们联系。vs2008注意事项:用如下文件代替CE5_DbgHlp.zip内的文件C:\ProgramFiles\CommonFiles\MicrosoftShared\CoreCon\1.0\Target\wce400\x86

2022/11/11

14辅助工具-仿真器(续)3).配置VS2005开发环境:常用的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++语言,其他高级语言已经封装成专有方法,不需直接调用。

2022/11/11

15常用的GroupIndexGroupIndex值描述0x00ADS通讯-高级语言TheWindowsControlandAutomationTechnology尚德明

2022/11/11

16ADS通讯-高级语言TheWindowsControlADS简介在BeckhoffTwinCAT系统中,各个软件模块(如TwinCATPLC、TwinCATNC、Windows应用程序等)的工作模式类似于硬件设备,它们能够独立工作。各个软件模块之间的信息交换通过TwinCATADS而完成。ADS(AutomationDeviceSpecification)即自动化设备规范,它为设备之间的通讯提供路由。在TwinCATPC和Beckhoff的CX、BX、BC系列控制器中都包含TwinCAT信息路由器。因此各个ADS设备之间都能够交换数据和信息。基于ADS的TwinCAT系统构架如下图所示:

2022/11/11

17ADS简介在BeckhoffTwinCAT系统中,各个软TwinCATADS设备标识每台TwinCATADS设备都有各自不同的AdsAmsNetId和AdsPort(端口号),以相互区别。AdsAmsNetId是TCP/IP地址的扩展,是TwinCATMessageRouter,存在于每台TwinCATPC或BeckhoffCX、BX、BC系列控制器中。例如:如果一台PC的IP地址是“0”,那么它的AdsAmsNetId就是“0.1.1”。当然,也可以对AdsAmsNetId进行修改。每台ADS设备(ADSServer)的AdsPort都各不相同,且固定不变。而ADS客户端(ADSClient)应用程序的AdsPort则是可变的。不同ADS设备的AdsPort如下图所示:ADS设备

AdsPortPC控制器中的PLCRun-timesystem1801Run-timesystem2811Run-timesystem3821Run-timesystem4831自定义任务(AdditionalTask)AdditionalTask1301AdditionalTask2302BCxxxx控制器中的PLC

800NC

500

2022/11/11

18TwinCATADS设备标识每台TwinCATADSADS通讯方式ADS设备之间的通讯有多种方式,不同方式有不同的特点。一般的ADS通讯(GeneralADSServices) -异步方式(Asynchronous) ADS客户端向ADS服务器发送ADS请求,同时客户端继续自己的工作。ADS服务器处理请求后,把响应以Call-back函数方式发给客户端。 -通知方式(Notification) ADS客户端向ADS服务器发送ADS请求,ADS服务器以Call-back函数的方式不断向客户端发送响应,直到客户端取消该请求。这两种通讯方式的效率高,但需求复杂的客户端程序。优点:不会造成系统堵塞缺点:不能确保每次请求都有返回

2022/11/11

19ADS通讯方式ADS设备之间的通讯有多种方式,不同方式有ADS通讯方式特殊的ADS通讯(SpecificADSServices)TwinCATADS设备和Windows应用程序(例如VB、VC应用程序等)之间的通讯除了可以采用一般的ADS通讯方式外,还可以采用特殊的通讯方式,即同步通讯方式。-同步方式(Synchronous)ADS客户端向ADS服务器发送ADS请求,在通讯过程中客户端程序停止执行,直到获得ADS服务器返回的响应。这种通讯方式不需求复杂的客户端程序,但其轮循的通讯方式给系统带来比较大的负载,因此通讯效率较低。优点:能即时返回结果缺点:如果通讯故障会造成系统堵塞

2022/11/11

20ADS通讯方式特殊的ADS通讯(SpecificADSADSAPI为方便各种计算机高级语言及其环境使用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进行通讯。

2022/11/11

21ADSAPI为方便各种计算机高级语言及其环境使用ADS通讯ADS通讯协议概述ADS协议处于网络通讯协议的应用层。应用层传输层Internet层网络接口层TCP/IP模型OSI模型

2022/11/11

22ADS通讯协议概述ADS协议处于网络通讯协议的应用层。应用ADS访问变量方式TwinCATADS访问变量有两种方式:1.地址方式一个PLC变量的地址由两部分组成:GroupIndex和OffsetIndex:GroupIndex一般用于区别寄存器类型,在TwinCATADS设备中为常量,具体内容可以参考InformationSystem(后附常用的GroupIndex值)。OffsetIndex为变量的偏移地址,在PLC中为该变量的地址。2.变量名方式在TwinCATADS设备中每个变量都有一个句柄(Handle)。适用变量名访问变量首先需要得到该变量的句柄。(不同的高级语言方式略有不同)

2022/11/11

23ADS访问变量方式TwinCATADS访问变量有两种方式ADS组件库文件组成简介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-DLL

2022/11/11

24ADS组件库文件组成简介ADS组件库集成在TwinCAT软件Ads组件调用过程简介.NET调用流程新建工程添加引用TwinCAT.Ads.dll定义TcAdsClient对象

private

TcAdsClientadsClient;初始化TcAdsClient对象adsClient=newTcAdsClient();adsClient.Connect(801);

通过变量名取得变量的句柄注册DeviceNotification事件用于读写变量AddDeviceNotification读写变量接受处理返回结果释放资源

2022/11/11

25Ads组件调用过程简介.NET调用流程新建工程添加引用TwAds组件调用过程简介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服务器中读ADS状态和设备状态。AdsSyncAddDeviceNotificationReq:通知在ADS服务器中进行定义(如PLC)。当某个事件发生时,该功能(回调功能)在ADS客户端进行调用(C程序)。AdsSyncDelDeviceNotificationReq:从ADS服务器中删除以前定义的通知。

2022/11/11

26Ads组件调用过程简介C++2022/11/9辅助工具-TwinCATADSMonitorTwinCATADSMonitor可以抓取ADS通讯数据包ADS数据结构帧数据通讯数据帧记录

2022/11/11

27辅助工具-TwinCATADSMonitorTwinC辅助工具-仿真器1.下载文件:以下路径为FTp路径()/Software/embPC-Control/CE/Solutions/CX_Emulator/emulator.zip(CE仿真器英文)/Software/embPC-Control/CE/Solutions/SDK/BeckhoffHMI500V1.3SDK.msi/Software/embPC-Control/CE/Solutions/VS_NET2005/CE5_DbgHlp.zip2.仿真器安装:a.安装MicrosoftWindowsCE5.0Emulator.msi需要连接互联网b.安装完仿真器,再安装虚拟网卡驱动netsvwrap.msi3.配置:a.安装后修改StartEmulator_DE.bat文件,将参数中的/Ethernet的MAC改为本地网卡的实际MAC地址b.参数vmid后的GUID值做为保存映像是的文件夹名称。4.设置仿真器和VS.net集成环境:WindowsCE5的模拟器是基于x86的,VS2005的DeviceEmulator是基于ARM的,VS2005开发环境无法和WinCE模拟器进行集成进行远程调试。但是可以通过下面的方式实现集成:1).将CE5_Db

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论