当前位置:首页 >> 信息与通信 >>

ADS通讯-高级语言


ADS通讯-高级语言 ADS通讯- 通讯
The Windows Control and Automation Technology

尚德明

1

ADS简介 简介
在Beckhoff TwinCAT 系统中,各个软件模块(如TwinCAT PLC、TwinCAT NC、 Windows 应用程

序等)的工作模式类似于硬件设备,它们能够独立工作。各个软件模块 之间的信息交换通过TwinCAT ADS 而完成。ADS(Automation Device Specification) 即自动化设备规范,它为设备之间的通讯提供路由。 在TwinCAT PC 和Beckhoff 的CX、BX、BC 系列控制器中都包含TwinCAT 信息路 由器。因此各个ADS 设备之间都能够交换数据和信息。 基于ADS 的TwinCAT 系统构架如下图所示:

2

TwinCAT ADS 设备标识
每台TwinCAT ADS 设备都有各自不同的AdsAmsNetId 和AdsPort(端口号), 以相互区别。 AdsAmsNetId 是TCP/IP 地址的扩展,是TwinCAT Message Router,存在于每 台TwinCAT PC 或Beckhoff CX、BX、BC 系列控制器中。例如:如果一台PC 的IP 地址是“192.168.2.10”,那么它的AdsAmsNetId 就是“192.168.2.10.1.1”。当然, 也可以对AdsAmsNetId 进行修改。 每台ADS 设备(ADS Server)的AdsPort 都各不相同,且固定不变。而ADS 客 户端(ADS Client)应用程序的AdsPort 则是可变的。不同ADS 设备的AdsPort 如下 图所示:
ADS 设备 Run-time system 1 PC 控制器中的PLC Run-time system 2 Run-time system 3 Run-time system 4 自定义任务( Additional Task ) BCxxxx 控制器中的PLC NC Additional Task 1 Additional Task 2 AdsPort 801 811 821 831 301 302 800 500

3

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

4

ADS 通讯方式
2. 特殊的ADS 通讯(Specific ADS Services)

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

5

ADS API
为方便各种计算机高级语言及其环境使用ADS通讯,Beckhoff TwinCAT提供 相如下组件: ?ADS .NET Component 适用.NET平台,VB.NET,C#等 ? ADS-OCX (ActiveX COM控件) 适用于Visual Basic, Visual C++, Delphi等. ? ADS-DLL 适用于Visual C++等. ? ADS-Script-DLL 适用于 VBScript, Jscript等脚本,创建B/S架构的应用. ?JAVA DLL 适用于JAVA语言。 ? “PlcSystem.lib” PLC 库 ADS设备可以通过据此和其他ADS设备以及Windows进行通讯。
6

ADS 通讯协议概述
ADS协议处于网络通讯协议的应用层。
TCP/IP模型 模型 OSI模型 模型

应用层

传输层

Internet层

网络接口层

7

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

8

ADS组件库文件组成简介 组件库文件组成简介
ADS组件库集成在TwinCAT软件中,安装任何版本的TwinCAT软件都包含 ADS通讯组件,如果用户希望在没有安装TwinCAT软件的计算机适用ADS通讯 组件可以安装Supplement中的TwinCAT_ADS_Communication_Library此 为免费产品。 除需要复制到Windows/System32目录外绝大部分相关文件可以在 TwinCAT安装目录找到。假设TwinCAT安装路径为C:\TwinCAT 文件
C:\TwinCAT\ADS Api\TcAdsDll\ C:\TwinCAT\ADS Api\.NET C:\TwinCAT\ADS Api\AdsToJava C:\TwinCAT\ADS Api\CompactFramework C:\TwinCAT\ADS Api\Lib VS 97 C:\TwinCAT\ADS Api\TcAdsWebService C:\WINDOWS\system32\AdsOcx.ocx ADS DLL .NET组件(支持三个版本的Framework) ADS JAVA DLL .NET Compact Framework组件 Lib WebService组件 ADS OCX

描述

C:\TwinCAT\TcScript.dll

ADS-Script-DLL

9

Ads 组件调用过程简介
.NET调用流程

新建工程
private TcAdsClient adsClient;

添加引用TwinCAT.Ads.dll 用于读写 变量
adsClient = new TcAdsClient(); adsClient.Connect(801);

定义TcAdsClient对象 初始化TcAdsClient对象

AddDeviceNotific ation

通过变量名取得变量的句柄

注册DeviceNotification事件

读写变量 释放资源

接受处理返回结果

10

Ads 组件调用过程简介
C++
在 Visual C++ 中进行链接和程序开发时所需要的文件: ? ? ? ? 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 服务器中删除以前定义的通知。

11

辅助工具- 辅助工具-TwinCAT ADS Monitor
TwinCAT ADS Monitor可以抓取ADS通讯数据包

通讯数据帧记录

ADS数据结构

帧数据

12

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

13

辅助工具-仿真器 续 辅助工具-仿真器(续)
3).配置VS2005开发环境: a.转到“Tools-->options-->device tools-->devices” b.选择Windows CE 5.0设备,点击“属性(properties)”按钮 c.在Windows CE 5.0设备属性对话框点击“配置(configure)”按钮 d.在TCP/IP配置对话框选定“使用特定的IP(use specific IP address)”,输入仿真器的 IP地址。 下面就可以Debug CE应用程序,选择部署到Windows CE5.0。如果部署仍然失败, 运行仿真器\hard disk\system 路径下的cMaccept.exe文件。

测试正常后保存仿真器的设置,载关闭时选择Save Sate而不是True Off, 这样下次启动仿真器就不需要重新设置仿真器。 如果想删除保存的文件,转到“我的文档\My Virtual Machines下,将上 文提到的在 StartEmulator_DE.bat 设置的vmid 值为名称的文件夹删除即可。 如果在具体操作用什么问题,您可以随时和我们联系。 vs2008注意事项:用如下文件代替CE5_DbgHlp.zip 内的文件 C:\Program Files\Common Files\Microsoft Shared\CoreCon\1.0\Target\wce400\x86

14

常用的GroupIndex 常用的
GroupIndex值 0x00004020 0x00004021 0x0000F020 0x0000F021 0x0000F030 0x0000F031 0x0000F003 0x0000F005 0x0000F006 描述 M寄存器(用%M声明) MX寄存器(用MX声明) I寄存器(用%I声明) IX寄存器(用IX声明) Q寄存器(用%Q声明) QX寄存器(用QX声明) 取变量的句柄 通过变量句柄访问变量值 释放句柄

1.对于MX,IX,QX寄存器的偏移地址的单位是“位”,而不是字节,计算地址需要注意 2.M寄存器偏移地址最大值为0x0000FFFF,而MX,I,IX,Q,QX偏移地址最大值为 0xFFFFFFFF。 3.上表后三个主要用于C++语言,其他高级语言已经封装成专有方法,不需直接调用。

15


相关文章:
ADS2013.06破解版win7下安装_图文
为了应对这些挑战,越来越多的公司 依赖安捷伦 ADS 软件,使得他们的通信设计尽早...音频媒体|语言:中文 应用平台:windows / Mac OS X / Linux 说明,在第一次...
实时高效的工业机器人控制系统设计
其集成的人机 界面开发环境,可以支持高级语言如 VC++,Matlab 直接编程。TwinCAT...所有的 Windows 环境下的程序,例如图形和可视化模块均可以通过 ADS 通讯的方式...
ADS1118IDGS中文资料
ADS1118IDGS中文资料_信息与通信_工程科技_专业资料。ADS1118IDGS ADS1118IDGS 是规格小,功耗低,具有 SPITM(串行外围接口)-兼容,16 位 AD 转换,温度 传感器的...
ADS7844application
ADS7844application_信息与通信_工程科技_专业资料。模数转换器ADS7844的应用。ADS7844 串行模 数转换芯片的原理及其在嵌入式的应用 串行模/数转换芯片的原理及其在嵌...
ADS实现低噪声放大器_图文
ADS实现低噪声放大器_信息与通信_工程科技_专业资料。应用 ADS 软件设计低噪声...ADS LNA NF IP3 ADS(Agilent Design System)是安捷伦公司的一个高级的电路设计...
给排水CAD计算绘图一体化
参考文献 1 2 方铁.AutoCAD C 语言高级编程.清华大学出版社,1995 汤晓燕,等.DOS 下 ADS 程序与 AutoCAD R12 for windows 间的通讯、连接.微计算机应用,1 997...
ADS下简单ARM汇编程序实验
实验一 ADS 下简单 ARM 汇编程序实验 实验目的: 1、 熟悉 ADS1.2 下进行汇编语言程序设计的基本流程; 2、 熟悉在 ADS 中创建工程及编写、编译和运行汇编语言...
ADS1298中文版及常见问题
ADS1298中文版及常见问题_信息与通信_工程科技_专业资料。ADS1298中文版及常见问题 ADS1298 用于生物电位测量的低功率,8 通道,24 位模拟前端威尔逊中心电位(WCT)和...
ads1.2使用手册
ads1.2使用手册_计算机软件及应用_IT/计算机_专业资料。ARM9 嵌入式实验 ADS1...图 1-27 (2)语言设置(Language Settings) 语言设置(Language Settings) 开发...
STM32_ADS1110的通讯程序IO口模拟I2C
stm32的ADS1110驱动程序... 9页 免费S​T​M​3​2​_​A​D​S​1​1​1​0​的​通​讯​程​序​I​O​口​模...
更多相关标签:
ads通讯 | 倍福ads通讯协议 | twincat ads通讯 | ads通讯协议 | ads通讯是什么 | twincat ads通讯 例子 | ads高级仿真教程 | 通讯录管理系统c语言 |