一、概述
CCLink是一种可编程控制器(例如PLC)与设备进行通信的协议。它是一种闭源的半开放协议,由三菱电机公司开发,并在全球范围内使用。CCLink支持多种通信媒介,包括以太网、串行通信等,并支持多个周期时间、不同数据长度和数据呈现方式的要求。
CCLink使用Cyclic (CCLink) 和 Transient (CCLink IE) 两种模式进行数据传输。CCLink和CCLink IE均支持点对点和多节点网络拓扑结构。
CCLink的配置参数可以通过GX Works2编程软件进行设置,并可根据特定设备或应用程序进行自定义设置。
二、通信协议
1. 帧格式
CCLink的帧结构包含码头、数据和帧尾,此外它还包含了数据长度和通讯地址信息。
//--------------------------------------------------------- | Station No | Length | Data | Checksum | EOF | //---------------------------------------------------------
1)站号:指示该网络上的设备或节点。可以取值1到64。
2)长度:数据区域的字节数目,不包括其他区域。
3)数据:要传输的数据信息。
4)校验和:检测数据传输是否正确的值。
5)帧尾:指示帧的结束符。
2. 网络拓扑结构
CCLink支持以下几种网络拓扑结构:
- 点对点网络
- 多节点环形网络
- 多节点总线网络
- 多节点星型网络
- 多节点混合网络
3. 通信模式
CCLink有以下两种通信模式:
- Cyclic
- Transient
4. 通信速度
CCLink的数据传输速度通常介于10Kbps和10Mbps之间,取决于要求的网络长度和通信速度。
三、CCLink通讯的实现
1. 网络初始化
网络必须进行初始化才能和控制器通信。初始化过程包括节点地址分配、手动或自动配置网络参数等步骤。
2. 通信协议
使用CCLink通讯协议之前,应该熟悉其帧结构和数据格式。通信协议通常是在控制器中使用GX Works2编程软件生成。
3. 数据传输
数据传输可以通过代码实现,例如在PLC程序中使用SFC或指令组的形式实现数据传输。
4. 错误处理
CCLink通讯过程中可能发生错误,例如通信超时或者传输数据有误等,此时应该进行错误处理。
5. 程序设计示例
以下是使用GX Works2编程软件实现CCLink通讯的一个简单示例:
//--------------------------------------------------------- SFC100 CCLINK COMMUNICATION EXAMPLE STRUCTURE OF THE CCLINK HEADER ----------------------------------------------------------------- HEAD Struct STATION_NO Dw ; Station Number (1 - 64) LENGTH Dw ; Data Length (2 - 357) ----------------------------------------------------------------- End_Struct DATA LblW 32767 COMLEN EQU X'04'; Length of the Message Communication field RCV_BUCK EQU X'00'; Receive status buffer number SND_BUCK EQU X'01'; Send status buffer number NETWORK_INIT: INIT_NWK 'NETWORK 1', ; Network configuration name X'00000000', ; Node configuration XCCLINK, ; Network type X'00000001', ; Station number X'00000004', ; Network communication speed X'0000000F', ; Maximum number of message communications X'00000000', ; Acquire Time-out X'00000000', ; Response Time-out X'00000000', ; Num error messages to store X'00000000', ; Retry interval X'00000003', ; Communication mode - cyclic X'00000000', ; Keep alive time [1,2,3] ; Connected remote station numbers SEND_STR: MOV WORD PTR DATA+0, 1 ; Station Number ; WRITE SINGLE COIL MSG1: MOV WORD PTR DATA+2, 5 ; Data Length MOV BYTE PTR DATA+4, 0 ; Slave address MOV BYTE PTR DATA+5, 5 ; Function code MOV BYTE PTR DATA+6, 0 ; Starting address high byte MOV BYTE PTR DATA+7, 0 ; Starting address low byte MOV BYTE PTR DATA+8, 0 ; Output value high byte MOV BYTE PTR DATA+9, 1 ; Output value low byte CALL PRG016 JR Z, MSG2 ; No error MSG2: MOV AX, 0 RET ; READ SINGLE COIL MSG3: MOV WORD PTR DATA+2, 4 ; Data Length MOV BYTE PTR DATA+4, 0 ; Slave address MOV BYTE PTR DATA+5, 1 ; Function code MOV BYTE PTR DATA+6, 0 ; Starting address high byte MOV BYTE PTR DATA+7, 0 ; Starting address low byte CALL PRG016 JR Z, MSG4 ; No error MSG4: CMP BL, 1 ; Coil status is on RET END: END_SFC //---------------------------------------------------------
四、总结
CCLink通讯协议是一种可编程控制器与设备进行通信的协议。它具有多种通信媒介、支持多种网络拓扑结构以及通信速度可变等特点。通过程序设计,可以实现对CCLink通讯协议的使用,进而实现设备之间的数据传输。