Ethercat + SSC + Twincat3 -- PDO+SDO
一、Ethercat简介
- Ethercat(以太网控制自动化技术)是一个开放架构,以以太网为基础的现场总线系统。是确定性的工业以太网。
- Ethercat的主站与从站通信方式,理解起来就是从主站那发出一个火车,这个火车上拉着可以确定目标从站地址的信息、数据以及Ethercat报文的其他部分。当经过一个从站的时候,从站管理器(ESC)就会将Ethercat报文中和自己这一站有关的数据提取出来,同时会讲从站需要发给主站的数据插入上去,然后这个火车就会继续开往下个从站,直到最后一个从站。当发现到达最后一个从站后,这个火车就会顺着原路返回到主站,将从站的数据带给主站。
- EtherCAT从站对数据帧的读取、解析、过程数据的提取与插入完全由硬件来实现,这使得数据帧的处理不受CPU的性能、软件的实现方式等影响,时间延迟极小、实时性很高。
- 看起来好像硬件把所有事情都做了,软件需要做什么呢?软件只需要把从站管理器从报文中提取出来的数据(RxPDO)进行处理,然后将TxPDO传给从站管理器。对于SDO也是一样,对下发的SDO数据进行处理,然后对上送的SDO数据进行读取、传递。
二、SSC工具
- 虽说硬件(ESC)帮我们干了大多数的事情,但对具体数据的处理还是得由软件来进行。比如当有数据更新时间发生时,ESC的同步管理器会以中断的方式告诉应用层,我们就需要在中断处理程序中对PDO数据以及SDO数据进行处理。这对于代码开发也是比较复杂的一块,还好倍福开发了一个SSC工具,根据你的设置以及导入的excel表来生成代码和XML文件,大大的缩短我们的开发时间。XML文件是主站和从站通信的关键,相当于是主站和从站会根据XML里面规定的通讯方式来进行通。可以利用主站程序如Twincat来讲xml文件烧录到从站中。
- 另外一个点就是excel表的书写。我在这里面遇到了很多坑。话不多说,直接上示例。
关于16位补齐: - RxPDO和TXPDO需要16位补齐,否则工具就会报错。
- RxPDO Mapping和TxPDO Mapping 不需要16位补齐,但是需要8位补齐,如果有bit位的元素,则需要8位补齐。
- SDO可以16位补齐,也可以不补齐,如果补齐的话,则在CoeRead和CoeWrite那一列不需要写,SSC工具会用生成的代码中的函数去读写。如果没有补齐的话,则需要在表中写上需要自己实现的函数名,生成的代码中会自动声明这两个函数,但是需要我们自己去找到该函数的定义,然后自己去实现它。
三、Twincat3
因为关于项目保密,我自己的电脑又没有安装Twincat,前面大多数操作网上都可以找得到,比如这位博主写的个人觉得比较易懂:https://blog.csdn.net/zhandouhu/article/details/104092545。
- 对于如果处于自由运行模式,那么PDO数据不用我们去管,Twincat会自己更新。
- 对于SDO数据的读写:点击BOX,然后点击Coe_online那一栏,主站就会去跟从站通讯,读到所有的TXPDO数据以及可读的SDO数据。然后列在表格中,是根据索引列出来的。然后找到你定义的SDO的索引,展开,双击就可以对其进行设置下发。
写的略急,如果有问题可以联系2016510785@qq.com或者加qq 2016510785来进行交流。
四、软件下载及代码委托生成
若有着急编写excel或生成xml文件的,可以到下列网址店铺中下单
https://tinyurl.com/yc5fk75d