(一)简介
在Beckhoff TwinCAT 系统中,各个软件模块(如TwinCAT PLC、TwinCAT NC、Windows 应用程序等)的工作模式类似于硬件设备,它们能够独立工作,各个软件模块之间的信息交换通过TwinCAT ADS 而完成。因此各个ADS 设备之间都能够交换数据和信息。
(二)ADS通讯协议概述
ADS通讯协议位于网络通讯协议的应用层
(三)ADS通讯协议的设备标识
1.每台ADS设备都有各自不同的AdsAmsNetID和AdsPort端口号,也是其最重要的两个属性。
2.AdsPort 指定通信的虚拟设备(ADS server),各不相同且固定不变,而ADS客户端应用程序的port则是可变的。创建plc程序的时候默认端口为851。
3.AdsAmsNetId 指定ADS路由器,是TCP IP地址的扩展。一台PC的IP为“192.168.10.10”时,AdsAmsNetId就是“192.168.10.10.1.1”。
4.ADS 客户端(ADS Client)应用程序的AdsPort 则是可变的。 不同ADS 设备的AdsPort 如下图所示:
(四)使用TwinCAT.Ads中间件
倍福腾讯需要使用TwinCAT的链接库
2.项目中引用链接库
3.添加命名空间:
using TwinCAT.Ads;
4.创建对象:
public static TwinCAT.Ads.TcAdsClient _adsClient = new TcAdsClient();
5.调用连接方法:
两种形式:包含NetID信息的和只有Port的,只有Port时,是C#应用程序运行在本地的情形,否则,需要指定NetID。正常情形下,端口号分TwinCAT3和TwinCAT2两种情形,TwinCAT3为851,TwinCAT2为801。
例:_adsClient.Connect(“192.168.10.30.1.1”, “851”);
_adsClient.Connect(iPort)
6.ADS常用方法
函数名 | 描述 | 函数名 | 描述 |
---|---|---|---|
AddDeviceNotification | 连接一个变量到ADS客户端 | ReadDevicelnfo | 读取ADS服务器的版本号 |
AddDeviceNotificationEx | 连接—个变量到ADS客户端 | ReadDevicelnfo | 读取ADS服务器的ADS状态和设备状态 |
Connect | 建立—个至ADS服务的连接 | ReadDevicelnfo | 读取一个变量的值,并返回object类型 |
CreateSymbolInfoLoader | 创建—个新的 | ReadDevicelnfo | 获取一个变量的信息 |
CreateVariableHandle | 生成—个ADS变量的唯一句柄 | ReadDevicelnfo | 将数据写入ADS服务器并读取数据 |
DeleteDeviceNotification | 删除设备通知 | ReadDevicelnfo | 将数据写入ADS服务器并读取数据 |
DeleteVariableHandle | 释放一个ADS变量句柄 | ReadDevicelnfo | 写入数据到ADS服务器 |
Read | 从ADS服务器读取数据 | ReadDevicelnfo | 改变ADS服务器的ADS状态和设备状态 |
ReadAny | 从ADS服务器读取数据 | ReadDevicelnfo | 写入一个变量的值 |