上几篇文章我们通过抓包分析了CC-Link的上电、数据交换、异常处理等过程,已经对CC-Link有个一个初步的了解。接下来,我们会对CC-Link从站进行概要性的描述。
认识工业通信协议,我们可以从应用场景角度观察它,一般协议规范中会给出它的应用场景,对于CC-Link如下图所示:
我们可以得到如下几点信息:
- CCLink用于工厂自动化网络,可以对比一下流程自动化的网络;
- CCLink用于现场网络,即图中连接PLC和设备的网络;
- 更低层的传感器网络,可以用CCLink/LT;
了解了应用场景后,我们来看一下CC-Link从站的分类。如下图所示:
我们重点关注于应用最广泛的远程IO站和远程设备站。
CC-Link在应用中也会需要有调整更新,所以实际中会有不同的版本,对于我们关注的远程设备和远程IO,版本差异如下图所示:
Ver. 1.10和Ver. 1.00的差异在于硬件线路上,此处按照Ver. 1.00来。
Ver. 1.11和Ver. 2.00的差异在与2.0版本支持扩展周期传输,消息传输为可选。1.11版本消息传输为必选,不支持扩展周期传输。考虑到消息传输使用场合少,支持扩展周期传输更有意义。
以北京骥远的Xone方案说明,支持Ver. 1.00远程IO和远程设备,支持Ver. 2.00远程设备,当前不支持消息传输。
那么不同类型的从站,在不同的协议版本下是否可以兼容?协议规范中考虑到了这方面的问题,给出了相互通信的要求,如下表所示:
我们可以得出如下的结论:
- Ver. 2主站可以连接远程设备和远程IO,包括Ver. 1和Ver. 2;
- Ver. 1主站可以Ver. 1的远程设备和远程IO;
- Ver. 2远程设备可以接入Ver. 2的主站,不能接入Ver. 1的主站;
- Ver. 1的远程主站可以接入Ver. 2或Ver. 1的主站;
- Ver. 1的远程IO可以接入Ver. 2或Ver. 1的主站;
CC-Link物理层基于RS485,但在链路层采用了和PROFIBUS DP、Modbus RTU不同的编码方式(NRZI vs NRZ)。所以在实现CC-Link时不能采用通用MCU内部的UART,主要原因为编码方式不同以及 CC-Link采用的连续发送5个“1”后插入一个“0”bit,连续接收到5个“1”之后删除1个“0”的方式。