1. 算法组态简介
       算法组态平台含有标准的C编译器,所有模型和算法代码均由C语言代码完成。C语言功能强大而且执行效率高,非常适合模型算法的叠代运算并具有很强的数据处理能力。算法组态软件运行后,新建工程后会在Project目录下生成对应工程目录,主要有以下文件夹。
      CMod:含有工程开发和编译形成的各类算法,以.m为后缀的文件是模块算法,以.f为后缀的文件是功能算法,以.a为后缀的文件是生成的算法库。
      Data:存放各类自定义或引入的数据文件及结构数组,如二维三维插值库,各类工质焓熵库,动态临时数组,输入输出数据等,这些数据供算法和平台调用。
      Emtacsk:存放图形组态平台生成的各类图形和底层位图,含有所有组态界面所需的图元设置数据和显示文件。
      His:平台历史数据的存取目录,对算法中定义的各类参数变量及报警信息进行实时存贮,供历史和实时曲线分析及大数据应用。
      Jop: 存放模型算法的边界数值工况、周期统计数据及调试文件等。
      Tex:包含算法和图形组态中所需的各类文本地址,如图形菜单文件、报告表格设置、字符串变量、拟合数据文件等。
      新建工程后,会在CMod目录中生成StaInit.m、FunHead.m、ModHead.m文件。这些文件主要对内部变量及工程初始特性进行算法说明,也做为常用模型文件。整体模型和各个算法在周期内都可设定各自的叠代计算次数。如整体模型循环次数设定为100次,某个模型算法设定循环计算100次,则该算法模型在固定周期250ms内叠代计算为10000次。
      模型文件的引入变量主要有三类参数,TBI参数:通常用于外界参数引入,中间变量和变量连接等;TBT参数: 通常用于算法的结构系数,特性值及类型值定义等;TBO参数: 通常用于算法的结果输出,连接输出及目标参数等。实际上TBI, TBT, TBO之间的参数类型并无区别,开发人员可以按照自己的习惯进行定义。算法文件是供模块文件引入和调用的函数和变量集,每个算法文件中的变量仅供文件内部定义的函数使用,算法文件编辑完成并通过语法检查后,可以入库变成模型底层算法库的一部分。
2. 主要菜单功能
      算法文件通过菜单【保存】或【另存】到CMod文件目录中,在工具栏上最多可以显示32个能够相互切换的文件装载。当文件发生变化后会在名字前显示*号,【全存】表示对所有带*的文件一并保存。【关闭】是将工具栏中对应的文件从切换栏中关闭显示。【删除】将该文件从系统中删除。【记录】打开软件平台所有的启动日志及操作信息内容。【描述】是对该文件设定描述说明,也可以在打开该文件的窗口中设定,为以后该文件的注解性说明。
      【编辑】菜单中主要有【撤消】,【恢复】,【刷新】,【剪切】,【复制】,【粘贴】,【删除】,【查找替换】,【转到行】等功能。使用【查找】,【语法检查】对代码进行编辑和编译功能时,代码的部分显示格式会发生变化,【刷新】是将代码的文本显示格式恢复到初始状态。
      【设定】中的【缩进管理】将编写的代码按{}的缩进风格重新整理,使代码变得美观和易读。【定义描述】将该代码区中所有的定义变量和定义函数名称列表显示出来,与查看头文件.h相同。【字体颜色】根据用户习惯自定义设定显示代码的字体颜色。【背景颜色】根据用户习惯自定义设定显示代码的背景颜色。【定义颜色】对代码显示中的关键字进行颜色定义,如float, double, int, short, if, else,char,void,continue……等。【变量颜色】对代码显示中的ID变量I[i],T[i],O[i]进行颜色定义。【注释颜色】对算法代码中如//……和/*……*/里的注释语句进行颜色定义。【设置保存】将以上重新定义的颜色进行保存,在下次启动本软件后有效,若想恢复到默认颜色,点击【恢复默认】。
3. 模型编译功能
      对于单独的算法文件和模型文件,对代码进行【语法检查】后,显示的错误信息通过鼠标双击显示跳转入到对应的文件代码处。对于含有全局变量和函数的模型文件,只能通过整体编译进行检查和运行库生成。
      模型文件编写完成,模型中相应的算法文件也都入库后,通过菜单【编译组态】进行整体模型的编译工作。开发人员可以编写许多.m模型文件,该工程下的所有模型文件在编译时会重新引入,排序和增减,最终生成该工程独立的算法运行库供平台软件调用。
4. 模型运行
      【编译生成】成功后,点击【运行组态】出现模型运行窗口。模型运行是检验和测试整体算法模型是否可靠和准确的有效工具,算法是否收敛,数值是否稳定,公式是否正确,运算时间是否能保证实时要求等。运行窗口中可以通过断点语句进行调试,可以将ID参数设定到曲线中进行趋势分析,或将某时刻的数据存入到工况文件中,供初始数据设置调用。主要功能如下:
      【算法占比】表示整体模型计算时间在CPU中占的时间比例,建议小于80%,否则可能拖慢计算机的速率并对实时性造成影响。【变量连接】表示模块运行后对已设定的变量进行连接。【保存启动】将当前模型的所有ID变量数值保存到启动文件中。【导入】模型文件【导出】,将当前显示的模型数据存入到该.m模型文件中或从该模型文件导出到运行边界数据里。点击【开始运行】,整体模型开始运行,所有数据处于连接实时叠代计算中。
      【工况保存】将当前数据保存到某工况文件中,【工况调用】将某工况文件的数据覆盖当前数据。【连接列表】显示模块之间设定的相关变量之间的连接关系。【报警列表】显示所有已设定ID变量报警的参数清单。【报警显示】对ID变量运行中产生的报警信息进行记录并显示。【故障列表】显示所有已设定故障演示的ID变量清单。【字串清单】显示算法中设定的字符串变量动态清单。【曲线显示】调用曲线窗口,对添加到曲线组中的ID变量进行实时和历史曲线显示,曲线窗口是分析算法中变量变化的最有效工具,平台可设定每组8点,共100个曲线组的设置调用。
      【数据回放】历史数据的保存和读取是软件平台重要的功能之一,模型运行后产生的历史数据放到His目录中。这些连续运行产生的大量数据中,包含模型采集的原始信号,计算结果、中间变量等,但其中有很多变量存入到历史数据意义不大,如设定的系数,中间变量等。建议只对原始采集变量和最终计算结果进行数据存贮。对已生成历史数据可以实时回放,点击回放窗口中的【Set】设定起始时间,点击【follow】表示与【开始运行】同步,点击【Stop】停止。
      【数据分析】对特定算法进行离散采集,形成二维或三维曲线供用户分析显示,如对函数y=f(x),z=f(x,y)的量程区间进行曲线绘制,对局部算法的收敛特性进行曲线绘制等。可以通过增大模型的【模型循次】来快速绘制所需曲线,点击【follow】表示与【开始运行】同步开始绘制。生成的曲线可供 【图形组态】的背景图使用。
      【超限首出】记录在模型整体运行中首次出现的ID变量除零和超限事件,是对模型可靠性和算法叠代稳定测试的重要检测工具。
      【变量分析】的主要目的是找出与ID相关的公式、算法及引用关系,找出变化的线索和来源,及时了解和修正模型运行中出现的数值计算问题。通过变量追踪,以及后面介绍的断点调试功能,将快速发现与此ID相关的模型中的算数问题。
      【代码调试】算法编写编译过程中会出现很多问题,有时编译虽能够通过,但在运行中却会出现各类异常算法问题,对语句进行断点分析成为调试中面对的主要难点。在问题语句或断点处可以添加debug(float......);即可完成数值调试功能。
5. 数据通讯
      数据通讯是将外部数据定时采集进模型变量中,模型可设定的采集周期从0.25s到5s之间,考虑到与实际硬件采集时间上的偏差,设定异步方式与外部数据连接。若模型设定的运行周期大于硬件采集周期,则可能发主丢失数据现象,两者的时间设为相同最好。在菜单【数据通讯】中设定。可以设定各组为不同的硬件通讯协议。【点表路径】是对应的点表名字文件路径,点表文件由硬件通讯方生成。【通讯方式】设定该组中硬件与组态平台之间的通讯方式,主要有内存映像,UDP/TCP,OPC等文件流方式。【定时设置】对组态软件的采集周期进行设定,目前模型最大采集运算为10KPS。对于高速采集数据来说,重新设定模块的[模型循次]会达到提高采集周期的要求,但硬件通讯的采集性能也要配套实现,才能实现双向高速异步通讯及模型同步计算的能力。【连接/断开】用于组态平台对采集数据源的连接或中断,通常应用于硬件未连接或中断条件下。【通讯变量编辑】用于添加和编辑平台中对应的ID变量清单,左侧为采集的点表清单,两者之间的序号和数量应完全相同和对应。
6. 基本算法功能块简介
      对于传统的各类控制和仿真组态软件,若想完成算法功能,只能以功能块脚本方式实现,主要有以下通用内容:如模拟量实数运算、整数运算、逻辑运算、类型转换、控制算法、操作器、时间过程函数等,由于本组态算法有独立的C程序编译器,可以进行任意难易级别的算法编写,拓展和开发能力强大。为了与传统的各类组态软件算法兼容和功能比对,编写了与其它工业组态功能块相近的开源算法库,供开发人员借鉴和二次开发。
7. 数值算法功能块简介
      算法平台应用C语言编写数值计算,在执行效率上远高于其它语言类程序算法,尤其对科学计算库GNU Scientific Library的支持性最佳, GSL功能强大,集成最基础数值计算的同时,函数库提供了大量的数值计算程序,如随机函数、特殊函数和拟合函数等,整个函数库大约有1000多个函数,几乎涵盖了科学计算的各个方面,本平台与该库无缝衔接并提供了应用案例。



主要目录功能
1.0 用户要求
1.1 新建工程
1.2 模型文件
1.3 算法文件
1.4 编辑定义
1.5 算法入库
1.6 模型编译
1.7 模型运行
1.8 变量类型
1.9 曲线显示
1.10 报警及故障设置
1.11 数据表格文件
1.12 变量连接
1.13 变量分析
1.14 数值分析
1.15 代码调试
1.16 超限首出
1.17 字符串变量
1.18 历史数据及回放
1.19 图形建模
1.20 数据通讯
1.21 基本算法功能
1) 初始化函数
2) 定时器
3) 日定时器
4) 计数器
5) 多点统计
6) 多点插值
7) 与或逻辑计算
8) 逻辑非计算
9) 多点与计算
10) 多点信号首出
11) 量程限值
12) 浮点转整数
13) 整数转浮点
14) 浮点转模拟量
15) 设定模拟量值
16) 模拟量指令操作
17) 浮点转开关量
18) 设定开关量值
19) 开关量指令操作
20) 获得浮点位值
21) 浮点写入位值
22) PID调节器
23) 速率限制器
24) 脉冲指令
25) 无扰切换
26) 联锁投入
27) 积分运算
28) 时间积分运算
29) 微分运算
30) 数字8阶滤波功能
31) 装载数据sta文件
32) 压力求饱和焓
33) 温度求饱和焓
34) 压力和温度求焓
35) 压力和焓求温度
36) 压力求饱和比容
37) 温度求饱和参数
38) 压力温度求比容
39) 压力比容求温度
40) 压力求饱和熵值
41) 温度求饱和熵值
42) 压力温度求熵值
43) 压力熵值求温度
44) 装载数据dlb文件
45) 二维插值计算
46) 烟气蒸汽换热
47) 风机性能算法
48) 燃烧室模型算法
1.22 GSL算法案例
1) 复数算法案例
2) 向量与矩阵案例