TE1400 Simulink 使用经验总结

用户界面起的是发起请求的作用,Twin CAT PLC起的是接受请求以及安排控制过程的作用,而Twin CAT NC PTP则直接控制了电机驱动器

模型在Simulink 编码器™的帮助下自动用C/C++编码代码进行编码,并将TwinCAT3目标转换为TwinCAT对象。然后,这些TwinCAT对象可以在TwinCAT运行时中实时执行。这些TwinCAT对象可以是用于直接实例化的TcCOM对象,并与PLC项目中用于实例化和处理的实时任务或函数块进行链接。

一个TcCOM模块是由在Simulink®中创建的机器模型生成的。这可以用于在连接实际机器(虚拟调试)之前实时测试PLC程序。

需要许可证TC1320(或带有PLC许可证的TC1220)才能使用由Simulink®生成的模块启动TwinCAT配置。如果没有激活的许可证,该模块和因此产生的TwinCAT系统将无法启动。在这种情况下,您将得到与违反许可证的行为相关的错误消息。可以生成一个为期7天的试用许可证,它可以在不购买许可证的情况下启用初始测试。

1. 从Simulink生成一个TcCOM模块

在生成C++代码后,生成可执行文件的生成过程将立即启动,并创建了一个TcCOM模块。

创建了一个TwinCAT模块类(TMC文件),并且可以直接在项目中进行实例化。一个TwinCAT模块实例(TMI)在下面被称为TcCOM对象或模块实例。

关于具有所有参数属性的FB的说明

如果在“参数”访问区域的“Tc接口”下,将“处理”图像设置为“内部数据区域”,则会为所有参数创建一个属性。然后,这些内容必须作为一个实体进行阅读和书写:

PROGRAM MAIN
VAR
// declare function block (details see below)
fbControl : FB_TctSmplTempCtrl(oid := 16#01010010);
// local PLC variable
ModelParameters : P_TctSmplTempCtrl_T;
END_VAR
// read all model parameters
ModelParameters := fbControl.ModelParameters_Online;
// change value
ModelParameters.Kp := 20;
// write all model parameters
fbControl.ModelParameters_Online := ModelParameters;

 在ST代码中简单PLC程序中特定于模块的功能块的应用,使用模块类“TempContr”的对象:

PROGRAM MAIN
VAR
    // declare function block with ID of referenced Object
    fbTempContr : FB_TempContr(oid:= 16#01010010 );
    // input process image variable
    nInputTemperature AT%I* : INT;
    // output process image variable
    bHeaterOn AT%Q* : BOOL;
END_VAR
IF (fbTempContr.State = TCOM_STATE.TCOM_STATE_OP) THEN
    // set input values
    fbTempContr.stInput.FeedbackTemp := nInputTemperature;
    // execute module code
    fbTempContr.Execute();
    // get output values
    bHeaterOn := fbTempContr.stOutput.HeaterOn;
END_IF

从Similink生成的TcCOM模块的“Class Factories”的名称通常与模块名称相匹配,尽管Class Factories的名称仅限于更少的字符。

PROGRAM MAIN
VAR
    // declare function block
    fbTempContr_Dyn : FB_TempContr(oid:= 0 );
    // input process image variable
    nInputTemperature AT%I* : INT;
    // output process image variable
    bHeaterOn AT%Q* : BOOL;
    // reset error code and reinitialize Object
    bReset: BOOL;
    // initialization helpers
    stInitData : ST_TempContr_InitData;
    bInitialized : BOOL;
END_VAR
IF (NOT bInitialized) THEN
    stInitData := fbTempContr_Dyn.InitData; // read default parameters
    // adapt required parameters:
    stInitData.ContextInfoArr_0_TaskOid := 16#02010020;    // oid of the plc task
    stInitData.ContextInfoArr_0_TaskCycleTimeNs := 10 * 1000000; // plc task cycle time in ns
    stInitData.ContextInfoArr_0_TaskPriority := 20; // plc task priority
    stInitData.CallBy := TctModuleCallByType.Module;
    stInitData.StepSize := TctStepSizeType.UseTaskCycleTime; 
// set init data, copied to module the next time it switches from INIT to PREOP:
fbTempContr_Dyn.InitData := stInitData;
    bInitialized := TRUE;
ELSIF (fbTempContr_Dyn.State<TCOM_STATE.TCOM_STATE_OP) THEN
    // try to change to OP mode
    fbTempContr_Dyn.State := TCOM_STATE.TCOM_STATE_OP;
ELSIF (NOT fbTempContr_Dyn.Error) THEN
    // set input values
    fbTempContr_Dyn.stInput.FeedbackTemp := nInputTemperature;
    // execute module code
    fbTempContr_Dyn.Execute();
    // get output values
    bHeaterOn := fbTempContr_Dyn.stOutput.HeaterOn;
END_IF
IF (bReset) THEN
    IF (fbTempContr_Dyn.Error) THEN
        fbTempContr_Dyn.ResetHresult();
    END_IF
    fbTempContr_Dyn.State := TCOM_STATE.TCOM_STATE_INIT;
END_IF
Using the ToFile block:
Simulink默认库中的ToFile块可用于记录MAT文件中的信号。在已创建的TcCOM中,这个块仍然可以在TwinCAT运行时使用。

对于实时访问文件系统,将创建一个额外的TcCOM“TcExtendedFilewriter”,并使用ToFile块链接到TcCOM,下面称为Simulink  TcCOM)。然后,扩展文件写入器从指定的TcCOM接收数据,并将其写入一个MAT文件(mat4)。

Configuration in the Simulink model

一个具有正弦源和余弦源的模型可以作为一个简单的例子。每个信号都要用一个ToFile block来记录。

要启用ToFile块的代码生成,其格式必须设置为Array: 

 要从生成的Simulink   TcCOM中写入,需要安装有TE1400的TcCOMTx扩展文件写入器。它接受来自模拟链接对象的数据,并将这些数据存储在文件系统中。该模块可以在TcCOM浏览器中找到,Beckhoff Automation -> Extended File Access -> TcExtendedFileWriter:

 最初,这两个tccom都是实例化的。这两个对象都可以链接到一个联合任务或一个单独的任务。为了在两个对象之间建立链接,模拟扩展文件写入器实例的对象ID被通信到模拟链接TcCOM。

然后,将对象ID插入到模拟链接TcCOM的“参数(初始化)”选项卡下,作为ExtendedFileAccessOID: 

可以将几个Simulink   tccom与一个TcExtendedFileWriter实例连接。请确保避免了文件名冲突。可以将多个文件实例并行使用。例如,每个带有ToFile块的模拟链接TcCOM都可以使用它自己的扩展文件编写器实例。 

如果输入设置为TRUE,当前用于写访问的文件将被关闭,所有进一步传入的数据将被丢弃。如果输入再次设置为false,则将打开一个用于记录传入数据的新文件。

已关闭的文件可以像往常一样在MATLAB中打开:

Signal access via TwinCAT 3 Scope

 也可以通过相应的图标直接从TwinCAT开发环境(XAE)中启动范围。在方框图浏览器的下拉窗口中,当模块实例在目标系统上运行时,每个可用信号都会显示

 右键(拖放)从下拉菜单(上图右栏)或方框图中的蓝色信号线(上图中的主窗口)拖动信号到Scope配置中。鼠标右键还可用于将整个块拖动到作用域配置中,以便记录此功能块的所有输入和输出。

s-函数可以集成到模拟墨水®模型中,然后可以构建以在TwinCAT运行时使用。

Simulink  ®生成实时能力的代码;所有的传递函数表示都被转换为状态空间表示。因此,状态空间表示矩阵(A、B、C、D)用于Simulink ®生成的代码,该代码又可以在TwinCAT3中显示和修改。

 在MATLAB中,将传递函数表示转换为状态空间表示可以通过函数[A,B,C,D]=tf2ss(NUM,DEN)进行。

信息:要启动x64目标系统上启动模块,系统必须切换到测试模式!

TctSmplCtrlSysPT2.mdl:简单的PT2模型。
TctSmplClosedLoopCtrl.mdl:通过参考控制器模型和被控制系统,实现了一个闭合控制回路的模型。
TctSmplTempCtrlParameters.mat :包含所有必要的模型参数。
TctSmplTempCtrlBusObjects.mat:包含所有所需的Simulink总线对象(结构定义)。

这些模块由封闭的模拟链接模型生成。它们可以在TwinCAT中集成一个模块,而无需首先生成该模块。例如,它们可以在MATLAB许可证还不可用的情况下使用。

信息:要启动x64目标系统上启动模块,系统必须切换到测试模式!

Info: To start the module on an x64 target system, the system must be switched to test mode!

——————————————————————————————————————

使用TE1400TwinCAT  SImulink®目标的全部功能需要两个许可证

。一方面,TE1400工程许可证从模拟墨水®创建TwinCAT对象,

另一方面,在TwinCAT运行时执行这些对象的运行时许可证。

Engineering license

从Simulink®®创建TcCOM和PLC功能块的工程系统需要使用Simulink®的TE1400目标许可证。

出于测试目的,该产品可以在演示模式下作为演示版本使用

Runtime license

可以为运行时许可证创建一个为期7天的试用许可证,这允许在不购买许可证的情况下进行初始测试。

Setting up driver signing
Create an OEM certificate level 2

从MATLAB®或Simulink®生成的TwinCAT对象是基于tmx驱动程序(TwinCAT模块可执行文件)的,而TwinCATC++对象也是如此。这些驱动程序必须与OEM证书级别2进行签名,以便在TwinCAT运行时可以将其加载到运行时PC上。

对于开发阶段的测试目的,一个未会签的证书就足够了。

The configuration steps in Simulink

1. 选择固定步骤求解器。为此,请转到模型的“配置参数”

2. 选择系统目标文件到“TwinCatGrt.tlc”。

3. 保存更改,Start code generation via the Simulink® Coder App.

在TwinCAT中插入TcCOM

1. 实例化一个新的TcCOM对象。

2. 选择所需的对象

3. 创建循环任务

4. 将已创建的任务分配给TcCOM实例。

5. 激活配置

Configure and link TcCOM instance
TcCOM实例的数据交换通过进程映像的映射进行。Simulink®输入和输出被自动映射为过程图像中的输入或输出,并可以链接到I/O或其他对象

在TcCOM实例的参数(Init)区域中,您可以选择配置与从Simulink®创建时指定的实例

Insert as PLC function block

只有在Simulink ®中设置了以下参数时,以下文件中使用的PLC库才可用:

1. 在TwinCAT中创建PLC:

2. 选择PLC库并查看内容:

3. 使用PLC中的库中的功能块:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值