[倍福] 教材(四)第8章 从TwinCAT 2 转换到 TwinCAT 3

[复制链接]
查看78882 | 回复0 | 2024-9-13 12:35:58 | 显示全部楼层 |阅读模式
最近,本公众号开通了的号内搜索功能,凡是公开发表过的文章,无论标题还是内容都可以按关键字搜索。搜索速度甚至快过搜索自己电脑上的文档。因此计划把4本教材中的内容按章节陆续发布出来,用户使用时打开手机微信,进入本公众号,进入主菜单“号内搜”,点击末尾的“阅读原文”即可。

考虑到发布过的内容无法更新,因此也无法纠错。所以按章发布的教材仅供搜索,如果不同时间发表了同样章节的内容,后发布的为新版本。最新最全的版本和配套文档还是要到以下地址下载:

ftp://baclizzy.com.cn:21/ 97 教材

以下内容摘选自

《TwinCAT 3 学习笔记》

Version1.08

8.  从TwinCAT 2 到TwinCAT 3


倍福公司正式发布的TwinCAT3培训教材,见配套文件当之“TwinCAT3培训教材”。本节内容为该教材相关章节的补充。

8.1.概述

TwinCAT 2的软件是20世纪90年代开发完成的,虽然软件的功能模块不断增加,但其程序框架是基于微软公司32位的Windows操作系统,以及单核CPU的硬件平台,这也是为什么在64位操作系统的开发PC上TwinCAT 2不能仿真运行的原因。随着IT技术的发展,计算机CPU的单核运算能力已经趋于稳定,其性能的提升主要通过多核并行来实现。而TwinCAT2的软件架构决定了它只能运行于一个CPU内核,无法完全发挥多核CPU的性能。

8.2.TC3的新功能

TC3的软件设计考虑了32位和64位操作系统,单核和多核CPU。换言之,TC3运行核既可以工作在32位操作系统,也可以工作在64位操作系统。Beckhoff既提供CE下的TC3运行核,也提供Win 7下的TC3运行核。但是目前CX10x0还没有TC3的Runtime,估计今后也不会推出。CX50x0、CX20x0的TC3运行核已经推出,所有Beckhoff工控机都可以选配TC3运行核。

TC3的软件容量比TC2扩大了至少一个数量级。TC2的62个任务优先级和255个NC轴已经可以满足绝大部分工厂自动化的用户需求。而TC3可以任意指定CPU核,软件设计上支持最多128个CPU。这使得TwinCAT 3有可能运用到工厂自动化之外的其它领域,比如测量、机器视觉、港口码头、石油化工等等。TC3下的NC,最多可以控制255个轴,几乎可以用于任何设备、项目的控制系统。

TwinCAT 3除了解决64位操作系统和多核CPU的问题之外,还增加了C++编程和Matlab建模功能,强化了面向对象编程的理念。

用户可以用C++编写自己的类(Class),再创建若干这种类(Class)的对象(Object)。这些对象(Object)有相同的属性、接口和动作,可以指定其执行周期。Matlab建立的模型是另一种类(Class),它们与C++类的区别在于,它们是在Matlab中创建然后导入到Tc3的,而C++的类可以在Tc3中从零开始创建。Tc3中导入Matlab中建好的类以后,就可以创建若干这种类的对象,其操作和C++的类相同。

8.2.1.   TC3的继承性

TC3中的PLC任务和NC任务可以看作“厂家预置”的标准类,考虑到用户的使用习惯,与TC2中的PLC和NC编程、配置方法都保持一定的兼容性。尤其是NC的调试界面,与TC2中的System Manager中的调试界面完全相同。

TC3延用了TC2中的IO硬件扫描、配置和变量映射的界面。

TC3延用了TC2中的ADS通讯方式。不同的对象之间的数据交换,如果不是直接映射双方的接口变量,就采用ADS通讯的方式。TC3与HMI程序,可以存在于同一个Project,但它们之间并不能共享全局变量。HMI要访问PLC数据,通过ADS通讯。

鉴于以上原因,如果用户只是用TC3来实现TC2的功能,只需要经过半天或者一天的简单培训就可以熟悉开发环境了。但是TC3的安装步骤比TC2要繁琐得多,需要依照“安装指南”按步操作。

8.2.2.   TC2与TC3的适用范围

对于绝大多数的工厂自动化用户,单核CPU和32位操作系统已经可以满足要求,因此可以继续使用TwinCAT 2。

用户升级到TwinCAT3通常有以下原因:

    需要用到C++编程,比如一些特殊算法,原先已经有C++代码。

    需要用到Matlab建模

    控制器是多核CPU,程序量大,单核不能满足要求。

    偏好TwinCAT3的开发环境

8.3.  TC2转换TC3的解决方案

8.3.1.   TC2项目的转换

在TwinCAT 2中准备

在TC2中,只要把tsm和pro、tpy等相关文件夹组合好,确认pro文件编译不出错,在tsm中引用的是正确的tpy文件。

因为TC3装载时,是选择tsm文件,必须正确的tpy才能定位到正确的Pro文件,而编译通过的 Pro文件才能找到完整正确的Lib文件。

在TwinCAT 3中装载

    仅转换PRO文件

在TwinCAT 3中新建一个空白的TwinCAT Project,然后在PLC右键菜单中选择“Add Exist Item”(添加现有项)。

选择Plc 2.x的两项,就可以转换Pro文件或者Lib文件。

b.转换PRO及TSM文件

在TwinCAT 3中新建一个空白的TwinCAT Project,在Project的右键菜单中选择“Load Project from TwinCAT 2.xx Version”

选择要转换的Tsm文件就可以了。

装载过程中,最重要的是Lib文件的替换,如果是Beckhoff提供的库,默认按以下规则替换:

如果程序全部使用Beckhoff的库文件,这样就算完成了。如果程序使用了自定义的或者是如果引用了第三方的lib文件,就需要先把TwinCAT2的lib转换成TwinCAT 3的库。最好是请原Lib的作者转换成Tc3版本后再引用。具体操作参考第4章中相应章节“引用第三方库文件”

转换结果

库文件替换成功后,TC3中就有全部的代码、配置和任务了。并且可以看到所有映射都自动转换成功。

检查IO配置是否一致,原来TC2的硬件平台通常不同于TC3的IO硬件平台,按TwinCAT 2中相同的方法,调整IO与实际一致。编译OK就可以激活运行了。

常见问题      

转换后如果编译通不过,通常要考虑以下问题:

1,极个别TC2功能库转换成TC3时会出现FB名字或者接口变量类型有变化的情况,此时只能根据自己的理解手动调整代码。尤其是梯形图编写的代码,转换时出错的概率比用ST写的代码要高。

2,变量址对齐方式改变。参考第3章的“Address相关:地址范围和对齐”

此处简单说,就是TC3的PLC中,%IBn、%IWn、%IDn的在内存里占用起始字节并不相同,对应规则如下:



对于TC2,按照上图中的“byte addressing”方式,而TC3则按照上图中的“IEC addressing”方式,这是从TC2升级到TC3的用户最大的不习惯之一。

8.3.2.   TC3 ADS通讯的转换

TC3的ADS通讯兼容了TC2的ADS通讯。确定一个ADS设备的要素仍然是NetID和Port,访问ADS设备仍然可以通过变量名和地址的方式,而地址仍然是由IndexGroup和Offset来确定。

不同之处在于,TC3增加了TcCOM和Workspace这两个概念,所以使用ADS访问TC3时需要注意:

端口(Port):TC3开辟了更多的ADS Device端口,原则上一个TcCom对象就是一个ADS设备,就可以占用一个端口。所以不仅仅PLC和NC有固定的端口,C语言编写的Module对象和Matlab/Simulink生成的对象也可以有自己的端口并提供ADS访问。注意,默认第1个PLC项目的ADS端口是851.

变量名:由于命名空间(Workspace)这个概念的引入,在TC3中要指向一个全局变量,不仅要明确它的变量名,还要明确它所在的命名空间,即全局变量文件名。例如:



要访问全局变量gbStart,在ADS客户端程序中应写为:GVL.gbStart

Index Group和Offset:用地址访问时,TC3PLC的I、Q、M区Index Group不变,但Offset有变化,并且字节对齐规则与TC2完全不同:



注意事项:TwinCAT 2与HMI的连接通常是ADS或者OPC。升级成TwinCAT 3以后,原来的ADS和OPC通讯还可以继续有效吗?需要注意些什么呢?以下测试就是为了验证TwinCAT2和TwinCAT 3在ADS通讯方面的兼容性。

测试表明,ADS标准统一,不分TC2和TC3,并由此推论


    一个ADS Client,可以同时访问TC2和TC3。

    应用:比如组态软件中的OPC Client和ADS触摸屏。前者已验证。


    局域网内的TC2和TC3可以互相通讯。

应用:运行TC3服务的开发PC上,可以同时运行TC2的开发环境,并对TC2控制器编程一调试。如果配合TC2的CE虚拟机,相当于一台笔记本,不管32位还是64位,都可以同时开发TC2和TC3项目。此应用已经验证可行。
8.3.3.   HMI的转换


    经ADS或者OPC访问PLC的组态软件或者触摸屏

除上一节ADS协议转换之外,还有一点如何找到Tpy文件。在PLC项目的文件夹下找到:



该文件在PLC程序编译时自动产生,与TMC文件同一路径。

如果是高级语言写的HMI,所在的PC上至少要安装TC3 ADS,以提供ADS路由。


    经Modbus TCP访问PLC的触摸屏

TC2和TC3下的Modbus TCP Server,PLC地址与Modbus地址的对应方式不同,主要体现在I区和Q区的偏移量不同的。如果原来与TC2通讯的Modbus TCP触摸屏,换了控制器,变量字典的Modbus地址就要重新核对。

PLC上安装Modbus TCP Server,TC3的默认地址对应表为:



这个表格摘自Tc3 Infosys,和TC2一样,也可以通过XML文件配置。

PLC上安装Modbus TCP Server,TC2的默认地址对应表为:



可见二者的Offset不同,使用时注意换算。

本帖子中包含更多资源

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

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

本版积分规则