版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2006年度产品和技术培训
图形化编程主讲人:孙志明2006年度产品和技术培训
图形化编程主讲人:孙志明一、图形化软件概述一、图形化软件概述图形化组态的作用?编写自定义控制方案,如精馏、联锁反应、燃烧等图形化组态的作用?编写自定义控制方案,如精馏、联锁反应、燃烧四种编程语言梯形图(LD)顺控图(SFC)功能块图(FBD)ST语言四种编程语言梯形图(LD)启动方式推荐方式:通过单击组态软件的算法,弹出自定义控制算法设置对话框,点击图形编程中的“编辑”,启动图形化编程软件;启动方式推荐方式:通过单击组态软件的算法,弹出自定义控制算法软件操作界面
工程栏信息栏工具栏菜单栏编辑区编译成功提示编译出错提示状态栏
软件操作界面
工程栏信息栏工具栏菜单栏编辑区编译成功提示编译帮助菜单项简介帮助菜单项简介二、图形化编程基础
二、图形化编程基础
主要内容:工程、段落、区段编程基本步骤程序运行原理及执行次序工程管理数据类型变量系统资源培训什么?主要内容:工程、段落、区段培训什么?
工程、段落、区段浙大中控DCS形化编程讲义课件工程SControl用一个工程(Project)描述一个控制站的所有程序。每个工程唯一对应一个控制站,工程必须指定其对应的控制站地址。工程SControl用一个工程(Project)描述一个控制段落工程包含一个或多个段落(Section)。SControl通过任务管理来管理多个段落文件,在工程文件中保存配置信息。段落是通常意义上的一个文档,是组成工程的基本单位。新建段落时必须指定段落的编辑类型和程序类型。段落工程包含一个或多个段落(Section)。区段区段指在同一段落中有数据信号相连的元素的总和。一个段落可以包含一个或多个区段(SFC段落只有一个区段)。区段只是一个表示段落中元素间关系的概念,新建区段不会生成任何新文件。区段区段指在同一段落中有数据信号相连的元素的总和。工程、段落和区段的关系工程段落区段工程、段落和区段的关系工程段落区段组态文件说明软件(产生文件)文件扩展名文件说明SControl软件
.PRJ工程文件.FBDFBD文件.LADLAD文件.SFCSFC文件.BIN二进制代码文件.C临时文件.H临时文件.EXP.EXT模块导出文件组态文件说明软件(产生文件)文件扩展名文件说明.PRJ文件保存路径
一个组态的相关文件必须保存在正确的文件夹下,否则在组态中进行联编时会出错。段落文件须保存在工程文件夹下;工程文件与工程文件夹须保存在组态文件夹下的“Control”文件夹下;“Control”文件夹须保存在组态文件夹下。文件保存路径
一个组态的相关文件编程基本步骤浙大中控DCS形化编程讲义课件基本步骤
建立图形化组态工程并与系统组态软件建立关联;根据控制方案的特点及需要选择合适的编辑器在建好的工程中新建段落,在段落中编写程序,编写的过程中进行保存;程序编写完毕后,通过编译检查程序语法错误,修改程序至程序编译无误;将程序下载到主控卡,联机调试程序,使程序运行时符合控制方案的要求;基本步骤
建立图形化组态工程并与系统组态软件建立关联;程序运行原理及执行次序
图形化自定义程序下载到控制站后,每隔一个运行周期运行一次。
控制站执行程序时,先判断段落的执行次序,对于段落中的执行次序,先判断区段的执行次序,然后再判断区段中各个编程元素的执行次序。
程序运行原理及执行次序
图形化自定义程序下载到控制站后,每隔新建工程新建工程工程与组态关联
工程与组态关联
段落新建及保存
段落新建及保存
按编辑类型可将段落分类为FBD段落LD段落SFC段落ST语言段落按程序类型分可将段落分类为:程序段落模块段落程序类型和段类型按编辑类型可将段落分类为程序类型和段类型任务管理SControl以系统组态软件中设置的控制周期为1Ts,即:如果在系统组态软件的组态过程中设置了控制周期为0.1s,则1Ts=0.1s.用户还可通过操作“移到队首”、“上移”、“下移”、“移到队尾”等操作设置同一运行周期各程序运行的优先级,即排在队列靠前的同一运行周期程序比排在队列靠后的程序优先执行。不同运行周期的程序之间的优先级无法比较。任务管理可以对每个段落设置密码进行保护
只有当编辑界面打开后,才可以进行设置密码和删除密码的操作。
可以对每个段落设置密码进行保护只有当编辑界面打开后,才可以练习请大家花5分钟的时间:1、熟悉软件界面2、新建一个工程3、使用不同的编辑器建立几个段落4、改变段落的执行周期5、调整段落的执行次序练习请大家花5分钟的时间:数据类型图形化软件提供的变量数据类型数据类型图形化软件提供的变量数据类型半浮点——2字节半浮点——2字节数据类型编辑器SControl内置数据类型编辑器,用户可以用数据类型编辑器生成自己的数据类型,并可以在任何编辑变量类型的地方使用。系统内已预定义了部分数据类型,这些数据类型只读,用户无法修改删除。数据类型编辑器SControl内置数据类型编辑器,用户可以用浙大中控DCS形化编程讲义课件问题?模拟量输入信号数据类型?
structAI模拟量输入信号的PV成员数据类型?
SFLOAT开关量输入信号数据类型?
structDI开关量输入信号的VAL成员数据类型?
BOOL问题?模拟量输入信号数据类型?变量分类变量按结构分为:基本变量:基本数据类型(如BOOL、SFLOAT、INT等)构成的变量称为基本变量。复合变量:复合数据类型(如结构体、数组等)所对应的变量为复合变量。变量分类变量按结构分为:变量分类变量按作用范围分为:组态中定义的变量;全局变量(“工程”菜单下“变量编辑器”中定义);私有变量(“对象”菜单下“变量定义”中定义);输入变量与输出变量(“对象”菜单下“变量定义”中定义);变量分类变量按作用范围分为:变量声明变量声明变量作用范围SCControl中可以使用的变量有四类:组态中定义的变量作用范围:整个组态,包括图形化工程和SCX语言程序、操作组态全局变量作用范围:整个图形化工程,包括各个段落私有变量作用范围:只在该段落起作用输入变量与输出变量作用范围:只在自定义段落起作用变量作用范围SCControl中可以使用的变量有四类:变量查找根据所查找目标数据源的分类(当前段、当前工程)进行变量、位号以及模块的查询。变量查找根据所查找目标数据源的分类(当前段、当前工程)进行变系统资源位号系统变量单回路控制模块串级回路控制模块冷热启动及下载组态标志系统资源位号模入量位号成员模入量位号成员开入量位号成员名称类型说明VALBOOL测量值MANBOOL手自动切换开关OFF:自动;ON:手动MVALBOOL手动输入信号值FLAGBOOL质量码开入量位号成员名称系统变量
系统变量
单回路控制模块单回路控制模块串级回路控制模块串级回路控制模块串级回路控制模块串级回路控制模块
冷热启动及下载组态标志
BOOLg_bHotStartup
热启动标志,热启动时为ON,需要编程清0;BOOLg_bColdStartup
冷启动标志,冷启动时为ON,需要编程清0;g_bDownUsrPrgFlag
下载用户程序标志,下载了用户程序之后为ON,需要编程清0;
g_bDownCfgFlag
下载组态标志,下载了组态(包括硬件组态、用户程序组态)后为ON,需要编程清0。冷热提问需要在流程图上显示累积量,在哪里定义?提问需要在流程图上显示累积量,在哪里定义?三、功能块图(FBD)语言
三、功能块图(FBD)语言
功能块图(FBD)概述功能块图的程序结构和执行次序FBD的编程元素模块库介绍常用模块介绍控制策略的FBD实现FBD编程注意事项培训什么?主要内容:功能块图(FBD)概述培训什么?主要内容:FBD概述FBD是一种图形化的编程语言FBD用功能和功能块来构建控制策略FBD直观、易于维护IEC61131-3标准定义了FBD编程语言要素FBD概述FBD是一种图形化的编程语言功能块指包含内部状态的程序块功能块分为基本功能块和自定义功能块FFB都可用EN输入和ENO输出进行配置FFB由带有输入和输出的图形框来描述FBD概述功能块指包含内部状态的程序块FBD概述EN和ENO(使能)EN是功能块的缺省的第0号输入。ENO是功能块缺省的第0号输出。可以隐藏EN和ENO引脚。如果当调用功能块时EN值等于ON时,则由FFB定义的算法才被执行。ENO=ENEN和ENO(使能)EN是功能块的缺省的第0号输入。FBD段落:即一幅FBD图FBD区段:有链路相连的元素的组合区段起始模块:那些输入只连接变量的模块区段启动模块:位置最上的起始模块一个FBD段落可以包含一个或多个FBD区段FBD程序结构FBD段落:即一幅FBD图FBD程序结构FBD执行次序区段的执行从启动模块开始。区段内的执行次序由区段内的数据流决定。段落中区段间的执行次序由区段的启动模块的位置决定。执行次序由上到下。FBD执行次序区段的执行从启动模块开始。执行次序
执行次序FBD编辑器-组态元素选择连接线取反最近选择的功能块功能块选择注释文本调试文本跳转按钮FBD编辑器-组态元素选择连接线取反最近选择的功能块功能块选FBD编辑器-IEC模块库算术运算模块比较运算模块转换运算模块计数器模块逻辑模块数学模块选择模块定时器模块触发器模块FBD编辑器-IEC模块库算术运算模块FBD编辑器-辅助模块库控制模块通讯辅助模块累积模块输入处理系统模块文本代码模块辅助计算电量转换信号选择模块浮点处理模块
FBD编辑器-辅助模块库控制模块FBD编辑器-自定义模块库自定义模块库收集了当前工程所编辑的所有模块。FBD编辑器-自定义模块库自定义模块库收集了当前工程所编辑的FBD编辑器-附加库附加库主要包括一些特殊模块、锅炉模块、造气模块、DEH模块、智能通讯卡模块供用户使用。
注:DEH模块、智能通讯卡模块只供ECS-100X系统使用。FBD编辑器-附加下面我们介绍几个较常用的模块,其他模块的使用可以参考相应的帮助文档。
下面我们介绍几个较常用的模块,其他模块的使用可以参考相应的帮算术运算-ADD算术运算-ADD在使用这个模块的时候,要注意模块的输入、输出变量的数据类型。该模块可以有多个输入参数,我们可以用鼠标拖动模块下方的黑点来增加或减少输入变量。可以通过点击“显示EN/ENO”隐藏EN/ENO引脚。可以通过点击“帮助”按钮来查看该模块的使用说明。在使用这个模块的时候,要注意模块的输入、输出变量的数据类型。例1:求温度TI101(量程0~600℃)和 TI102(量程0~600℃)的平均值,并将运算结果存放至自定义变量TT中。例1:求温度TI101(量程0~600℃)和 TI102(量算数运算--DIV算数运算--DIV算数运算--DIV除法运算时应注意其运算结果应在半浮点数据类型的表示范围内。例:要求计算流量FI101(0~500M3/h)和FI102(0~600M3/h)的比值。首先,新建浮点型变量BIZHI。其次,图形化编程如下:算数运算--DIV除法运算时应注意其运算结果应在半浮点数据算术运算-MOVE算术运算-MOVE
算术运算-MOVE
这个模块相当于赋值的功能。例如,我们将位号TI101的报警高限设定为0.9,则图形化编程如下:算术运算-MOVE这
比较运算--GT比较运算--GT比较运算--GE例如,当压力PT101(0~10KPa)超过80%时要求打开电磁阀KO101。参考程序如下:比较运算--GE例如,当压力PT101(0转换运算—SFLOAT_TO_FLOAT转换运算—SFLOAT_TO_FLOAT转换运算—SFLOAT_TO_FLOAT例:求温度TI101(0~600℃)和TI102(0~800℃)的平均值,并将计算结果存放到自定义变量TT(0~700℃)中。转换运算—SFLOAT_TO_FLOAT例:求温度TI101
逻辑运算--AND逻辑运算--AND
逻辑运算--AND例:要求当三个开关KI101、KI102和KI103都打开时(为ON)启动电机KT101,否则关闭KT101。逻辑运算--AND例:要求当三个开关KI1
数学函数--ABS数学函数--ABS
数学函数--ABS例:要求当流量FT101(0~6000M3/h)超过或低于某个设定值的30%时产生报警(变量BJT=ON),该设定值为半浮点变量FF(0~6000M3/h)。数学函数--ABS例:要求当流量FT101
选择模块--SEL选择模块--SEL
选择模块--SEL例:当操作员将开关(一字节变量KT)打至OFF时,选择测点一(位号TI101)作为控制回路的输入信号;当操作员将开关(一字节变量KT)打至ON时,选择测点二(位号TI102)作为控制回路的输入信号。选择模块--SEL例:当操作员将开关(一字节
选择模块--MAX选择模块--MAX选择模块--MAX例:某装置有3个温度测点,分别为TI101(0~600℃)、TI102(0~600℃)、TI103(0~600℃),要求将最高的温度信号作为连锁程序的判断条件。当温度超过其量程的90%时打开电磁阀KO101。选择模块--MAX例:某装置有3个温度测点,TON定时器模块TON定时器模块浙大中控DCS形化编程讲义课件TON定时器模块
定时器的基准为控制周期,定时时间必须设置为运行周期的整数倍。例:某连锁控制程序,要求当温度TI105(0~1000℃)超过600℃时打开电磁阀KO102。TON定时器模块定时器的基准为控制周期,定时时间必
TOFF定时器模块TOFF定时器模块浙大中控DCS形化编程讲义课件TOFF定时器模块
注意,当延时时间到达之后输出为OFF状态。定时器的基准为控制周期,定时时间必须设置为运行周期的整数倍。例:要求当电机KT101跳闸时(由ON变为OFF),延时5秒种后点亮报警指示灯TT。TOFF定时器模块注意,当延时时间到达之后输出为OFF状态
定时器--TP定时器--TP浙大中控DCS形化编程讲义课件
定时器--TP该模块用于产生持续时间一定的脉冲。定时器的基准为控制周期,定时时间必须设置为运行周期的整数倍。定时器--TP该模块用于产生持续时间一定的脉冲例:请利用TP模块制作一个自复位按钮,要求当按下按钮KT101后(即为ON)延时5秒种后将KT101复位(即为OFF)。例:请利用TP模块制作一个自复位按钮,要求当按下按钮KT10
RS触发器模块RS触发器模块RS触发器模块
RS模块常用于连锁程序的编制。
例:当水位LI101(0~200mm)高于量程的60%时打开放水阀门KO101,但要求操作员可以按下手动开关(为ON时)强行将该阀门关闭(用自定义变量MT表示该软手动开关)。RS触发器模块RS模块常用于连锁程序的编制。例:当水位LSR触发器模块
SR触发器模块
报警模块--AIALM报警模块--AIALM
报警模块--AIALM每个模拟量输入位号都有自己的质量码,主要用于位号的报警分析,在图形化组态中质量码为WORD类型。例:当温度TE105超过高高限或低于低低限时将变量THL置为ON。报警模块--AIALM每个模拟量输入位号都有自
累积函数--TOTAL_ACCUM累积函数--TOTAL_ACCUM
累积函数--TOTAL_ACCUM例:有一流量信号FI101(0~100M3/h),要求将该流量累积。首先,我们定义一8字节累积量FQ101,量程100,单位M3,系数3600累积函数--TOTAL_ACCUM例:有
其次,使用该模块实现流量的累积。如下图:注:该模块每秒钟执行一次,因此要求程序的执行周期不大于0.5秒。
使用该模块时必须保证流量信号的量程下限为0。其次,使用该模块实现流量的累积。如下图:注:该模块每秒钟
累积函数--SUB_ACCUM累积函数--SUB_ACCUM
累积函数--SUB_ACCUM该模块可用于累积量的清零。例:将累积量FQ101清零。参考程序如下:累积函数--SUB_ACCUM该模块可用单回路模块--BSC
该模块的功能是产生一个单回路PID控制。使用时与被控对象组成回路,以MV作为被控对象的输入,以被控对象的输出作为BSC模块的输入—PV;并正确的设置模块的内部参数,可使测量值PV稳定地等于给定值。单回路模块--BSC该模块的功能是产生一个单回路PID
单回路模块--BSCX注:BSCX是BSC模块的扩展模块,在BSC模块的基础上增加了该模块的成员,便于用户使用。单回路模块--BSCX注例:某单回路控制,回路输入信号为温度TI101(0~600℃),回路输出为调节阀FV101。首先,声明自定义单回路如下:例:某单回路控制,回路输入信号为温度TI101(0~600℃其次,进行图形化编程如下:其次,进行图形化编程如下:例:某连锁控制,当压力PT101(0~8KPa)超过5KPa时将回路PTC101强制切为手动。回路PTC101的输入信号为PT101,输出位号为PV101。首先将工程值转化成半浮点数,5KPa对应的半浮点值为0.625。其次进行自定义回路的声明。例:某连锁控制,当压力PT101(0~8KPa)超过5KPa浙大中控DCS形化编程讲义课件文本代码模块--TEXTCODE我们可以利用该模块在功能块图编辑器或梯形图编辑器中使用ST语言编辑器编写文本代码,使程序编制更为灵活。ST语言的语法请参考ST编辑器。双击该模块,将弹出如下对话框,点击“代码”按钮将弹出文本编辑器进行程序编制。文本代码模块--TEXTCODE我们可以利用该模块在功能块图浙大中控DCS形化编程讲义课件
控制策略的FBD实现
例1:某连锁控制,要求当温度TI101(0~800℃)超过400℃时,全开冷水调节阀TV101;当温度低于200℃时关闭冷水阀TV101。控制策略的FBD实现例1:某连锁控制,例2:要求当操作员打开开关K101(为ON)时,开始对流量FT101(0~600M3/h)进行累积;当操作员关闭该开关(为OFF)时停止累积,并对累积量清零。我们设置自定义8字节累积量FQ101,图形化编程如下:例2:要求当操作员打开开关K101(为ON)时,开始对流量F例3:某温度控制单回路,回路输入信号为温度TI101(0~1000℃),回路输出信号为调节阀TV101。正常工况下回路处于自动控制状态;当温度高于900℃时回路转到手动控制状态,由操作员手动控制,同时发出报警信号(使自定义变量MFT=ON)。例3:某温度控制单回路,回路输入信号为温度TI101(0~1浙大中控DCS形化编程讲义课件注意事项!
对于编程的时候经常出现的一些错误,你是否知道是怎么引起的?出现变量非法的提示?是否在变量定义的时候使用了非法字符?例如,PI-101;图形化组态的时候不允许使用减号“-”,但是可以采用下划线“_”注意事项!对于编程的时候经常出现的一些错误,你是注意事项!出现数据类型不匹配的提示?输入输出引脚所连接的数据与功能块所要求的数据类型不匹配?例如注意事项!出现数据类型不匹配的提示?四、梯形图(LD)语言四、梯形图(LD)语言主要内容:概念触点线圈垂直连接线编程注意事项培训什么?主要内容:概念培训什么?梯形图概述梯形图在原电器控制系统中的接触器、继电器梯形图基础上演变而来,与电气操作原理相呼应,形象、直观和实用。触点和线圈来构建逻辑控制方案很容易将电气联锁图转换为梯形图程序联锁程序习惯使用梯形图语言进行编辑
梯形图概述梯形图在原电器控制系统中的接触器、继电器梯形图基础LD编辑器程序结构LD段落的设计对应于继电器开关的梯级(rung)。图形的左边是汇流条,相应于梯级的相线,只有直接或间接与相线有开关量相连的元素在编程期间被“扫描”。右汇流条缺省不画出,但可以认为所有的线圈和FFB开关量输出都接到右汇流条上,从而建立电流回路。LD编辑器程序结构LD段落的设计对应于继电器开关的梯级(ru四个概念LD段落:即一幅LD图,一个LD段落由若干个LD区段组成。LD区段:有链路相连的元素的组合。区段起始模块:区段内那些输入只连接变量或左汇流条的模块。区段启动模块:区段中位置最上的起始模块。
四个概念LD段落:即一幅LD图,一个LD段落由若干个LD区段LD执行次序区段的执行从启动模块开始。区段内的执行次序由区段内的数据流决定。LD段落中区段间的执行次序由区段的启动模块在段落图形中的位置决定。执行次序由上到下。LD执行次序区段的执行从启动模块开始。LD编辑器-组态元素常开触点常闭触点正跳变触点负跳变触点线圈取反线圈置位线圈复位线圈正跳变线圈负跳变线圈垂直连接线LD编辑器-组态元素常开触点常闭触点正跳变触点负跳变触点线圈LD编辑器—触点认识SCCONTROL的触点:触点的特点:每一个触点都有一个变量和它对应,触点是在变量的控制下断开或闭合。
变量触点LD编辑器—触点认识SCCONTROL的触点:变量LD编辑器—触点触点分类:常开触点常闭触点正跳变触点负跳变触点LD编辑器—触点触点分类:LD编辑器—触点不同类型的触点有什么区别?LD编辑器—触点不同类型的触点有什么区别?LD编辑器—触点假设触点对应的变量为TEMP。
LD编辑器—触点假设触点对应的变量为TEMP。LD编辑器—线圈认识SCCONTROL的线圈:线圈的特点:每一个线圈都有一个变量和它对应,线圈的得电状态决定了变量的状态。变量线圈LD编辑器—线圈认识SCCONTROL的线圈:变量LD编辑器—线圈线圈的分类:常开线圈常闭线圈置位线圈复位线圈正跳变线圈负跳变线圈LD编辑器—线圈线圈的分类:LD编辑器—线圈不同类型的线圈有什么区别?LD编辑器—线圈不同类型的线圈有什么区别?LD编辑器—线圈假设线圈相关的变量为TEMP。LD编辑器—线圈假设线圈相关的变量为TEMP。浙大中控DCS形化编程讲义课件LD编辑器—垂直连接线垂直连接线可以同时连接多个输入和多个输出,相当于或的功能,连接线的左边作为或的输入,右边作为或的输出。垂直连接线上可以连接所有布尔量的数据链路,包括所有触点、线圈及功能块的布尔量引脚。LD编辑器—垂直连接线垂直连接线可以同时连接多个输入和多个输编程示例3例3:当开关DI101为ON,或者开关DI102为OFF时电机DJ101为ON;DI101为OFF,且DI102为ON,则DJ101为OFF。编程示例3例3:当开关DI101为ON,或者开关DI102为编程示例3编程示例3例4:有三个开关按纽K1、K2、K3。当任何一个按钮按下时(即为ON),其他按钮均弹出(即为OFF)?编程示例4例4:有三个开关按纽K1、K2、K3。当任何一个按钮按下时(编程示例4编程示例4编程示例5例5:开灯程序,KOSTART为开灯信号。当KOSTART为ON时要求灯(KO1001)开5秒关5秒,交替闪烁。当KOSTART为OFF时灯(KO1001)关。编程示例5例5:开灯程序,KOSTART为开灯信号。当KOS编程示例5编程示例5注意事项!所有的编程元素必须直接或间接的通过一个布尔输入引脚连接到代表电流相线的左汇流条。如下图就是一个典型的错误:注意事项!所有的编程元素必须直接或间接的通过一个布尔输入引脚注意事项!变量引用或连线时应注意数据类型必须保持一致。注意事项!变量引用或连线时应注意数据类型必须保持一致。五、顺控图(SFC)语言五、顺控图(SFC)语言SFC概述SFC的元素及其连接规则步转换跳转择一分支/择一结合并行分支/并行结合SFC控制变量SFC的应用主要内容:培训什么?SFC概述主要内容:培训什么?SFC概貌SFC由步进式顺序控制器演变而来SFC是顺序流程的图形化表示SFC把流程分解为步和转换SFC可以方便的实现批量过程控制SFC诊断、排错方便,易于维护IEC61131-3标准规定了SFC编程要素SFC概貌SFC由步进式顺序控制器演变而来SFC元素七种基本元素SFC元素七种基本元素步类型步类型有三种:起始步普通步终止步起始步和终止步必须有且只能各有一个SFC的执行从起始步开始到终止步结束步类型步类型有三种:步(Step)步是控制流程中相对独立的一组操作的组合在步中可以定义随意数目的操作步在紧接在前的转换条件满足时激活步在激活时才执行相应的操作步在紧接在后的转换条件满足时退出激活状态步(Step)步是控制流程中相对独立的一组操作的组合A步的操作X转换的条件B步的操作Y转换的条件C步的操作Z转换的条件满足不满足满足满足不满足不满足……控制框图:A步的操作X转换的条件B步的操作Y转换的条件C步的操作Z转换如何将我们的任务交给“步”去完成?SFC编辑器操作!如何将我们的任务交给“步”去完成?SFC编辑器操作!步属性对话框“步属性”中可设置两个功能:运行时间、操作。步属性对话框“步属性”中可运行时间 在运行时间的填充框中填入ULONG类型的位号(变量),可以将该步的激活时间赋给该位号(变量),时间单位是毫秒。运行时间 在运行时间的填充操作(Action)操作是对实际现场设备进行的操纵一个步中可以有0个或多个操作操作的类型由操作限定词来描述操作(Action)操作是对实际现场设备进行的操纵操作限定词时态图StepNSRLDPDS操作限定词时态图StepNSRLDPDS=赋值操作限定词。表示在步的整个激活期间赋值操作一直进行,直到步退出激活状态恢复成不激活状态。如果是赋值操作限定词(=),则是应用ST语言编写控制算法,操作变量就是自己编写的一段ST语言程序,此时操纵的对象就是对应的ST语言程序。执行到该操作时,就运行该ST语言程序。=赋值操作限定词。表示在步的整个激活期间赋值操作一直进行,转换(Transition)转换指明控制从一个步转移到下一步的条件当转换条件满足时,紧接在前的步从激活态变成不激活态。然后紧接在后的步将从不激活态转变成激活态只有当紧接在前的步在激活状态时,转换的条件才被测试转换(Transition)转换指明控制从一个步转移到下一步转换和步的连接图例转换和步的连接图例浙大中控DCS形化编程讲义课件跳转(Jump)跳转允许程序从不同的步继续执行跳转(Jump)跳转允许程序从不同的步继续执行跳转连接图例顺序跳转顺序回路根据跳转对象的不同,可以构成顺序跳转和顺序环路,但不能在不同的并行区域间跳转。跳转连接图例顺序跳转顺序回路根据跳转对象的不同,可以浙大中控DCS形化编程讲义课件择一分支择一分支提供了在SFC程序中实现条件控制的控制流程选择执行的方法。每一个分支都有执行的转换条件,择一分支被激活时,会依次对各个分支的转换条件进行判断,转换条件满足的分支被激活。在择一分支结构内只能有一个分支被激活。分支转换条件的优先级从左到右,比如如果左边第一个和第二个分支的转换条件都被满足时,左边第一个分支被激活,即只执行这个分支的程序。择一分支和择一接合必须一一对应。分支必须结束于同一择一接合或者结束于跳转,但至少有一个分支结束于择一接合。择一分支择一分支提供了在SFC程序中实现条件控制的控制流程选择一分支图例择一分支图例例:根据如下要求编写一段顺控程序:有两个电机A、B,启动开关分别为KO101、KO102,ON时启动电机,OFF时关闭电机;两电机一开一备,工作/备用指示开关为WKSDB,ON时表示电机A工作,B备用,OFF时表示电机B工作,A备用;有一电机启动按钮DJSTART,要求DJSTART置ON后,延迟5秒再启动电机。电机A、B开反馈分别为KO101K、KO102K,ON时表示开到位,OFF表示未开到位。要求电机启动后,需确认开反馈到位后方能进入后续的顺控程序。例:根据如下要求编写一段顺控程序:浙大中控DCS形化编程讲义课件并行分支并行分支使流程中几个子流程同时进行各分支的执行不相互影响并行分支和并行接合必须一一对应只有当所有的分支的最后一步都激活时,才测试并行接合紧接的转换的条件是否满足在并行结构内部的跳转不能跳到并行结构的外部。并行分支并行分支使流程中几个子流程同时进行并行分支图例并行分支图例例:根据如下要求编写一段顺控程序:有两个电机A、B,启动开关分别为KO101、KO102,ON时启动电机,OFF时关闭电机;要求两电机A、B同时启动,其开反馈分别为KO101K、KO102K,ON时表示开到位,OFF表示未开到位。要求电机启动后,必须确认开反馈已到位。有一电机启动按钮DJSTART,要求DJSTART置ON后,延迟5秒再启动两电机。例:根据如下要求编写一段顺控程序:浙大中控DCS形化编程讲义课件SFC控制变量复位变量为ON时,SFC程序起始步被设置为激活步,其它步都强制变为不激活状态,顺控程序从头开始重新执行。为OFF时,复位变量无效。
注意:在起始步中,默认给复位变量赋OFF,在终止步中,默认给复位变量赋ON。运行变量为ON时,SFC程序正常执行。为OFF时,所有其它控制变量都无效,SFC程序停止运行。SFC控制变量复位变量SFC控制变量保持(禁止转换)变量为ON时,当前激活步将一直保持执行而不管紧接的转换条件是否满足,转换条件测试将不进行。此变量受运行变量和复位变量的影响。强制步进变量为ON时,当前激活步不管转换条件是否满足,都变为不激活状态,按顺序的下一步变为激活状态。强制步进变量受以上所有变量的影响。操作使能变量为ON时,步中的操作才被执行。SFC控制变量保持(禁止转换)变量控制变量只能选用在系统组态中定义的变量。每个SFC段落必须要设置复位变量,程序初次下载到控制站时,必须对该复位变量赋ON,使程序从起始步开始执行。其他控制变量可根据实际需要,做有选择的设置。控制变量只能选用在系统组态中定义的变量。
练习时间例:现场有三台电机正在使用,分别是电机1、电机2和电机3,他们的开关状态分别用f1、f2、f3表示,电机的启动和关闭要求用程序控制。将启动按钮start置为on,电机1首先启动,间隔5秒时间以后,电机2启动,再间隔5秒,电机3启动;启动过程完成后,才可以进入关电机过程。将启动按钮start置为off,电机3首先关闭,间隔5秒时间以后,电机2关闭,再间隔5秒时间以后,电机1关闭;关闭过程完成后,才可以重新进入开电机过程。练习时间例:现场有三台电机六、ST语言六、ST语言ST语言概述ST语言的语法自定义函数和功能块ST语言中的模块调用ST语言在非ST段落中的应用示例培训什么?主要内容:培训什么?主要内容:ST语言结构化文本语言
IEC61131-3标准语言SCControl集成ST语言结构化文本语言使用方法在工程中加入ST段落编制函数和模块在梯形图和功能块图中插入文本代码在顺控图步的操作中使用=操作限定词在顺控图转换条件中使用ST逻辑表达式使用方法在工程中加入ST段落编制函数和模块数据类型变量类型关键字字节长度布尔类型BOOL1字WORD2双字DWORD4整数INT2无符号整数UINT2长整数LONG4无符号长整数ULONG4半浮点SFLOAT2浮点FLOAT4数组
结构数据类型变量类型关键字字节长度布尔类型BOOL1字标识符
以英文字母开头续以英文字母、数字或下划线字符长度最多为24个字符标识符以英文字母开头关键字(1)
关键字描述CASE…OF…ELSE…END_CASECASE语句BOOLWORDDWORDINTLONGUINTULONGSFLOATFLOAT数据类型EXIT终止循环FALSE逻辑假FOR…TO…BY…DO…END_FORFOR语句FUNCTION…END_FUNCTION函数定义FUNCTION_BLOCKEND_FUNCTION_BLOCK功能块定义IF…THEN…ELSEIF…ELSE…END_IFIF语句关键字(1)关键字描述CASE…OF…ELSE…END_C关键字(2)
ON逻辑真OFF逻辑假REPEAT…UNTIL…END_REPEATREPEAT语句RETURN函数返回TRUE逻辑真VAR…END_VARVAR_INPUT…END_VARVAR_OUTPUT…END_VAR变量定义WHILE…DO…END_WHILEWHILE语句关键字(2)ON逻辑真OFF逻辑假REPEAT…UNTIL运算符(1)
运算符描述类型优先级()表达式运算
9.取结构成员
8[]取数组成员
8-单目负
7NOT取反逻辑运算7*(MUL)乘算术运算6/(DIV)除算术运算6MOD取余算术运算6+(ADD)加算术运算5-(SUB)减算术运算5运算符(1)运算符描述类型优先级()表达式运算
9.取结构运算符(2)
>大于比较运算4>=大于等于比较运算4<=小于等于比较运算4<小于比较运算4=等于比较运算4<>不等于比较运算4AND与逻辑运算3XOR异或逻辑运算2OR或逻辑运算1运算符(2)>大于比较运算4>=大于等于比较运算4<=小于表达式
表达式为变量、操作符、常量、函数的组合,求值结果为单个值表达式的求值按运算符的优先级按顺序进行,优先级高的运算符先被处理。相同优先级的按从左到右的顺序执行
实例A+B*(C-3)+FUNC1(2,D)表达式表达式为变量、操作符、常量、函数的组合,求值结果为单运算符号归纳赋值比较等于比较不等于二次计算===!=报表==<>SCX===!=ST==〈〉:=运算符号归纳
八种常用语句浙大中控DCS形化编程讲义课件赋值语句赋值语句将“=”右边表达式的值赋给左边的变量。赋值时可使用“=”或“:=”作为运算符。举例:A=4;(*将变量A赋值为4*)B:=4;(*将变量B赋值为4*)赋值语句赋值语句将“=”右边IF语句
IFA>0THENB=1;(*B:=1;亦可*)ELSEIFA<-5THENB=2;ELSEB:=3;END_IF;规定了一组语句在规定的逻辑表达式为TRUE时执行。
IF语句IFA>0THEN规定了一组语句在规定的CASE语句
CASE语句规定了整数类型的选择项,以及选择项在不同的值时的几组语句组。
CASETWOF1:I=1;(*1:I:=1;亦可*)2:I=2;ELSEI=3;END_CASE;CASE语句CASE语句规定了整数类型的选择项,FOR语句
FORK=1TO100BY2DO DOSOMETHING();(*循环体*)END_FOR;循环语句,规定了终止条件和一组语句,当终止条件没有成TRUE时,这组语句被循环执行。FOR语句FORK=1TO100BY2DOWHILE语句
J=1;WHILEJ<=100DOJ=J+2;END_WHILE;循环语句,规定了终止条件和一组语句,当终止条件没有成TRUE时,这组语句被循环执行。WHILE语句J=1;循环语句,规定了终止条件和一组语REPEAT语句
J=1;REPEATJ=J+2;UNTILJ=101END_REPEAT;终止条件的判断在语句组执行一次后才进行,所以规定的语句组至少会执行一次。当终止条件成TRUE时,循环被终止。REPEAT语句J=1;终止条件的判断在语句组执行一次函数和功能块
ST语言中可以调用程序模块:函数、功能块。函数
是个程序模块,只有一个输出,根据输入可以唯一确定输出。如:SFLOATADD_SFLOAT(SFLOATa,SFLOATb);
功能块
是个程序模块,有多个输出,或输出不但和当前输入有关还和上次内部状态有关如:voidBSC(SFLOATPV,UINTN,[OUT]SFLOATMV);如何调用??函数和功能块ST语言中可以调用程序模块:函数、功能块。函数调用语句
ret=Func(in1,in2);
(*作为表达式返回值*)Func(in1,in2);(*作为子程序处理,函数返回值为空类型*)函数调用语句ret=Func(in1,in2);
(功能块的调用语句
调用功能块时要严格按照输入输出顺序,先输入输入参数,再输入输出参数,参数顺序按照定义时的顺序。输出参数必须是变量:
FuncBlock(in1,in2,out1,out2)功能块的调用语句调用对于函数和功能块,系统中有已经定义好的标准库函数及标准功能块供我们使用,我们也可以使用ST语言来自己编制函数和功能块。对于函数和功能块,系统中有已经定义好的标准库函数及标准功函数定义
FUNCTION(定义函数)FUNC3(函数名):BOOL(输出变量属性)VAR_INPUT
IN1:BOOL;(定义输入变量和类型)END_VARVAR
TEMP1:BOOL;(函数执行时用到的中间变量)END_VAR
FUNC3=DoSomething();END_FUNCTION(结束函数定义)函数定义FUNCTION(定义函数)FUNC3(函数名)函数的示例例1:使用ST编制一个定时器清零的函数。形参为:CTROL1:BOOL;(*定时器清零开关:ON清零*)number1:INT;(*定时器序号*)CTROL2:BOOL;(*定时器清零开关:ON清零*)number2:INT;(*定时器序号*)实现的功能是当开关CTROL1按下时第number1号定时器清零;当CTROL2按下时第number2号定时器清零。函数的示例例1:使用ST编制一个定时器清零的函数。功能块定义
FUNCTION_BLOCK(定义功能块)FB3(功能块名)VAR_INPUT
IN1:BOOL;(定义输入变量和类型)END_VARVAR_OUTPUT
OUT1:BOOL;(定义输出变量和类型)END_VARVAR
TEMP1:BOOL;(定义中间变量和类型)END_VAR
DoSomething();END_FUNCTION_BLOCK(结束功能块定义)功能块定义FUNCTION_BLOCK(定义功能块)FB功能块的示例
例2:某测点为冗余控制,要求当操作员将开关K101打开时(为ON),选择测点1(LI1011)作为单回路LIC101的输入信号;当操作员将开关K101关闭时(为OFF),选择测点1和测点2(LI1012)的平均值作为该回路的输入信号。回路的输出为调节阀LV101。请使用ST语言编写自定义功能块实现该功能,并完成该控制方案。功能块的示例例2:某测点为冗余控制,要求当操作员将开关K1FUNCTION_BLOCKCHOICEVAR_INPUT IN1:SFLOAT; IN2:SFLOAT; K:BOOL;END_VARVAR_OUTPUTOUT:SFLOAT;END_VARVAREND_VARIFK=ONTHENOUT=IN1;ELSEOUT=AVE_SFLOAT(IN1,IN2);END_IF;END_FUNCTION_BLOCKFUNCTION_BLOCKCHOICE在FBD段落中调用该模块实现控制方案如下:(设置自定义回路0作为该液位控制回路)在FBD段落中调用该模块实现控制方案如下:(设置自定义回ST中可调用的函数和功能块
ST语言编写程序语句时可以调用各种模块,如:标准函数、标准功能块、STFUNCTION、STFUNCTION_BLOCK、LD和FBD生成的自定义功能块。ST中可调用的函数和功能块ST语言编写程序语句时可以调用各标准函数库
算术运算比较运算逻辑运算类型转换数学函数选择函数混合运算通讯辅助累积辅助折线表运算输入处理标准函数库算术运算通讯辅助比如:
SFLOATADD_SFLOAT(SFLOATa,SFLOATb);UINTMOVE_UINT(UINTa);SFLOATINT_TO_SFLOAT(INTa);SFLOATMAX_SFLOAT(SFLOATa,SFLOATb);比如:标准功能块库对于ST语言可用的系统功能块,它们的使用方法与模块库中的功能块的使用方法是一致的。比如:voidSR(BOOLS1,BOOLR,[OUT]BOOLQ1);voidBSC(SFLOATPV,UINTN,[OUT]SFLOATMV);标准功能块库对于ST语言可在ST的FUNCTION模块中:可以调用其它STFUNCTION,允许嵌套可以调用标准函数模块调用限制在ST的FUNCTION模块中:可以调用其它STF可以调用其它STFUNCTION可以调用标准函数可以调用标准功能块可以调用其它ST功能块,不能嵌套在ST的FUNCTION_BLOCK模块中:模块调用限制可以调用其它STFUNCTION在ST的FUNCTI可以调用其它STFUNCTION可以调用标准函数可以调用标准功能块可以调用其它ST功能块可以调用各种编程语言生成的功能块模块调用限制在TEXTCODE模块中:可以调用其它STFUNCTION模块调用限制在TEXTC可以调用其它STFUNCTION可以调用标准函数可以调用标准功能块可以调用其它ST功能块可以调用各种编程语言生成的功能块模块调用限制在SFC中的=操作中:可以调用其它STFUNCTION模块调用限制在SFC中的TEXTCODE模块应用示例
例6.3:有自定义单回路FIC101(回路序号为0),回路输入位号为FI101,回路输出位号为FV101。当选择开关CH101为OFF时为正常单回路控制,当选择开关CH101为ON时输出调节阀FV101为固定阀位值,即当开关KI101为ON时将调节阀FV101开至50%;当开关K101为OFF时将调节阀关闭。请使用ST语言实现该控制要求。TEXTCODE模块应用示例
例6.3:有自定义单回路FICBSC(FI101,0,FV101);IFCH101=ONTHENIFKI101=ONTHEN g_bsc[0].SwTV=ON;g_bsc[0].TV=0.5;g_bsc[0].SwTV=ON;g_bsc[0].TV=0.0;ELSEEND_IF;END_IF;BSC(FI101,0,FV101);ELSEEND_IF;七、自定义功能块的
设计与使用七、自定义功能块的
设计与使用主要内容:概述自定义模块设计与使用培训什么?主要内容:概述培训什么?概述在SCCONTROL中可以使用功能块编辑器或梯形图编辑器来设计自定义功能块。从编程角度看,自定义功能块相当于子程序。自定义功能块内部包含了用户定义的程序逻辑,外部则由输入输出变量组成其框架。在自定义功能块内部可引用一个或多个功能块或其他自定义功能块,但其本身不能循环嵌套。作为自定义功能块的外部接口输入输出变量数最大可以定义各32个。概述在SCCONTROL中可以使用功能块编辑器或梯形图编辑器基本步骤首先,新建段落,并选择段类型为“模块”。其次,定义该模块的输入输出变量。另外如果需要,也可定义私有变量或全局变量等。再次,根据工艺要求编写该模块的内部算法。可以选择适合的编程元素按算法要求组合在一起,从而实现我们的控制要求。最后,对该段落保存、编译。如果编译成功,则回到组态软件中进行联编;如果出错,则应查找错误、修改程序直至编译成功。新程序段FBDLD段名称变量声明基本步骤首先,新建段落,并选择段类型为“模块”。新程序段FB自定义模块设计与使用例1:要求制作一个名为“点灯模块”的自定义功能块。当操作员按下按钮时以固定的时间间隔点亮5盏电灯。自定义模块设计与使用例1:要求制作一个名为“点灯模块”的自定义模块设计与使用自定义模块设计与使用自定义模块设计与使用自定义模块设计与使用八、程序调试八、程序调试主要内容:概述调试培训什么?主要内容:概述培训什么?概述
调试是对编写的程序进行检验的过程,以确保编写的程序满足我们的控制要求。调试分静态调试和动态调试。概述调试是对编写的程序进行检验的过程,以确保编写的程序满足静态调试信息栏(出错)
信息栏(成功)
方法:编译程序
鼠标双击会怎样?静态调试信息栏(出错)信息栏(成功)方法:编译程序鼠动态调试组态保存,编译,下载连接、调试变量调试动态调试组态保存,编译,下载动态调试例1:实现对PI102的手工置值。动态调试例1:实现对PI102的手工置值。动态调试例2:在以下梯形图程序中对开关量Y5手工置值。打开变量调试窗口添加变量Y5、D5、D6、D7、D8、D9、D10,并观察D5、D6、D7、D8、D9、D10的状态。把Y5置为ON,观察D5、D6、D7、D8、D9、D10的状态变化。动态调试例2:在以下梯形图程序中对开关量Y5手工置值。打调试辅助工具
调试文本
调试辅助工具
调试文本如何实现在调试状态下从一个段落快速切换到其它段落?如何实现在调试状态下从一个段落快速切换到其它段落?调试辅助工具
跳转按钮
调试辅助工具
跳转按钮九、综合编程应用
九、综合编程应用常见编程应用累积问题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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 吉首大学张家界学院《装饰工程预算》2022-2023学年第一学期期末试卷
- 二零二四年度校园创业项目发布会路演合同2篇
- 2024年度二手办公楼购买合同3篇
- 行为护理的心理护理
- 2024年度全新艺人独家经纪合约(专业版)2篇
- 翻译三级笔译综合能力分类模拟题39
- 白血病患者的心理护理
- 《科学计算语言Julia及MWORKS实践》全套教学课件
- 中层管理人员培训成果
- 人音版音乐七年级上册《青年友谊圆舞曲》课件
- 中华民族共同体概论课件第七讲华夷一体与中华民族空前繁盛(隋唐五代时期)
- (正式版)SHT 3223-2024 石油化工给水排水泵站设计规范
- MOOC 航天推进理论基础-西北工业大学 中国大学慕课答案
- 第三单元名著导读《朝花夕拾》课件(共71张PPT)
- 2024年贵州空港实业投资有限公司招聘笔试参考题库附带答案详解
- 24春国家开放大学《乡镇行政管理》作业1-5参考答案
- 经腹腔镜下全子宫切除手术配合护理
- 物理-2024届全国T8新八校高三第一次联考试题和答案
- 矿山救护理论知识考试题库500题(供参考)
- 护理学科建设的规划方案
- 2023-2024学年广东省广州市白云区九年级(上)期末数学试卷(含解析)
评论
0/150
提交评论