WinAC Target 使用入门

n

1 WinAC Target 概述

1.1 什么是WinAC Target

在自动化与控制工程中,来自于MathWorks公司的Matlab/Simulink软件频繁的应用于图形化模型、过程仿真以及PID控制器。越来越多的需求是将Simulink模型应用到可编程控制器中。MathWorks提供了一个选项用来将Simulink 模型编译成C/C++嵌入式代码。这些代码进而集成到WinAC ODK项目中并且在S7程序中通过DLL/RTDLL进行调用和执行。n

WinAC Target是西门子提供的用于Matlab/Simulink的一个插件,用来从Simulink模型中创建DLL/RTDLL文件以及SCL源文件。n

集成Simulink 模型,过程如图1-1 所示。n

WinAC Target 使用入门

图1-1 集成Simulink的过程n

1) 在Matlab/Simulink中创建模型并测试n

2) 使用WinAC Target将Simulink模型编译成SCL源代码和一个DLL/RTDLL文件n

3) 将SCL源代码导入到S7程序中n

4) 将DLL/RTDLL拷贝到安装有WInAC RTX的IPC中n

5) 下载S7 程序到WinAC RTX中并运行n

1.2 优势及益处

WinAC Target具有如下优势:n

l Simulink模型集成到WinAC RTX非常简单n

l 采用Simulink的External mode 可以在运行时监视并修改集成模型的参数。n

l 在STEP 7的用户程序中可以操作内部模型参数。n

用户可以获得如下益处:n

l 简单易用,节省开发时间n

l 优化了集成Simulink模型到WinAC RTX流程n

l 使用Simulink以及External mode实现了高效的调试和诊断过程n

l 可通过STEP 7 程序在运行期间灵活的修改内部模型参数n

WinAC Target 使用入门

图 1-2 使用External moden

1) 图形化在线视图显示运行过程n

2) 使用Simulink修改内部模型参数n

1.3 WinAC Target 与 WinAC S2O(Simulink to ODK)

WinAC Target的当前版本为V1.1 ,支持数组数据类型,SCL 源代码中使用符号名以及STEP 7访问用户自定义模型参数。n

WinAC S2O 为WinAC Target的V1.0版本,为最初版本。目前建议使用WinAC Target V1.1版本,故WinAC S2O将不再提供下载。n

WinAC Target的下载链接如下:n

http://support.automation.siemens.com/CN/view/en/56969417

本文将以风机主控模型在WinAC RTX 中的集成为例,介绍WinAC Target的安装及使用方法。n

2 WinAC Target 的安装及在Matlab中的启用

2.1安装基本软件

需要在编程设备中安装下表中的软件。n

序号

操作

说明

1

安装
MATLAB V8.0 (R2012b)n

Simulink V8.0n

MATLAB Coder V2.3n

Simulink Coder V8.3n

Embedded Coder V6.3

2

安装
Microsoft Visual Studio 2008 or 2010 Professional

3

选项,安装
IntervalZero SDK V9.1.2

只有需要创建RTDLL时才需要安装

4

安装
STEPV5.5 与 S7-SCL V5.3n

或者安装
STEP7 V11 Professional with Service Pack 2 Update 4n

或n

STEP7 V12 Professional

手册:
http://support.automation.siemens.com/WW/view/en/10805384/133300

5

安装
WinAC ODK V4.2 SP1

手册:
http://support.automation.siemens.com/WW/view/en/12840073/133300

表 2‑1 编程设备中软件安装说明n

在运行系统(譬如: IPC427C)中安装如下的软件。n

表2‑2 运行系统中软件安装说明n

序号

操作

说明

1

安装
WinAC RTX 2010 Update 3

手册:
http://support.automation.siemens.com/WW/view/en/10805641/133300

更新:n

/cs/document/15227402?caller=view&lc=en-WW

2.2安装 WinAC Target

在编程设备中安装下表中的软件。n

表 2-3 WinAC Target 安装说明n

序号

操作

说明

1

安装n

WinAC Target (运行 setup.exe)n

需要:n

Windows XP Professional SP3

Windows 7 (32-bit)n

STEP 7 V5.5 与 S7-SCL V5.3

STEP 7 V11 Professional with Service Pack 2

STEP 7 V12 Professionaln

WinAC ODK V4.2 SP1

2.3集成 WinAC Target 到 Simulink

为了在Simulink中正常使用WinAC Target,首先需要将WinAC Target集成。执行一次下面的操作。n

表 2-4 WinAC Target集成到Simulink-安装说明n

序号

操作

说明

1

打开 “MATLAB”。n

2

在 “Current Folder”中,找到 WinAC Target installation folder。此文件夹包含 “startup.m”文件。右键点击并且选择运行此文件。WinAC Target将被集成到Simulink中。

说明

在初次使用WinAC Target时上述操作仅需操作一次即可。

3 风机模型概述

首先将风机全部或部分对象或功能建模并仿真,如图3-1所示。n

WinAC Target 使用入门

图3-1风机建模及仿真n

关于Matlab/Simulink的建模及仿真本文不展开介绍,具体操作可参考Mathworks公司的相关技术资料。n

本文所用风机模型下载链接如下:n

http://www.mathworks.cn/matlabcentral/fileexchange/25752-wind-turbine-model

西门子提供了基于WinAC及MicroBox 427C的软硬件平台,用于实现风能算法的集成,实现风机主控、变桨、偏航控制以及系统的状态监控。n

WinAC Target 使用入门

图3-2基于WinAC及MicroBox427C实现风能算法的集成n

4 WinAC Target的使用

4.1典型功能介绍

WinAC Target与早期版本WinAC S2O相比,增加了一些新功能。典型的功能有三个:n

· External mode,可以实现Matlab与运行系统之间的通信,实现在Matlab中进行控制系统的运行监控和通过Matlab修改参数。n

· Parameter access with STEP7,此功能将Matlab对应模型的所有参数以DB块的形式开放给STEP 7 用户程序。n

· Inline可以实现Matlab模型中用户自定义的变量以DB块的形式开放给STEP 7 用户程序。n

4.1.1 External mode

Simulink的External mode可以实现系统运行时监控模型并且可以在线修改模型的内部参数。n

为了保证Simulink与导出到运行系统的模型通过External mode能够正常通信,在编码前一定要激活External mode。这样,编译的代码中除了控制算法外还包括Simulink与运行系统模型通信的程序代码。两者基于TCP/IP进行通信。WinAC Target 使用入门

图4-1 Simulink与 WinAC RTX中的模型间的通信n

注意

如果需要与RTDLL文件进行通信,在运行系统中需要运行额外的服务。

启用 External mode,需要做如下设置:n

1. 打开风电模型:“Wind_Turbin_Mode”。n

2. 设置 “Simulation stop time” 为 “inf” ,并设置“Simulation Mode” 为 “External”。如图4-2 所示。n

WinAC Target 使用入门

图 4-2 External mode 设置n

3. 在菜单中,点击 “Code – C/C++ Code – Code Generation Options …”。n

4. 在弹出窗口中,“Code Generation” 参数设置为默认值。n

5. 设置如下参数:n

“Code Generation” 导航项n

– System target file: WinAC_Target.tlcn

“Interface” 导航项n

– Data exchangen

· Interface: External Moden

· Transport layer: tcpipn

· MEX-file arguments: ‘192.168.0.2’
(运行系统的IP地址 )n

WinAC Target 使用入门

图4-3 “Interface” 导航项设置n

4.1.2 Parameter access with STEP7

WinAC Target可通过STEP 7 程序在运行期间灵活的修改内部模型参数。n

只有当”Parameter access with STEP7” 在WinAC Target设置界面中勾选后 “Model_param” 与 “Write_model_param” 输入才会被额外创建。n

WinAC Target 使用入门

图4-4 创建的SCL 源文件对应的FBn

4.1.3 Inline

在Optimization-Signals and parameter 下勾选Inline parameters 并点击Configure按钮,可以选择模型中自定义的变量(需要预先设置,本文此部分内容不做介绍)开放给Step 7用户程序,实现模型参数的自定义访问。n

WinAC Target 使用入门

图4-5 自定义变量配置n

4.2 代码创建前的准备工作–参数设置

1. 打开风电模型:“Wind_Turbin_Mode”,选择主控模型。n

2. 在菜单中,点击 “Code – C/C++ Code – Code Generation Options …”n

WinAC Target 使用入门

图4-6 Code Generation Optionsn

3. 在弹出窗口中,设置如下参数,其他采用默认设置:n

“Code Generation” 导航项n

–System target file: WinAC_Target.tlcn

WinAC Target 使用入门

4-7 设定System target filen

4. 选择WinAC Target后如下的参数自动完成了设置:n

“Solver” 导航项n

–Type: Fixed-stepn

–Solver: discrete (no continuous states)n

–Fixed-step size: auton

“Interface” 导航项n

–Data exchangen

· Interface: External Moden

· Transport layer: tcpipn

· MEX-file arguments: ‘192.168.0.2’
(运行系统的IP地址)n

“Data Import/Export” 导航项n

–Save to workspace:
不勾选 Time, States, Output, Final states variablesn

WinAC Target 使用入门

4-8 “Data Import/Export” 导航项设置n

“WinAC Options” 导航项n

–在 “WinAC ODK project type”中,可以选择创建Windows DLL(DLL)或者实时的DLL (RTDLL)。默认设置是Windows DLL。n

–在“STEP 7 Version”中,可以选择稍后使用的自动化编程软件。默认设置是STEP 7 V5.5 。n

–在 “Data cycle time (Extended mode) [ms]”中, 可以按实际需求设定External mode 的循环周期。默认设置为“50”。n

–在 “STEP 7 Function Block name”中,可以设置功能块的名称。默认名称为Simulink 模型的名称。n

–在 “Parameter access with STEP 7”中,可以开启STEP 7用户程序对模型参数的访问。n

WinAC Target 使用入门

4-9 勾选“Parameter access with STEP 7”n

4.3代码创建

将Simulink 模型编译成C++代码并生成DLL/RTDLL和SCL文件,过程如下:n

1. 在 Simulink 模型菜单中,点击 “Code – C/C++ Code – BuildModel”.n

2. 在本例中,风电demo的主控算法被编译成C/C++代码,然后WinAC Target进一步将此源文件生成DLL和SCL源文件。n

3. The “…Turbine_WinAC_Target_Output” Simulink 模型路径下包含如下创建的代码:n

· “Binary” 文件夹: DLL/RTDLL 文件(本例中为DLL)n

· “SCL_Source” 文件夹: SCL 源文件n

WinAC Target 使用入门

4-10 WinAC Target的输出文件n

4.4 数据类型

由于STEP 7,WinAC ODK以及嵌入式代码使用不同的数据类型,所以在程序接口中不可避免的要进行类型转换。WinAC Target识别C/C++程序嵌入式代码的数据类型并在WinAC ODK的程序和STEP 7程序(SCL源文件)中调整。运行WinAC Target时进行了类型转换。下表显示了相关的数据类型。n

表4-1 数据类型概览n

C/C++
(嵌入式代码)

C/C++
(WinAC ODK)

Bytes

STEP7

boolean_T

bool

1 bit

BOOL

int8_T, unint8_T, char_T, uchar_T, byte_T

char

1

CHAR

int16_T, uint16_T

short

2

INT

int32_T, uint32_T, int_T, uint_T

long

4

DINT

ulong_T

long

4

DINT

real_T

float

4

à REAL (4 Byte)
注意:丢失数据

real32_T

float

4

REAL

“type”_T [“length”]

“type” [“length”]

取决于数组大小以及数据类型

Array [lo .. hi] of type

5 代码在Step7中的集成

5.1概述

采用WinAC Target,通过下图选择设置STEP 7 版本,可以创建适用于STEP 7 V5.x 或V1x(TIA Portal)的SCL 源代码。下面分别介绍代码在STEP 7不同版本软件中的集成。n

WinAC Target 使用入门

图5-1 STEP 7 版本设置n

5.2 在STEP7 V5.5中的集成

1. 新建Step7项目。n

WinAC Target 使用入门

图5-2 新建Step7项目n

2. 打开WinAC ODK Library。n

WinAC Target 使用入门

图5-3打开WinAC ODK Libraryn

3. 将SFB65001、SFB65002以及SFB65003拷贝到新建的Step7项目中。n

WinAC Target 使用入门

图5-4 拷贝ODK 系统功能块n

4. 点击此项目程序左侧导航栏文件夹。n

5. 导入WinAC Target创建的SCL源文件,本例中为Turbine_dll。n

WinAC Target 使用入门

图5-5 导入SCL 源文件n

6. 打开SCL源文件,并在菜单中点击Options – Customize…”。n

7. 勾选 “Create block numbers automatically” 并点击“OK”按钮确认。n

WinAC Target 使用入门

图5-6 Create block numbers automaticallyn

8. 点击“File – Compile”创建FB。n

9. 在OB100中添加刚生成的FB(MainCtrl),并分配背景数据块,分配输入参数,初始化DLL。n

WinAC Target 使用入门

图5-7 OB100中调用FB并初始化DLLn

10. 在OB35中再次插入此FB(MainCtrl),并分配背景数据块,分配输入及输出参数。n

WinAC Target 使用入门

图5-8 OB35中调用FBn

11. 下载程序到 WinAC RTX。n

12. 拷贝DLL或RTDLL到安装有WinAC RTX的PC机C盘根目录下(本例为Turbin.dll)如果为RTDLL则需要注册。n

13. 运行WinLC RTX 。n

说明

如果使用不同的DLL/RTDLL文件的存储路径,此路径也需要在SCL源文件中进行修改:n

Variable: “DLL_name”n

或者,可以在已经生成的FB中直接进行修改:n

“Interface – Static – DLL_name”

说明

如果在WinAC RTX中调用了RTDLL,拷贝RTDLL到运行系统后,要在IntervalZero运行系统中注册。n

在PC中,选择 “Start – Programs – IntervalZero – RTX2009 – Tools – RtssRun”。

5.3 在STEP7 V11/V12 (TIAPortal)中的集成

1. 打开 TIA Portal V11或V12(本文以V11为例),创建项目。n

2. 在 “PC-System_1 [IPC427C PN/IE]”下展开项目树。n

3. 在 “External source files” 下双击“Add new external file”。n

WinAC Target 使用入门

图5-9 导入外部文件n

4. 选择并导入 “SCL Sources (*.scl)”。n

WinAC Target 使用入门

图5-10 选择WinAC Target创建的SCL源文件n

5. 右键点击 “Turbine_dll.scl” SCL 源文件。在弹出窗口中,选择 “Generate Blocks”。FB块将被创建并存储在 “ProgramBlocks” 下。n

WinAC Target 使用入门

图5-11 创建块n

6. 打开 “COMPLETE RESTART [OB100]” 并以拖拽的方式将创建的FB插入到network 1。分配背景数据块,分配输入及输出参数。n

WinAC Target 使用入门

图5-12 OB100中调用FB并初始化DLLn

7. 打开 “CYC_INT5 [OB35]” 并以拖拽的方式将创建的FB插入到network 1。分配背景数据块,分配输入及输出参数。n

WinAC Target 使用入门

图5-13 OB35中调用FBn

8. 下载程序到 WinAC RTX。n

9. 拷贝DLL或RTDLL到安装有WinAC RTX的PC机C盘根目录下(本例为Turbin.dll)如果为RTDLL则需要注册。n

10. 运行WinLC RTX 。n

说明

如果使用不同的DLL/RTDLL文件的存储路径,此路径也需要在SCL源文件中进行修改:n

Variable: “DLL_name”n

或者,可以在已经生成的FB中直接进行修改:

“Interface – Static – DLL_name”

说明

如果在WinAC RTX中调用了RTDLL,拷贝RTDLL到运行系统后,要在IntervalZero运行系统中注册。

在PC中,选择 “Start – Programs – IntervalZero – RTX2009 – Tools – RtssRun”。

原创文章,作者:ximenziask,如若转载,请注明出处:https://www.zhaoplc.com/plc328572.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年11月5日
下一篇 2021年4月12日

相关推荐

发表回复

登录后才能评论