[三菱] 可能是最详细的CC-Link协议解析-与DP协议的比较及开发方案

[复制链接]
查看67356 | 回复0 | 2024-3-13 08:59:28 | 显示全部楼层 |阅读模式
EnTalk

前面我们详细分析了CC-Link的报文和通信机制,相信大家对CC-Link协议本身已经有了初步的了解。

但是对于绝大多数工程师而言,我们其实无需对协议钻研的这么深。更现实的三个问题是:

    此协议相比于其他协议,有什么优势?

    如果要开发CC-Link,有什么方案可以选择?

    在开发过程中,需要什么样的工具?


正好我们作为开发者,在近期完整经历了这三个过程,所以作为CC-Link协议的终结篇,我们趁热分享一下我们对于这三个问题的理解。

01

CC-Link与DP区别在哪里?

同样是基于RS485的现场总线,CC-Link与PROFIBUS DP有很多相似之处,所以我们这里不去对比所有其他现场总线,而是重点与DP比较一下。



从上图可以看到,主要不同在于:

    虽然电气层都是基于RS485,但是二者信号编码,位填充机制都不一样,CC-Link相对更复杂,这也决定了CC-Link物理层无法仅用通用的RS485器件实现。

    链路层收发DP基于UART,而CC-Link基于HDLC(High-level Data Link Control),更复杂但效率更高。

    CC-link网络规模更小,支持节点固定数量,但在V2版本下支持的字节数多于DP。

    主从通讯方式:

    - DP采取主站轮询从站的方式与各个从站收发数据,主站请求报文中会将输出数据发送给某个从站,然后该从站将输入数据在应答报文中回复给主站。

    - CC-Link主站采用广播式向所有从站发送数据报文,每个从站从中挑选并接收属于自己的数据,与EtherCAT集束帧机制有些类似。因此CC-Link传输帧很长,所以选择了HDLC的传输方式,这样更方便在通信过程中恢复时钟。

    同时CC-Link V2还有独有的扩展周期设置,采用了分时设计思路,可以让用户选择数据更新周期和数据量,以提高通信效率。


可见CC-Link为了兼顾通讯可靠性,数据交换效率和灵活性,在协议设计上颇费心思。

当然DP也有其独到之处,这里先挖个坑,我们团队的DP一哥已经表态要在繁重的开发任务中,挤出时间好好给大家分享一下他的DP研究心得,让我们拭目以待。

02

CC-Link的开发方案

CC-Link从站的开发方案,市面上主要有三菱的专用芯片,HMS和Hilscher的多协议模组,以及我们骥远基于国产FPGA开发的芯片。

这里我们忍了一下,不做广告了,简而言之我们的方案颇具特点而且性价比极高,感兴趣的可以看看我们历史文章“一颗国产FPGA,实现CC-Link远程IO站”。

该文章中除了介绍方案以外,也梳理了CC-Link协议家族的各种协议。

03

手搓CC-Link 抓包工具

开发CC-Link,首先需要的当然是一个支持CC-Link主站的三菱PLC,这个现在不缺货,随便买即可。

除此之外,我们也发现最好有一个能抓CC-Link报文的工具。

然而由于其特殊的协议机制,市面上基于RS485的抓包工具无法直接使用,我们翻遍了互联网也没找到现成的。

无奈之下,我们工程师只好手搓了一个CC-Link抓包工具,虽然略显简陋但绝对好用。需要的工程师,可以后台留言给我们获取。

我们前后做了两版,最新的一版设计思路是:

    通过FPGA抓取CC-Link报文;

    给抓到的报文打上时间戳;

    将报文通过以太网以UDP的方式发给PC;

    在PC端通过wireshark软件(Lua脚本)进行解析。


此方案即使在CC-Link波特率很高时,也不会丢报文,而且加上了有利于进行时域分析的时间戳。

以下是朴素的让小编震怒但又无可奈何的抓包电路板和报文图:





哈哈,作为一个全是工程师的团队,我们贵在真实,赢在真诚。

至此,我们的CC-Link协议部分就告一段落了。一家之言,谬误难免,欢迎各位交流指正,共同进步。







北京骥远自动化

邮箱:cn-sales@jiyuansys.com

电话:010-85958895

本帖子中包含更多资源

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

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

本版积分规则