TwinCAT3 实时核中ADS实现C++ server、clinet数据传输

一、基本概念

ADS :Automation Device Specification,ADS设备间进行通信的协议规范。协议定义了ADS device之间如何寻址对方、ADS device之间可以执行哪些操作、执行这些操作需要哪些参数,以及操作完成后如何返回结果等。从编程角度看,协议涵盖了AMS netID,port number(二者用于寻址ADS device)以及AdsReadWriteInd、AdsReadWriteRes、AdsReadWriteReq、AdsReadWriteCon、AdsReadReq……等一系列函数(用于在ADS device之间传输数据)。

ADS device:具备ADS接口的软件模块。 下图是从倍福官网拷贝的,从图中可以看出,所有的ADS device连接在ADS Router Engine上,那么通过ADS通讯时,是如何识别通讯的ADS device双方呢?这就涉及到后面提到的AMS了。

AMS :Automation Message Specification,指定了ADS数据的交互格式。从编程的角度,需要关心Ams NetId、Ams Prot,二者用于寻址通讯双方的 ADS device。

AMS NetId:默认的AMS NetId是本机IP地址后面加上.1.1,比如192.168.56.1.1.1。但是,AMS NetId与IP地址是没有任何关系的,可以通过下面步骤改成其他值。

AMS Port:通过AMS NetId只能找到对应的PC或控制器,PC或控制器中可能运行很多ADS device,所以还需要AMS Port识别具体的ADS device。AMS Port与linux、Windows中的端口一样,用于识别应用程序,每个应用程序分配有唯一的端口号,port的范围见参考资料4。

Route :通讯的server、client双方必须配置路由信息,路由包含路由名称、AmsNetId、对方的ip地址、路由类型。 TwinCAT 3中添加路由操作如下:

TwinCAT device:装有TwinCAT runtime的PC或控制器。

实时核:TwinCAT可以设置共享实时核、独占实时核,用于对运行时间要求严格的任务。

二、Server与Client通讯模型

与非实时ADS通讯不同,实时核中通信双方不能阻塞,需要采用异步的方式,TwinCAT提供的实时核通信接口见参考资料3。ADS通讯模型是Client-Server模式,客户端发起请求,服务端进行响应

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值