[西门子] CODESYS有类似BECKHOFF的ADS通讯协议吗?

[复制链接]
查看26407 | 回复0 | 2024-1-12 22:46:39 | 显示全部楼层 |阅读模式
最近,有朋友在问是否有类似BECKHOFF的ADS通讯方式,特别是订阅功能,答案是:没有跟ADS一样的通讯方式,但是可以根据自己的实际需求选择不同的通讯方式来实现。例如,OPC DA/UA ,Share Memory共享内存,Ethernet TCP/IP ,Modbus TCP,PLC Handler等等来实现。

那么近期关于CODESYS的各种通讯,会在公众号里持续进行专题探讨,希望能给大家工作和学习中提供一些思路和帮助。

当然,里面有些通讯协议是需要付费才能支持的,这里不做重点讨论, 我们主要介绍一些实用免费的通讯方式。



BECKHOFF ADS通讯

首先,我们先来了解下ADS通讯方式:

在Beckhoff TwinCAT (TwinCAT为德国倍福系列PLC、IPC产品的软件名称,详细可以自行到官网查询)系统中,各个软件模块(如TwinCAT PLC、TwinCAT NC、Windows 应用程序等)的工作模式类似于硬件设备,它们能够独立工作。各个软件模块之间的信息交换通过TwinCAT ADS 而完成。ADS(Automation Device Specification)即自动化设备规范,它为设备之间的通讯提供路由。

在TwinCAT PC 和Beckhoff 的CX、BX、BC 系列控制器中都包含TwinCAT 信息路由器。因此各个ADS 设备之间都能够交换数据和信息。

基于ADS 的TwinCAT 系统构架如下图所示:



可以简单说,ADS协议属于网络通讯协议,且在其应用层。



通过ADS通讯,可以非常灵活地实现:

    BECKHOFF 系列PLC内部通讯;

    BECKHOFF系列所有PLC产品之间通讯;

    支持多种语言开发的上位机之间的通讯,实现对多家Scada软件的支持,如:VB、C#、C++、第三方Explorer等。




关于ADS通讯的详细介绍,可以参考本文最后的附件资料。这里不做展开说明。



PLC Handler和共享内存

在CODESYS平台中,能使用多种语言来进行数据通讯的方式之一就是PLCHandler。它为第三方的客户端和基于CODESYS开发的PLC之间建立通讯,PLCHandler封装了完整的底层通信协议,并提供了API接口。该API接口提供对所有可用功能和服务的访问。


具体的介绍已经在前期推文中详细说明了,请参考下方的链接:

【例程L9】C/C++/C#开发上位机和CODESYS通讯(免费)



Network Variable List(网络变量列表)

从ADS的本质,即网络通讯协议,那么我们可以添加NVL

(Network Variable List的简称),来实现同一控制器或者不同控制器之间的数据交互。

这里可查看上一期文章链接:

【1-16】Network Variable List网络变量列表



OPC 通讯

另外,我们也可以使用控制器自带的OPC服务功能来实现数据的交互,可在Application应用程序中添加Symbol Configuration对象来订阅相关的变量:



当然,OPC 功能需要付费使用。后续会专题来介绍这一部分。



相比较ADS而言,便利性肯定没法和他相比,但是我们仍然可以参考ADS协议的具体规范,结合上面介绍的所有通讯方式,选择合适的方案或者进行二次封装,最终达到我们自身想要的效果。



附件资料

附件主要包含:


链接:https://pan.baidu.com/s/1IEugaJq0p7xeNOwTP_WSyA
提取码:vqxm



以上内容可以根据需要,进行测试;如有更多的通讯方式和建议,欢迎大家加微信mengman45进行分享。


    【视频课程】Codesys V3.5系列入门课程【视频课程】Codesys SoftMotion软运动控制基础课程【视频课程】Codesys SoftMotion电子齿轮课程【视频课程】Codesys Library自定义库的制作 Codesys V3.5系列最全免费公开资料汇总
    【0-01】EtherCAT通讯网卡选型
    【1-02】ST语言编程变量命名建议
    【1-03】IDE集成开发环境的语言设置






--------END--------

喜欢本文还请大家分享及右下角“点赞”和“在看”

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则