设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
控制专题
›
『数控/电机控制/运动控制/工业总线』
›
可能是最详细的CC-Link协议解析-数据交换篇 ...
返回列表
发新帖
可能是最详细的CC-Link协议解析-数据交换篇
[复制链接]
76048
|
0
|
2024-3-13 09:08:49
|
显示全部楼层
|
阅读模式
EnTalk
书接前文,上一篇文章描述了CC-Link从站上电建立连接的过程,本篇我们重点分析CC-Link从站和主站进行数据交换的过程。
01
正常情况下的数据交换
按照以前文章的习惯,我们先列出数据交换过程使用的报文格式:
在数据交换阶段,即:refresh cycle主站会依次查询从站,轮询的方式体现出了CC-Link的独特的地方。
首先我们看一下当前的PLC中CC-Link参数配置情况:
- 当前采用CC-Link V2版本;
- 配置了两个从站;
- 第一个从站为基于北京骥远Xone的Ver.2 远程设备站,占用1个内存站,4倍扩展周期;
- 第二个从站为基于MFP3的Ver.1 远程设备站,占用2个内存站。
下面我们通过协议文档,并结合抓取的报文,分析正常的数据交换过程。
如上图:主站和两个从站1、2在交换数据。在wireshark中显示为“M->S:1”,“S:1->M”。
如下图:对于第一个从站,主站采用了polling&refresh data的方式,即:请求该从站数据,同时把所有从站的数据广播出来,所有从站此时要将整个数据报文接收,然后将属于自己的数据存储下来。
对于第二个从站,主站采用了polling的方式,仅仅是告诉第二个从站,此时它可以回复数据了。
在每个refresh cycle结束,主站都会发送refresh cycle end报文,并且会发送两次。通过FA格式的帧报文发送,可以看到发送的第二个字节为当前最后一个正常从站的地址。
02
异常情况下的数据交换
我们继续CC-Link从站和主站进行数据交换的过程,但会重点关注某个从站异常情况下的交换过程。
该部分用到的数据报文和上一篇类似,这里不再列出。
首先我们列出当前PLC的硬件组态配置。如下图:
首先我们给出正常通信时的报文。如下图所示,红色部分表示两个refresh cycle,也就是两个数据交换周期。从报文中可以看到主站首先采用FF格式报文,刷新所有从站数据,并同时请求2号从站数据。然后主站依次请求4号从站和1号从站,采用FE格式报文,4号(1号)从站在接收到主站请求时进行回复。
如果在正常运行中,一个从站断电了,然后又上电,CC-Link通讯会是怎样一个过程?
我们可以通过抓取报文进行分析,如下图:
上图中,我们在系统正常运行时,将4号从站的电源切断。可以看到主站针对4号从站发出的Polling data没有应答,在连续请求4次后(因为在PLC硬件组态配置中,设置了重试次数为3),主站继续请求1号从站数据。
如下图:主站在监控4号从站未在线,达到1s左右的时间,不再继续针对4号从站进行Polling data,转而每隔一段时间在return cycle阶段,通过test polling的方式查询4号从站。
如下图所示,恢复4号从站的供电。4号从站经过如下的过程,重新进入到数据交换周期。
- 4号从站在接收到PLC主站的Test polling data时,进行应答。PLC会每隔一段时间在return cycle中,通过test polling data的方式查询掉线的从站。
- 主站在经过两个数据交换周期(refresh data cycle)后,开始和4号从站进行正常的数据交换报文。
03
CC-Link V2的数据交换
CC-Link协议目前分为V1.10和V2两个版本,下面我们重点分析V2版本下的数据交换。
按照我们之前的套路首先列出相关的报文和协议内容,如下图:
通过以上的V2协议的分析,我们可以看出V2的核心思路是通过分时的方式,在不增加从站占用内存站的情况下,增加从站的通信数据量。
我们PLC的配置和上一篇文章的一致,重点看1号站的配置为:占用1站,4倍设置。如下图所示:
通过对比,1号从站,2号从站,4号从站。我们可以看到2号从站的远程站点数(64)是4号从站(32)的1倍,1号从站的远程站点数和2号从站相同。但2号从站的占用站数是1号从站和4号从站的1倍。
此处要先介绍一下支持CC-Link V2的设备为北京骥远开发的基于Xone嵌入式板卡的测试设备,如下图所示:
Xone嵌入式板卡运行CC-Link V2协议,配置为占用1站,4倍扩展循环。
抓取的报文如下:
下图中,我们选择从站1作为过滤条件。
结合数据对报文进行分析如下图,按下demo板上的SW11按键,用户CPU采集到高电平信号后,通过Xone嵌入式板卡的接口(MODBUS/SPI)将该数据写入Xone,Xone进而通过CC-Link发送给PLC。
如上两图,通过抓取的报文可以看到在TSQ==0的报文中,上报了高电平信号(对应X100),在其他报文中实际上报的是其他区的数据(X110…)。在PLC的在线监控中可以看到X100最低位的值由0变成了1。
接下来我们再分析一下CC-Link V2输出的过程,即从PLC->Xone->Host CPU的过程。首先我们在线PLC,然后强制Y100.0的输出为1。
观察demo板上的输出指示灯(该灯由Host CPU控制),可以看到D1点亮。如下图:
进一步抓取报文分析,我们可以看出在TSQ=0的时候,Y100被输出。每隔4个周期,输出一次,正好对应4被扩展循环。
至此,数据交换部分的分析完毕。下一篇,我们将聊聊CC-Link协议开发的过程和所使用的工具。
“
北京骥远自动化
邮箱:cn-sales@jiyuansys.com
电话:010-85958895
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
阿蚊在线
回复楼主
返回列表
『数控/电机控制/运动控制/工业总线』
『机器视觉/AI/IoT/机器人论坛』
『高级语言/组态软件/触摸屏』
『操作系统xp/xin7/win10/linux』