浙大中控DCS图形化演示课件_第1页
浙大中控DCS图形化演示课件_第2页
浙大中控DCS图形化演示课件_第3页
浙大中控DCS图形化演示课件_第4页
浙大中控DCS图形化演示课件_第5页
已阅读5页,还剩245页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 一、图形化软件概述 图形化组态的作用? 编写自定义控制方案,如精馏、联锁反应、燃烧等 四种编程语言 梯形图( LD ) 顺控图(SFC) 功能块图( FBD ) ST语言 方式 推荐方式:通过单击组态软件的算法,弹出自定义控制算法设置对话框, 点击图形编程中的“编辑”,启动图形化编程软件; 工程栏工程栏 信息栏信息栏 工具栏工具栏菜单菜单 栏栏 编辑区编辑区 编译成功提示编译出错提示状态栏状态栏 帮助 二、图形化编程基础二、图形化编程基础 主要内容:主要内容: 工程、段落、区段 编程基本步骤 程序运行原理及执行次序 工程管理 数据类型 变量 系统资源 培训什么? 工程、段落、区段 工程 SC

2、ontrol用一个工程(Project)描述一个控制 站的所有程序。 每个工程唯一对应一个控制站,工程必须指定 其对应的控制站地址。 段落 工程包含一个或多个段落(Section)。 SControl通过任务管理来管理多个段落文件, 在工程文件中保存配置信息 。 段落是通常意义上的一个文档,是组成工程 的基本单位。 新建段落时必须指定段落的编辑类型和程序 类型。 区段 区段指在同一段落中有数据信号相连的元素的总和。 一个段落可以包含一个或多个区段(SFC段落只有一个 区段)。 区段只是一个表示段落中元素间关系的概念,新建区 段不会生成任何新文件。 工程、段落和区段的关系 工程 段落 区段 组态

3、文件说明 软件(产生文件) 文件扩展名文件说明 SControl软件 .PRJ 工程文件 .FBD FBD文件 .LAD LAD文件 .SFC SFC文件 .BIN 二进制代码文件 .C 临时文件 .H 临时文件 .EXP .EXT 模块导出文件 文件保存路径 一个组态的相关文件 必须保存在正确的文件夹 下,否则在组态中进行联 编时会出错。 段落文件须保存在工程文 件夹下; 工程文件与工程文件夹须 保存在组态文件夹下的 “Control”文件夹下; 1.“Control”文件夹须保 存在组态文件夹下。 编程基本步骤 基本步骤 建立图形化组态工程工程并与系统组态软件建立关 联; 根据控制方案的特

4、点及需要选择合适的编辑器 在建好的工程中新建段落段落,在段落中编写程序编写程序, 编写的过程中进行保存; 程序编写完毕后,通过编译编译检查程序语法错误, 修改程序至程序编译无误; 将程序下载下载到主控卡,联机调试调试程序,使程序 运行时符合控制方案的要求; 程序运行原理及执行次序程序运行原理及执行次序 图形化自定义程序下载到控制站后,每隔 一个运行周期运行一次。 控制站执行程序时,先判断段落的执行次序 , 对于段落中的执行次序,先判断区段的执行次 序,然后再判断区段中各个编程元素的执行次序。 新建工程 工程与组态关联 段落新建及保存 按编辑类型可将段落分类为 qFBD段落 qLD段落 qSFC

5、段落 qST语言段落 按程序类型分可将段落分类为: q程序段落 q模块段落 程序类型和段类型 任务管理 SControl以系统组态软件中设置的控制周期为 1Ts,即:如果在系统组态软件的组态过程中设 置了控制周期为0.1s,则1Ts = 0.1s. 用户还可通过操作“移到队首”、“上移”、 “下移”、“移到队尾”等操作设置同一运行周 期各程序运行的优先级,即排在队列靠前的同一 运行周期程序比排在队列靠后的程序优先执行。 不同运行周期的程序之间的优先级无法比较。 可以对每个段落设置密码进行保护可以对每个段落设置密码进行保护 只有当编辑界面打开后,才可以进行设置密码和删除密码的操作只有当编辑界面打

6、开后,才可以进行设置密码和删除密码的操作。 练习 请大家花5分钟的时间: 1、熟悉软件界面 2、新建一个工程 3、使用不同的编辑器建立几个段落 4、改变段落的执行周期 5、调整段落的执行次序 数据类型 q图形化软件提供的变量数据类型 半浮点2字节 数据类型编辑器 qSControl内置数据类型编辑器,用户可以用数据类型 编辑器生成自己的数据类型,并可以在任何编辑变量 类型的地方使用。 q系统内已预定义了部分数据类型,这些数据类型只读, 用户无法修改删除。 问题? 模拟量输入信号数据类型? structAI 模拟量输入信号的PV成员数据类型? SFLOAT 开关量输入信号数据类型? struct

7、DI 开关量输入信号的VAL成员数据类型? BOOL 变量分类 变量按结构分为: 基本变量:基本数据类型(如BOOL、 SFLOAT、INT等)构成的变量称为基本变量。 1. 复合变量:复合数据类型(如结构体、数 组等)所对应的变量为复合变量。 变量分类 变量按作用范围分为: 组态中定义的变量; 全局变量(“工程”菜单下“变量编辑器” 中定义); 私有变量(“对象”菜单下“变量定义”中 定义); 输入变量与输出变量(“对象”菜单下“变 量定义”中定义); 变量声明 变量作用范围 SCControl中可以使用的变量有四类: 组态中定义的变量 作用范围:整个组态,包括图形化工程和SCX语言 程序、

8、操作组态 全局变量 作用范围:整个图形化工程,包括各个段落 私有变量 作用范围:只在该段落起作用 输入变量与输出变量 作用范围:只在自定义段落起作用 变量查找 q根据所查找目标数据源的分类(当前段、当 前工程)进行变量、位号以及模块的查询。 系统资源 位号 系统变量 单回路控制模块单回路控制模块 串级回路控制模块串级回路控制模块 冷热启动及下载组态标冷热启动及下载组态标 志志 模入量位号成员 开入量位号成员 名称类型说明 VALBOOL测量值 MANBOOL手自动切换 开关 OFF:自动 ;ON: 手动 MVALBOOL手动输入信 号值 FLAGBOOL质量码 系统变量 单回路控制模块 串级回

9、路控制模块 串级回路控制模块 冷热启动及下载组态标志 BOOL g_bHotStartup 热启动标志,热启动时为ON,需要编程清0; BOOL g_bColdStartup 冷启动标志,冷启动时为ON,需要编程清0; g_bDownUsrPrgFlag 下载用户程序标志,下载了用户程序之后为ON, 需要编程清0; g_bDownCfgFlag 下载组态标志,下载了组态(包括硬件组态、用 户程序组态)后为ON,需要编程清0。 提问 需要在流程图上显示累积量,在哪里定义? 功能块图(FBD)概述 功能块图的程序结构和执行次序 FBD的编程元素 模块库介绍 常用模块介绍 控制策略的FBD实现 FB

10、D编程注意事项 培训什么? 主要内容: FBD概述 FBD是一种图形化的编程语言 FBD用功能和功能块来构建控制策略 FBD直观、易于维护 IEC61131-3标准定义了FBD编程语言要素 功能块指包含内部状态的程序块 功能块分为基本功能块和自定义功能块 FFB都可用EN输入和ENO输出进行配置 FFB由带有输入和输出的图形框来描述 FBD概述 EN和ENO(使能) EN是功能块的缺省的第0号输入。 ENO是功能块缺省的第0号输出。 可以隐藏EN和ENO引脚。 如果当调用功能块时EN值等于ON时,则由FFB 定义的算法才被执行。 ENO = EN FBD段落:即一幅FBD图 FBD区段:有链路

11、相连的元素的组合 区段起始模块:那些输入只连接变量的模块 区段启动模块:位置最上的起始模块 一个FBD段落可以包含一个或多个FBD区段 FBD程序结构 FBD执行次序 区段的执行从启动模块开始。 区段内的执行次序由区段内的数据流决定。 段落中区段间的执行次序由区段的启动模块的 位置决定。执行次序由上到下。 执行次序 FBD编辑器-组态元素 选择 连接线 取反 最近选择的功能块 功能块选择 注释文本 调试文本 跳转按钮 FBD编辑器-IEC模块库 算术运算模块 比较运算模块 转换运算模块 计数器模块 逻辑模块 数学模块 选择模块 定时器模块 触发器模块 FBD编辑器-辅助模块库 控制模块 通讯辅

12、助模块 累积模块 输入处理 系统模块 文本代码模块 辅助计算 电量转换 信号选择模块 浮点处理模块 FBD编辑器-自定义模块库 自定义模块库收集了 当前工程所编辑的所 有模块。 FBD编辑器-附加库 附加库主要包括一些特殊模块、锅炉模块、造气模块、DEH模块、 智能通讯卡模块供用户使用 注:DEH模块、智能通讯卡模块只供ECS-100X系统使用。 下面我们介绍几个较常用的模块,其他模块的使 用可以参考相应的帮助文档。 算术运算-ADD 在使用这个模块的时候,要注意模块的输入、输出 变量的数据类型。 该模块可以有多个输入参数,我们可以用鼠标拖动 模块下方的黑点来增加或减少输入变量 。 可以通过点

13、击“显示EN/ENO”隐藏EN/ENO引脚。 可以通过点击“帮助”按钮来查看该模块的使用说 明。 例1:求温度TI101(量程0600)和 TI102(量程0600)的平均值,并将 运算结果存放至自定义变量TT中。 算数运算-DIV 算数运算-DIV 除法运算时应注意其运算结果应在半浮点 数据类型的表示范围内。 例:要求计算流量FI101(0500M3/h)和FI102 (0600M3/h)的比值。 首先,新建浮点型变量BIZHI。 其次,图形化编程如下: 算术运算-MOVE 算术运算-MOVE 这个模块相当于赋值的功能。例如,我们将位 号TI101的报警高限设定为0.9,则图形化编程如下:

14、比较运算-GT 比较运算-GE 例如,当压力PT101(010KPa)超过80%时要求打 开电磁阀KO101。 参考程序如下: 转换运算SFLOAT_TO_FLOAT 转换运算SFLOAT_TO_FLOAT 例:求温度TI101(0600)和TI102(0800) 的平均值,并将计算结果存放到自定义变量TT (0700)中。 逻辑运算-AND 逻辑运算-AND 例:要求当三个开关KI101、KI102和KI103都打开 时(为ON)启动电机KT101,否则关闭KT101。 数学函数-ABS 数学函数-ABS 例:要求当流量FT101(06000M3/h)超过或低于 某个设定值的30%时产生报警

15、(变量BJT=ON),该 设定值为半浮点变量FF(06000M3/h)。 选择模块-SEL 选择模块-SEL 例:当操作员将开关(一字节变量KT)打至OFF时, 选择测点一(位号TI101)作为控制回路的输入信 号;当操作员将开关(一字节变量KT)打至ON时, 选择测点二(位号TI102)作为控制回路的输入信 号。 选择模块-MAX 选择模块-MAX 例:某装置有3个温度测点,分别为TI101 (0600)、TI102(0600)、TI103 (0600),要求将最高的温度信号作为连锁程 序的判断条件。当温度超过其量程的90%时打开电 磁阀KO101。 TON定时器模块 定时器的基准为控制周

16、期,定时时间必须设置 为运行周期的整数倍。 例:某连锁控制程序,要求当温度TI105(01000) 超过600时打开电磁阀KO102。 TOFF定时器模块 TOFF定时器模块 注意,当延时时间到达之后输出 为OFF状态。 定时器的基准为控制周期,定 时时间必须设置为运行周期的整 数倍。 例:要求当电机KT101跳闸时(由ON变为OFF),延时5 秒种后点亮报警指示灯TT。 定时器-TP 定时器-TP 该模块用于产生持续时间一定的脉冲。 定时器的基准为控制周期,定时时间必须设置为运行周期 的整数倍。 例:请利用TP模块制作一个自复位按钮,要求当 按下按钮KT101后(即为ON)延时5秒种后将KT

17、101 复位(即为OFF)。 RS触发器模块 RS触发器模块 RS模块常用于连锁程序的 编制。 例:当水位LI101(0200mm)高于量程的60%时 打开放水阀门KO101,但要求操作员可以按下手 动开关(为ON时)强行将该阀门关闭(用自定 义变量MT表示该软手动开关)。 SR触发器模块 报警模块-AIALM 报警模块-AIALM 每个模拟量输入位号都有自己的质量码, 主要用于位号的报警分析,在图形化组态 中质量码为WORD类型。 例:当温度TE105超过高高限或低于低低限时将变 量THL置为ON。 累积函数-TOTAL_ACCUM 累积函数-TOTAL_ACCUM 例:有一流量信号FI10

18、1(0100M3/h),要求将 该流量累积。 首先,我们定义一8字节累积量FQ101,量程100, 单位M3,系数3600 其次,使用该模块实现流量的累积。如下图: 注:该模块每秒钟执行一次,因此要求程序的执行周期 不大于0.5秒。 使用该模块时必须保证流量信号的量程下限为0。 累积函数-SUB_ACCUM 累积函数-SUB_ACCUM 该模块可用于累积量的清零。 例:将累积量FQ101清零。 参考程序如下: 单回路模块-BSC 该模块的功能是产生一个单回路 PID控制。使用时与被控对象组 成回路,以MV作为被控对象的输 入,以被控对象的输出作为BSC 模块的输入PV;并正确的设置 模块的内部

19、参数,可使测量值PV 稳定地等于给定值。 单回路模块-BSCX 注:BSCX是BSC模块的扩展模块, 在BSC模块的基础上增加了该模块 的成员,便于用户使用。 例:某单回路控制,回路输入信号为温度TI101 (0600),回路输出为调节阀FV101。 首先,声明自定义单回路如下: 其次,进行图形化编程如下: 例:某连锁控制,当压力PT101(08KPa)超过5KPa 时将回路PTC101强制切为手动。回路PTC101的输 入信号为PT101,输出位号为PV101。 首先将工程值转化成半浮点数,5KPa对应的半 浮点值为0.625。 其次进行自定义回路的声明。 文本代码模块-TEXTCODE 我

20、们可以利用该模块在功能块图编辑器或梯形图 编辑器中使用ST语言编辑器编写文本代码,使程 序编制更为灵活。 ST语言的语法请参考ST编辑器。 双击该模块,将弹出如下对话框,点击“代码” 按钮将弹出文本编辑器进行程序编制。 控制策略的FBD实现 例1:某连锁控制,要求当温度TI101(0800) 超过400时,全开冷水调节阀TV101;当温度低 于200时关闭冷水阀TV101。 例2:要求当操作员打开开关K101(为ON)时,开 始对流量FT101(0600M3/h)进行累积;当操作 员关闭该开关(为OFF)时停止累积,并对累积量 清零。 我们设置自定义8字节累积量FQ101,图形化编 程如下:

21、例3:某温度控制单回路,回路输入信号为温度 TI101(01000),回路输出信号为调节阀 TV101。正常工况下回路处于自动控制状态;当温 度高于900时回路转到手动控制状态,由操作员 手动控制,同时发出报警信号(使自定义变量 MFT=ON)。 注意事项! 对于编程的时候经常出现的一些错误,你是 否知道是怎么引起的? 出现变量非法的提示? 是否在变量定义的时候使用了非法字符?例如, PI-101;图形化组态的时候不允许使用减号“-”, 但是可以采用下划线“_” 注意事项! 出现数据类型不匹配的提示? 输入输出引脚所连接的数据与功能块所要求的数 据类型不匹配? 例如 主要内容:主要内容: 概念

22、 触点 线圈 垂直连接线 编程注意事项 培训什么? 梯形图概述 梯形图在原电器控制系统中的接触器、继电器 梯形图基础上演变而来,与电气操作原理相呼 应,形象、直观和实用。 触点和线圈来构建逻辑控制方案 很容易将电气联锁图转换为梯形图程序 联锁程序习惯使用梯形图语言进行编辑 LD编辑器程序结构 LD段落的设计对应于继电器开关的梯级(rung)。 图形的左边是汇流条,相应于梯级的相线,只有直接或间 接与相线有开关量相连的元素在编程期间被“扫描”。 右汇流条缺省不画出,但可以认为所有的线圈和FFB开关 量输出都接到右汇流条上,从而建立电流回路。 四个概念 LD段落:即一幅LD图,一个LD段落由若干个

23、LD区段组成。 LD区段:有链路相连的元素的组合。 区段起始模块:区段内那些输入只连接变量或左汇流条的模块。 区段启动模块:区段中位置最上的起始模块。 LD执行次序 区段的执行从启动模块开始。 区段内的执行次序由区段内的数据流决定。 LD段落中区段间的执行次序由区段的启动模块在段落图形中 的位置决定。执行次序由上到下。 LD编辑器-组态元素 常开触点 常闭触点 正跳变触点 负跳变触点 线圈 取反线圈 置位线圈 复位线圈 正跳变线圈 负跳变线圈 垂直连接线 LD编辑器触点 认识认识SCCONTROLSCCONTROL的触点:的触点: 触点的特点:触点的特点: 每一个触点都有一个变量和它对应,触点

24、是在每一个触点都有一个变量和它对应,触点是在 变量的控制下断开或闭合。变量的控制下断开或闭合。 变量变量 触点触点 LD编辑器触点 触点分类: 常开触点 常闭触点 正跳变触点 负跳变触点 LD编辑器触点 不同类型的触点有什么区别?不同类型的触点有什么区别? LD编辑器触点 假设触点对应的变量为TEMP。 LD编辑器线圈 认识认识SCCONTROLSCCONTROL的线圈:的线圈: 线圈的特点:线圈的特点: 每一个线圈都有一个变量和它对应,线圈的得每一个线圈都有一个变量和它对应,线圈的得 电状态决定了变量的状态。电状态决定了变量的状态。 变量变量 线圈线圈 LD编辑器线圈 线圈的分类:线圈的分类

25、: 常开线圈 常闭线圈 置位线圈 复位线圈 正跳变线圈 负跳变线圈 LD编辑器线圈 不同类型的线圈有什么区别? LD编辑器线圈 假设线圈相关的变量为TEMP。 LD编辑器垂直连接线 垂直连接线可以同时连接多个输入和多个输出,相当于或 的功能,连接线的左边作为或的输入,右边作为或的输出。 垂直连接线上可以连接所有布尔量的数据链路,包括所有 触点、线圈及功能块的布尔量引脚。 编程示例3 例3:当开关DI101为ON,或者开关DI102为OFF 时电机DJ101为ON;DI101为OFF,且DI102为 ON,则DJ101为OFF。 编程示例3 例4:有三个开关按纽K1、K2、K3。当任何一 个按钮

26、按下时(即为ON),其他按钮均弹 出(即为OFF)? 编程示例4 编程示例4 编程示例5 例5:开灯程序,KOSTART为开灯信号。当 KOSTART为ON时要求灯(KO1001)开5秒关5 秒,交替闪烁。当KOSTART为OFF时灯 (KO1001)关。 编程示例5 注意事项! 所有的编程元素必须直接或间接的通过一个 布尔输入引脚连接到代表电流相线的左汇流 条。 如下图就是一个典型的错误: 注意事项! 变量引用或连线时应注意数据类型必须保持一致。 SFCSFC概述概述 SFCSFC的元素及其连接规则的元素及其连接规则 步步 转换转换 跳转跳转 择一分支择一分支/ /择一结合择一结合 并行分支

27、并行分支/ /并行结合并行结合 SFCSFC控制变量控制变量 SFCSFC的应用的应用 主要内容:主要内容: 培训什么? SFC概貌 SFC由步进式顺序控制器演变而来 SFC是顺序流程的图形化表示 SFC把流程分解为步和转换 SFC可以方便的实现批量过程控制 SFC诊断、排错方便,易于维护 IEC61131-3标准规定了SFC编程要素 SFC元素 七种基本元素 步类型 步(Step) 步是控制流程中相对独立的一组操作的组合 在步中可以定义随意数目的操作 步在紧接在前的转换条件满足时激活 步在激活时才执行相应的操作 步在紧接在后的转换条件满足时退出激活状态 A步的操作 X转换的条件 B步的操作

28、Y转换的条件 C步的操作 Z转换的条件 满足 不满足 满足 满足 不满足 不满足 控制框图: 如何将我们的任务交给 “步”去完成? SFC编辑器 操作!操作! 步属性对话框 “步属性”中可设置两个功能: 运行时间、操作。 运行时间 在运行时间的填充框中填入ULONG 类型 的位号(变量),可以将该步的激活时间 赋给该位号(变量),时间单位是毫秒。 操作(Action) 操作是对实际现场设备进行的操纵 一个步中可以有0个或多个操作 操作的类型由操作限定词来描述 操作限定词时态图 Step N S R L D P DS = 赋值操作限定词。表示在步的整个激活期 间赋值操作一直进行,直到步退出激活状

29、态 恢复成不激活状态。 如果是赋值操作限定词(=),则是应用ST语言 编写控制算法,操作变量就是自己编写的一段ST语 言程序,此时操纵的对象就是对应的ST语言程序。 执行到该操作时,就运行该ST语言程序。 转换(Transition) 转换指明控制从一个步转移到下一步的条件 当转换条件满足时,紧接在前的步从激活态变 成不激活态。然后紧接在后的步将从不激活态 转变成激活态 只有当紧接在前的步在激活状态时,转换的条 件才被测试 转换和步的连接图例 跳转(Jump) 跳转允许程序从不同的步继续执行 跳转连接图例 顺序跳转顺序跳转顺序回路顺序回路 根据跳转对象的不同,可以构成顺序跳转和顺 序环路,但不

30、能在不同的并行区域间跳转。 择一分支 择一分支提供了在SFC程序中实现条件控制的 控制流程选择执行的方法。 每一个分支都有执行的转换条件,择一分支被 激活时,会依次对各个分支的转换条件进行判 断,转换条件满足的分支被激活。 在择一分支结构内只能有一个分支被激活。分 支转换条件的优先级从左到右,比如如果左边 第一个和第二个分支的转换条件都被满足时, 左边第一个分支被激活,即只执行这个分支的 程序。 择一分支和择一接合必须一一对应。 分支必须结束于同一择一接合或者结束于跳转, 但至少有一个分支结束于择一接合。 择一分支图例 例:根据如下要求编写一段顺控程序: 有两个电机A、B,启动开关分别为KO1

31、01、KO102, ON时启动电机,OFF时关闭电机; 两电机一开一备,工作/备用指示开关为WKSDB, ON时表示电机A工作,B备用,OFF时表示电机B工 作,A备用; 有一电机启动按钮DJSTART,要求DJSTART置ON后, 延迟5秒再启动电机。 电机A、B开反馈分别为KO101K、KO102K,ON时表 示开到位,OFF表示未开到位。要求电机启动后, 需确认开反馈到位后方能进入后续的顺控程序。 并行分支 并行分支使流程中几个子流程同时进行 各分支的执行不相互影响 并行分支和并行接合必须一一对应 只有当所有的分支的最后一步都激活时,才测 试并行接合紧接的转换的条件是否满足 在并行结构内

32、部的跳转不能跳到并行结构的外 部。 并行分支图例 例:根据如下要求编写一段顺控程序: 有两个电机A、B,启动开关分别为KO101、 KO102,ON时启动电机,OFF时关闭电机; 要求两电机A、B同时启动,其开反馈分别为 KO101K、KO102K,ON时表示开到位,OFF表 示未开到位。要求电机启动后,必须确认开 反馈已到位。 有一电机启动按钮DJSTART,要求DJSTART置 ON后,延迟5秒再启动两电机。 SFC控制变量 复位变量 为ON时,SFC程序起始步被设置为激活步,其 它步都强制变为不激活状态,顺控程序从头开 始重新执行。为OFF时,复位变量无效。 注意:在起始步中,默认给复位

33、变量赋OFF, 在终止步中,默认给复位变量赋ON。 运行变量 为ON时,SFC程序正常执行。为OFF时,所有其 它控制变量都无效,SFC程序停止运行。 SFC控制变量 保持(禁止转换)变量 为ON时,当前激活步将一直保持执行而不管紧 接的转换条件是否满足,转换条件测试将不进 行。此变量受运行变量和复位变量的影响。 强制步进变量 为ON时,当前激活步不管转换条件是否满足, 都变为不激活状态,按顺序的下一步变为激活 状态。强制步进变量受以上所有变量的影响。 操作使能变量 为ON时,步中的操作才被执行。 控制变量只能选用在系统组态中定义的变量。 每个SFC段落必须要设置复位变量,程序初次下载 到控制

34、站时,必须对该复位变量赋ON,使程序从起 始步开始执行。 其他控制变量可根据实际需要,做有选择的设置。 练习时间 例:现场有三台电机正在使用,分别是电机1、电机 2和电机3,他们的开关状态分别用f1、f2、f3 表示,电机的启动和关闭要求用程序控制。将 启动按钮start置为on,电机1首先启动,间隔5 秒时间以后,电机2启动,再间隔5秒,电机3启 动;启动过程完成后,才可以进入关电机过程。 将启动按钮start置为off,电机3首先关闭,间 隔5秒时间以后,电机2关闭,再间隔5秒时间以 后,电机1关闭;关闭过程完成后,才可以重新 进入开电机过程。 STST语言概述语言概述 STST语言的语法

35、语言的语法 自定义函数和功能块自定义函数和功能块 STST语言中的模块调用语言中的模块调用 STST语言在非语言在非STST段落中的应用示例段落中的应用示例 培训什么? 主要内容:主要内容: ST语言 结构化文本语言 IEC61131-3标准语言 SCControl集成 使用方法 在工程中加入ST段落编制函数和模块 在梯形图和功能块图中插入文本代码 在顺控图步的操作中使用=操作限定词 在顺控图转换条件中使用ST逻辑表达式 数据类型 变量类型 关键字 字节长度 布尔类型 BOOL1 字 WORD2 双字 DWORD4 整数 INT2 无符号整数 UINT2 长整数 LONG4 无符号长整数ULO

36、NG4 半浮点 SFLOAT2 浮点FLOAT4 数组 结构 标识符 以英文字母开头 续以英文字母、数字或下划线 字符长度最多为24个字符 关键字(1) 关键字描述 CASEOFELSEEND_CASECASE 语句 BOOL WORD DWORD INT LONG UINT ULONG SFLOAT FLOAT 数据类型 EXIT终止循环 FALSE逻辑假 FORTOBYDOEND_FORFOR语句 FUNCTIONEND_FUNCTION函数定义 FUNCTION_BLOCK END_FUNCTION_BLOCK 功能块定义 IFTHENELSEIFELSEEND_I F IF语句 关键字

37、(2) ON逻辑真 OFF逻辑假 REPEATUNTILEND_REPEA T REPEAT 语句 RETURN函数返回 TRUE逻辑真 VAREND_VAR VAR_INPUTEND_VAR VAR_OUTPUTEND_VAR 变量定义 WHILEDOEND_WHILEWHILE语句 运算符(1) 运算符描述类型优先级 ()表达式运算 9 .取结构成员 8 取数组成员 8 单目负 7 NOT取反逻辑运算7 * (MUL)乘算术运算6 / (DIV)除算术运算6 MOD取余算术运算6 + (ADD)加算术运算5 (SUB)减算术运算5 运算符(2) 大于比较运算4 =大于等于比较运算4 =小于

38、等于比较运算4 小于比较运算4 =等于比较运算4 不等于比较运算4 AND与逻辑运算3 XOR异或逻辑运算2 OR或逻辑运算1 表达式 表达式为变量、操作符、常量、函数的组 合,求值结果为单个值 表达式的求值按运算符的优先级按顺序进 行,优先级高的运算符先被处理。相同优 先级的按从左到右的顺序执行 实例 A + B * (C-3) + FUNC1(2,D) 赋 值 比较等于 比较不等于 二次计算 = = = != 报表 = = SCX = = != ST = = := 赋值语句 赋值语句将“=”右边表达式的值赋给左边 的变量。 赋值时可使用“=”或“:=”作为运算符。 举例: A=4; (*将

39、变量A赋值为4*) B:=4; (*将变量B赋值为4*) IF语句 IF A 0 THEN B = 1; (* B:=1; 亦可*) ELSEIF A -5 THEN B = 2; ELSE B := 3; END_IF; 规定了一组语句在规定的逻辑表达式为TRUE时执行。 CASE语句 CASE语句规定了整数类型的选择项,以及选择项 在不同的值时的几组语句组。 CASE TW OF 1 : I = 1; (* 1:I:=1; 亦可*) 2 : I = 2; ELSE I = 3; END_CASE; FOR语句 FOR K = 1 TO 100 BY 2 DO DOSOMETHING();

40、(*循环体*) END_FOR; 循环语句,规定了终止条件和一组语句,当终止条 件没有成TRUE时,这组语句被循环执行。 WHILE语句 J = 1; WHILE J = 100 DO J = J + 2; END_WHILE; 循环语句,规定了终止条件和一组语句,当终止条 件没有成TRUE时,这组语句被循环执行。 REPEAT语句 J = 1; REPEAT J = J + 2; UNTIL J = 101 END_REPEAT; 终止条件的判断在语句组执行一次后才进行,所 以规定的语句组至少会执行一次。当终止条件成 TRUE时,循环被终止。 函数和功能块 ST语言中可以调用程序模块:函数、

41、功能块。 函数 是个程序模块,只有一个输出,根据输入可以 唯一确定输出。 如:SFLOAT ADD_SFLOAT(SFLOAT a,SFLOAT b); 功能块 是个程序模块,有多个输出,或输出不但和当 前输入有关还和上次内部状态有关 如:void BSC(SFLOAT PV,UINT N,OUT SFLOAT MV); 如何调用? 函数调用语句 ret = Func(in1,in2); (*作为表达式返回 值*) Func(in1,in2);(*作为子程序处理,函数 返回值为空类型*) 功能块的调用语句 调用功能块时要严格按照输入输出顺序, 先输入输入参数,再输入输出参数,参数 顺序按照定义

42、时的顺序。 输出参数必须是变量: FuncBlock(in1,in2,out1,out2) 对于函数和功能块,系统中有已经定义好 的标准库函数及标准功能块供我们使用, 我们也可以使用ST语言来自己编制函数和 功能块。 函数定义 FUNCTION(定义函数) FUNC3(函数名): BOOL (输出变量属性) VAR_INPUT IN1:BOOL; (定义输入变量和类型) END_VAR VAR TEMP1 : BOOL;(函数执行时用到的中间变量) END_VAR FUNC3 = DoSomething(); END_FUNCTION (结束函数定义) 函数的示例 例1:使用ST编制一个定时器

43、清零的函数。 形参为: CTROL1:BOOL; (*定时器清零开关:ON清零*) number1:INT; (*定时器序号*) CTROL2:BOOL; (*定时器清零开关:ON清零*) number2:INT; (*定时器序号*) 实现的功能是当开关CTROL1按下时第number1 号定时器清零;当CTROL2按下时第number2号定 时器清零。 功能块定义 FUNCTION_BLOCK(定义功能块) FB3(功能块名) VAR_INPUT IN1:BOOL; (定义输入变量和类型) END_VAR VAR_OUTPUT OUT1 : BOOL; (定义输出变量和类型) END_VAR

44、 VAR TEMP1 : BOOL; (定义中间变量和类型) END_VAR DoSomething(); END_FUNCTION_BLOCK (结束功能块定义) 功能块的示例 例2:某测点为冗余控制,要求当操作员将开关 K101打开时(为ON),选择测点1(LI1011)作 为单回路LIC101的输入信号;当操作员将开关 K101关闭时(为OFF),选择测点1和测点2 (LI1012)的平均值作为该回路的输入信号。 回路的输出为调节阀LV101。请使用ST语言编写 自定义功能块实现该功能,并完成该控制方案。 FUNCTION_BLOCK CHOICE VAR_INPUT IN1:SFLOA

45、T; IN2:SFLOAT; K:BOOL; END_VAR VAR_OUTPUT OUT:SFLOAT; END_VAR VAR END_VAR IF K=ON THEN OUT=IN1; ELSE OUT=AVE_SFLOAT(IN1,IN2); END_IF; END_FUNCTION_BLOCK 在FBD段落中调用该模块实现控制方案如下: (设置自定义回路0作为该液位控制回路) ST中可调用的函数和功能块 ST语言编写程序语句时可以调用各种模块, 如:标准函数、标准功能块、 ST FUNCTION、ST FUNCTION_BLOCK、 LD和FBD生成的自定义功能块。 标准函数库 算术

46、运算 比较运算 逻辑运算 类型转换 数学函数 选择函数 混合运算 通讯辅助 累积辅助 折线表运算 输入处理 比如: SFLOAT ADD_SFLOAT(SFLOAT a,SFLOAT b); UINT MOVE_UINT(UINT a); SFLOAT INT_TO_SFLOAT(INT a); SFLOAT MAX_SFLOAT(SFLOAT a,SFLOAT b); 标准 功能块库 对于ST语言可用的系统功能块,它们的使用方 法与模块库中的功能块的使用方法是一致的。 比如:void SR(BOOL S1,BOOL R,OUTBOOL Q1); void BSC(SFLOAT PV,UINT

47、 N,OUT SFLOAT MV); 在ST 的 FUNCTION 模块中: 可以调用其它 ST FUNCTION,允许嵌套 可以调用标准函数 模块调用限制 可以调用其它 ST FUNCTION 可以调用标准函数 可以调用标准功能块 可以调用其它 ST 功能块,不能嵌套 在ST 的 FUNCTION_BLOCK 模块中: 模块调用限制 可以调用其它 ST FUNCTION 可以调用标准函数 可以调用标准功能块 可以调用其它 ST 功能块 可以调用各种编程语言生成的功能块 模块调用限制 在TEXTCODE 模块中: 可以调用其它 ST FUNCTION 可以调用标准函数 可以调用标准功能块 可以

48、调用其它 ST 功能块 可以调用各种编程语言生成的功能块 模块调用限制 在SFC中的 = 操作中: TEXTCODE模块应用示例 例6.3:有自定义单回路FIC101(回路序号为0), 回路输入位号为FI101,回路输出位号为FV101。 当选择开关CH101为OFF时为正常单回路控制, 当选择开关CH101为ON时输出调节阀FV101为固 定阀位值,即当开关KI101为ON时将调节阀 FV101开至50%;当开关K101为OFF时将调节阀关 闭。请使用ST语言实现该控制要求。 BSC(FI101,0,FV101); IF CH101=ON THEN IF KI101=ON THEN g_bs

49、c0.SwTV=ON; g_bsc0.TV=0.5; g_bsc0.SwTV=ON; g_bsc0.TV=0.0; ELSE END_IF; END_IF; 七、自定义功能块的七、自定义功能块的 设计与使用设计与使用 主要内容:主要内容: 概述 自定义模块设计与使用 培训什么? 概述 在SCCONTROL中可以使用功能块编辑器或梯形图编 辑器来设计自定义功能块。 从编程角度看,自定义功能块相当于子程序。 自定义功能块内部包含了用户定义的程序逻辑, 外部则由输入输出变量组成其框架。 在自定义功能块内部可引用一个或多个功能块或 其他自定义功能块,但其本身不能循环嵌套。 作为自定义功能块的外部接口输

50、入输出变量数最 大可以定义各32个。 基本步骤 首先,新建段落,并选择段类型 为“模块”。 其次,定义该模块的输入输出变 量。另外如果需要,也可定义私 有变量或全局变量等。 再次,根据工艺要求编写该模块 的内部算法。可以选择适合的编 程元素按算法要求组合在一起, 从而实现我们的控制要求。 最后,对该段落保存、编译。如 果编译成功,则回到组态软件中 进行联编;如果出错,则应查找 错误、修改程序直至编译成功。 新程序段新程序段 FBD LDFBD LD 段名称段名称 变量声明变量声明 自定义模块设计与使用 例例1 1:要求制作一个名为“点灯模块”的自 定义功能块。当操作员按下按钮时以固定 的时间间

51、隔点亮5盏电灯。 自定义模块设计与使用 自定义模块设计与使用 八、程序调试八、程序调试 主要内容:主要内容: 概述 调试 培训什么? 概述 调试是对编写的程序进行检验的过程,以 确保编写的程序满足我们的控制要求。 调试分静态调试和动态调试。 静态调试 信息栏(出错) 信息栏(成功) 方法:编译程序 鼠标双击会怎样?鼠标双击会怎样? 动态调试 q组态保存,编译,下载 q连接、调试 q变量调试 动态调试 例1:实现对PI102的手工置值。 动态调试 例2:在以下梯形图程序中对开关量Y5手工置值。 打开变量调试窗口添加变量Y5、D5、D6、D7、D8、 D9、D10,并观察D5、D6、D7、D8、D

52、9、D10的状 态。 把Y5置为ON, 观察D5、D6、D7、D8、D9、D10的状态变化。 调试辅助工具 调试文本 如何实现在调试状态下从一个段落快速切 换到其它段落? 调试辅助工具 跳转按钮 九、综合编程应用九、综合编程应用 常见编程应用 累积问题 BSC模块实现串级控制 联锁设计(输入处理、滤波) 编程注意事项 注释文本 乘除运算 主要内容:主要内容: 培训什么? 累积量的处理累积量的处理 实现流量累积的两个办法: 1、模拟量组态流量累积(常规) 2、通过定义8字节变量,用模块 Total_Accum进行累积 。(程序实现) 方法一方法一 方法二方法二 系统工作时,对位号首先转换成不带量程不 带单位的无因次数 ,也就是说,流量信号首先被 转换成0-100%之间的数,由于位号的下限为0,所 以直接除以量程即可。 TOTAL_ACCUM实际上是对这样的一组百分数每 秒钟累加一次。 流量累积原理 累积的结果放在FQ101中,但是我们需要查看 的累积值是需要把每一个流量的瞬时信号还原成 实际测量值,所以系统进行处理时,要将累积计 算的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论