首页 > 编程语言 >倍福Beckhoff TWinCAT ADS PLC编程

倍福Beckhoff TWinCAT ADS PLC编程

时间:2023-08-04 09:33:19浏览次数:42  
标签:通讯 ADS Beckhoff 倍福 地址 PLC TwinCAT 变量

一、倍福TWinCAT ADS简述

在Beckhoff TwinCAT 系统中,各个软件模块(如TwinCAT PLC、TwinCAT NC、Windows 应用程序等)及硬件系统CX、BX、BC 系列控制器中包含TwinCAT
信息路由器。因此各个ADS 设备之间都能够交换数据和信息。

二、TWinCat ADS 设备标识

每台TwinCAT
ADS 设备都有各自不同的AdsAmsNetId 和AdsPort(端口号), AdsAmsNetId 是TCP/IP 地址的扩展,默认为在IP基础上增加.1.1,也可以进行修改。

ADS 客户端(ADS Client)应用程序的AdsPort 则是可变的。不同ADS 设备的AdsPort 如下图所示:

三、TwinCat ADS通讯方式(同步和异步两种方式)

★ 异步方式(Asynchronous)

ADS 客户端向ADS 服务器发送ADS 请求,同时客户端继续自己的工作。ADS 服务器处理请求后,把响应以Call-back 函数方式发给客户端。

优点:不会造成系统堵塞

缺点:不能确保每次请求都有返回

★ 同步方式(Synchronous)

ADS 客户端向ADS 服务器发送ADS 请求,在通讯过程中客户端程序停止执行,直到获得ADS 服务器返回的响应

优点:能即时返回结果

缺点:如果通讯故障会造成系统堵塞

同步方式(Synchronous)通讯分为两种,即读操作和写操作,针对于读和写操作又分别分为两种方式,即按变量名进行读写和按照地址进行读写。

1.变量名方式

在TwinCAT PLC程序中每个变量都有一个句柄(Handle)。在对变量进行操作之前,首先我们要通过相关路径得到变量的句柄,然后进行读写操作,操作完毕后对句柄进行释放。

2. 地址方式

在TwinCAT PLC中一个变量的地址由两部分组成,即GroupIndex和OffsetIndex, GroupIndex为该变量所在的寄存器类型,为一常量; OffsetIndex为该变量在寄存器中得地址偏移量,为一变量。

1.对于MX,IX,QX寄存器的偏移地址的单位是“位”,而不是字节,计算地址需要注意

2.M寄存器偏移地址最大值为0x0000FFFF,而MX,I,IX,Q,QX偏移地址最大值为0xFFFFFFFF。

3.上表后三个主要用于C++语言,其他高级语言已经封装成专有方法,不需直接调用

四、按变量名和按变量地址进行操作的比较

1.变量名方式

优点:

A、 无需知道变量的具体地址;

B、 可以省略计算地址的工作;

C、 可对过程变量进行操作;

缺点:

A、 因为要抓放句柄(10ms),和地址方式比较通讯速度慢

B、 对BC、BX系列不能进行操作

2. 地址方式

优点:

A、 直接对地址进行操作,省去抓放句柄时间,通讯速度快;

B、 无需知道变量的具体路径;

C、 可以操作BC、BX系列控制器

缺点:

A、使用中需考虑不同变量的偏移地址,容易出错。

五、TwinCAT 通讯高级语言接口

开放、简单、 灵活、 文档齐全

六、TwinCAT
通讯高级语言组件

为方便各种计算机高级语言及其环境使用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进行通讯

七、TwinCAT
通讯高级语言组件获取

ADS组件库集成在TwinCAT软件中,安装任何版本的TwinCAT软件都包含ADS通讯组件,如果用户希望在没有安装TwinCAT软件的计算机适用ADS通讯组件可以安装Supplement中的TwinCAT_ADS_Communication_Library此为免费产品。

八、Qt C++ VS2015 工程设置示例

A、需要的相关文件

需要包含的头文件: TcAdsAPI.h 和 TcAdsDef.h

需要包含的Lib文件: TcAdsDll.lib

程序运行目录需要包含库文件: TcAdsDll.dll

B、设置方式

我们在工程目录下面新建一个目录,命名为: ads_include 【包含文件TcAdsAPI.h 和 TcAdsDef.h】

加入工程方法:工程属性 -> C/C++ -> 常规
附加包含目录 中添加 ads_include即可

我们在工程目录下面新建一个目录,命名为: libs 【包含文件TcAdsDll.lib】

加入工程方法:工程属性-> 链接器 -> 常规 附加库目录 中添加 libs即可

工程属性-> 链接器->输入
附加依赖项 中添加TcAdsDll.lib即可

同时需要把TcAdsDll.dll 库放置于程序的执行目录中。

九、推荐的Qt C++ 软件结构设计图【已经产品化实践过】

十、其他问题

1、 注意字节对齐,尽量统一使用4倍或者8倍字节数,也能大大提高内存访问命中率

2、 注意通讯高效性,尽量使用地址访问方式

3、 注意线程同步,保持主界面线程操作流程

标签:通讯,ADS,Beckhoff,倍福,地址,PLC,TwinCAT,变量
From: https://www.cnblogs.com/ybqjymy/p/17605028.html

相关文章

  • Qt 通过ADS实现倍福TwinCAT通信
    ADS通信分为两种:同步方式和异步方式。同步方式ADS客户端向ADS服务器发送ADS请求,在通信过程中客户端程序停止执行,直到获得ADS服务器返回的响应又可分为变量名方式和地址方式异步方式ADS客户端向ADS服务器发送ADS请求,同时客户端继续自己的工作。ADS服务器处理......
  • Qt 调用倍福TwinCAT通讯模块(TcAdsDll)
    Qt实现TwinCAT通讯目前这种方式是通过调用TwinCAT提供的AdsApi与倍福PLC通讯的。要求本机安装TwinCAT(无需作为主机,但是可能这个api依赖TwinCAT的一些服务)。关于AdsApi的官方资料请看这里,有函数的详细解释,还有例子。你值得拥有。https://infosys.beckhoff.com/english.php?conte......
  • Qt ADS中通过变量名访问变量的值
    在倍福提供的TwinCATADS的库的C(C++)接口中,有两种方式可以访问到PLC中的变量:根据地址访问、根据变量名访问。根据地址来访问的代码如下:1...2QStringhostNetId="192.168.12.51.1.1";3inthostPort=851;4AmsAddrtargetAddr=createAddr(hostNetId,hostPort);//这个......
  • This function has none of DETERMINISTIC, NO SQL, or READS SQL DATA in its de 错
    这是我们开启了bin-log,我们就必须指定我们的函数是否是1DETERMINISTIC不确定的2NOSQL没有SQl语句,当然也不会修改数据3READSSQLDATA只是读取数据,当然也不会修改数据4MODIFIESSQLDATA要修改数据5 CONTAINS SQL包含了SQL语句其中在function里面,只有DETERMINISTIC,......
  • ETHERNET/IP 转ETHERCAT连接倍福和欧姆龙PLC的配置方法
    ETHERNET/IP和ETHERCAT是两种不同的协议,它们在工业生产中都有广泛的应用。然而,由于协议不同,这两种设备之间无法通讯,这给工业生产带来了很大的麻烦。而捷米JM-EIP-ECAT网关应运而生,它能够连接到ETHERNET/IP总线和ETHERCAT总线中,实现两种不同协议设备之间的通讯。这个网关能够大大提......
  • ETHERNET/IP 转ETHERCAT连接倍福和欧姆龙PLC的配置方法
    ETHERNET/IP和ETHERCAT是两种不同的协议,它们在工业生产中都有广泛的应用。然而,由于协议不同,这两种设备之间无法通讯,这给工业生产带来了很大的麻烦。而捷米JM-EIP-ECAT网关应运而生,它能够连接到ETHERNET/IP总线和ETHERCAT总线中,实现两种不同协议设备之间的通讯。这个网关能够大大提......
  • DSP、双核AD21573WCBCZ402、ADSP-21573KBCZ-5属于SHARC系列处理器产品
    概述:ADSP-2157x处理器属于SHARC系列产品。ADSP-2157xSHARC处理器属于单指令多数据(SIMD)SHARC系列数字信号处理器(DSP),采用ADI公司的SuperHarvard架构。这些32/40/64位浮点处理器针对高性能音频/浮点应用进行了优化,具有大容量片内静态随机存取存储器(SRAM),可消除输入/输出(I/O)......
  • json 包 转字符串为dict json.loads(data_str)
    importjson##假设有一个JSON对象#data={#"name":"John",#"age":30,#"city":"NewYork"#}###将JSON对象转换为字符串#json_str=json.dumps(data)##print(json_str)#str转json类型是字典data_......
  • ADS简单模型参数总结
    MIM电容(金属-介质-金属)2.实验室用多层电介质电容(DielectricLaboratoriesMulti-LayerChipCapacitor)3.叉指电容(2portsor4ports)4.微波薄膜电容(MicrostripThinFilmCapacitor)5.三层衬底带状桥方型电感(MicrostripRectangularInductor(StripBridge,3-......
  • ADS20XX完全安装(任意盘)、卸载指南
    搞了一个下午ADS,终于是安装完成了,看网上居然没有license路径跳过相关问题的解决方法,我就记录一下。1安装方法下面是安装指南和一些安装问题的解决方法。我的电脑是win10,64版,ADS2015,2017,2019,2020都试了一遍。安装时候随便参照一个网上博客。例如参考博客:2017:https://blo......