1、2021/2/11 SIMATIC PCS7 标准培训 CFC编程 Sciample Training - SIMATIC PCS7 2 2021/2/11 内 容 CFC简介 CFC编程环境 CFC编程步骤 CFC技术块 CFC编程实例 2021/2/11 Sciample Training - SIMATIC PCS7 3 CFC 简介 CFC是连续控制图,为英文单词Continuous Function Chart的缩写。 CFC是基于图形用户界面的编辑器,它通过给预 先编辑好的块指定参数或者建立连接,从而实现 创建CPU程序结构。 2021/2/11 Sciample Training
2、 - SIMATIC PCS7 4 CFC的编程环境(1) 2021/2/11 Sciample Training - SIMATIC PCS7 5 CFC的编程环境(2) 打开CFC块,缺省只有一个级,可以通过添加达 到26个级,分别以英文字母A-Z表示,在每个级中 又分6页 右边为库,包括西门子自身提供的和用户预先编 写好的块,对于熟悉块名称的用户可以在右下角 直接输入块名搜索到你需要使用的块 2021/2/11 Sciample Training - SIMATIC PCS7 6 CFC的编程环境(3) 快捷键部分: 通过该上下选择,可以切换当前浏览的页面 切换到所有页面总览模式 切换到
3、具体某一页面浏览模式 2021/2/11 Sciample Training - SIMATIC PCS7 7 CFC的编程环境(4) 快捷键部分: 运行顺序,确定程序结构 2021/2/11 Sciample Training - SIMATIC PCS7 8 CFC的编程环境(5) 快捷键部分: 编译 下载 测试模式 CFC块交叉索引 2021/2/11 Sciample Training - SIMATIC PCS7 9 CFC的编程环境(6) 快捷键部分: 定义CFC块的接口,用于实现在CFC中调用 另一个预先编好的CFC块 实现步骤(1)创建一个CFC块,定义好接口,用于 在另外的C
4、FC块中调用 (2)打开一个新的CFC块,从库的 Charts目录中选择预先编好的CFC块,拖到程序 中即可 2021/2/11 Sciample Training - SIMATIC PCS7 10 CFC的编程环境(7) CFC编程步骤: 组态 编译 下载 测试 (1)组态:从主数据库中把需要用到的块拖到相应 的程序区域中,修改参数值,连接相应块的输入 输出接口。 2021/2/11 Sciample Training - SIMATIC PCS7 11 CFC的编程环境(8) (2)编译: 2021/2/11 Sciample Training - SIMATIC PCS7 12 CFC
5、的编程环境(9) Generate module drivers,生成模块驱动 Update sampling time,系统可以在编译之前,检 查并查找相关块所安装的OB,并在输入端 “SAMPLE_T”(相当于块的采样时间)进行相应 的输入 Delete empty run-time groups,删除存在于S7程 序中的空运行时间功能块组 2021/2/11 Sciample Training - SIMATIC PCS7 13 CFC的编程环境(10) (3)下载,把用户组态的工程下载到相应的PLC中 (4)测试 选择菜单命令DebugTest Mode,激活测试模式 选择菜单命令De
6、bugWatch On,所有在块属性 中以测试模式激活的块I/O以黄色背景显示 Sciample Training - SIMATIC PCS7 14 2021/2/11 CFC技术块 驱动技术块 控制技术块 转换技术块 数学运算技术块 操作技术块 信息技术块 2021/2/11 Sciample Training - SIMATIC PCS7 15 1、驱动技术块1 (1)CH_AI:FC275 实现功能:模拟量输入信号处理 MODE:CFC块编译时选择“产生模块驱动”, 系统自动连接到MOD块 VALUE:模拟量输入信号 VHRANGE、VLRANGE:定义模拟量输入信号的 码值线性转换后
7、的量程 SIM_ON为真值时,输出由仿真值SIM_V给出 SUBS_ON为真值时,输出由替换值SUBS_V给出 2021/2/11 Sciample Training - SIMATIC PCS7 16 1、驱动技术块2 V:输出值 QUALITY:质量代码,具体有以下几种形式 16#80 有效值 16#60 仿真值 16#44 上一个有效值 16#48 替换值 16#00 无效值 2021/2/11 Sciample Training - SIMATIC PCS7 17 1、驱动技术块3 (2)CH_AO:FC276 实现功能:模拟量输出信号处理 MODE:CFC块编译时选择“产生模块驱动”
8、, 系统自动连接到MOD块 SIM_ON为真值时,输出VALUE由仿真值SIM_U 给出;为假值时,由U给出 UHRANGE、ULRANGE定义量程内的数转换回 码值的量程 2021/2/11 Sciample Training - SIMATIC PCS7 18 1、驱动技术块4 (3)CH_DI:FC277 CH_DO:FC278 实现功能:开关量输入输出信号处理 MODE:CFC块编译时选择“产生模块驱动”, 系统自动连接到MOD块 SIM_ON为真值时,由仿真值SIM_I给出到块输出; 为假值时,分别由块输入VALUE、I给出到块输出 SUBS_ON为真值时,由替换值SUBS_I给出到
9、块 输出 2021/2/11 Sciample Training - SIMATIC PCS7 19 2、控制技术块1 (1)常规PID控制块 CTRL_PID:FB61 适用场合: 固定设定值控制 串级控制 比例控制 比值控制 2021/2/11 Sciample Training - SIMATIC PCS7 20 2、控制技术块2 控制块本身可以实现的功能 模式:手动、自动、跟踪 判断过程值状态并且生成相应信息 抑制扰动 设定值跟踪 输入值、设定值、输出值的设限 死区 比例、积分、微分根据需要激活 2021/2/11 Sciample Training - SIMATIC PCS7 21
10、 2、控制技术块3 控制块工作原理: 2021/2/11 Sciample Training - SIMATIC PCS7 22 2、控制技术块4 CTRL_PID技术块图解1 2021/2/11 Sciample Training - SIMATIC PCS7 23 2、控制技术块5 该图解释了SP值的产生 1、 2、图中U_HL、U_LL和SPEXTHLM、SPEXTLLM 分别起到在不同情况下给出SP值的限幅作用 SP_TRK_ONSPEXTSEL_OPSP提供说明 0 0 0 1 1 SP_OP SP_EXT PV_IN不考虑 内部设定 外部设定 跟踪设定 2021/2/11 Scia
11、mple Training - SIMATIC PCS7 24 2、控制技术块6 CTRL_PID技术块图解2 2021/2/11 Sciample Training - SIMATIC PCS7 25 2、控制技术块7 CTRL_PID技术块图解3 2021/2/11 Sciample Training - SIMATIC PCS7 26 2、控制技术块8 以上两幅图解释了块输出LMN的产生 从OS站可以更改块的运行模式(AUTO_ON_OP 值1为自动,0为手动) 在手动模式下,输出由MAN_OP决定(要求允许 手动输入MAN_OP_EN为1,且MAN_OP在上下 限MAN_HLM、 MA
12、N_LLM之间) 在自动模式下,输出通过PID计算给出(其中 PV_IN为反馈,GAIN为比例,TN为积分,TV为 微分) 2021/2/11 Sciample Training - SIMATIC PCS7 27 2、控制技术块9 调节方向由比例系数正负值决定 在跟踪模式下,LMN和LMN_TRK相连,以避免手 自动切换产生异常波动,不利于生产工况。 串级系统中,主回路输出LMN应连接到副回路输 入SP_EXT;考虑到两个回路在断开和建立串级 之间的切换产生波动,主回路跟踪输入LMN_TRK 应连接到副回路的SP 需要考虑内外部给出设定值SP之间的无扰动切换, 由管角SP_TRK_ON决定
13、2021/2/11 Sciample Training - SIMATIC PCS7 28 2、控制技术块10 (2)MEAS_MON:FB65 实现功能:监控一个模拟量,含有上下限报警和警 告 U为监控的模拟量 U_AH、U_AL为报警的上下限值,U_WH、 U_WL为警告的上下限值;QH_ALM、QL_ALM、 QH_WRN、QL_WRN分别对应上下限报警或警告 的给出 2021/2/11 Sciample Training - SIMATIC PCS7 29 2、控制技术块11 (3)MOT_REV :FB67 实现功能:用于控制双向运转电机 模式切换:从OS站对管角AUT_ON_OP进
14、行修改, 可以切换运行模式,1为自动,0为手动;可以由 QMAN_AUT验证 在FW_OP_EN,RV_OP_EN,OFFOP_EN允许 情况下(1为允许,0为禁止),决定正转、反转 以及停止分别由FORW_ON、MOT_OFF和 REV_ON决定;正转、反转或停止只能有一种成 立,建议电气上也应实现互锁 2021/2/11 Sciample Training - SIMATIC PCS7 30 2、控制技术块12 模块提供可监视电机运行停止时间,在管角 MONITOR为1的情况下,由TIME_ON和 TIME_OFF可知道当前电机运行、停止的时间 错误复位由管角RESET决定 START_O
15、FF决定CPU切换到运行时电机的状态; 1为电机停止,0为保持上一个运行状态 2021/2/11 Sciample Training - SIMATIC PCS7 31 2、控制技术块13 (4)MOT_SPED :FB68 实现功能:用于控制单向运转,有快速和慢速运行 之分的电机 基本解释见MOT_REV SP1_ON, SP2_ON,MOT_OFF决定电机快速 运行、慢速运行和停止;三个只能一个有效。 2021/2/11 Sciample Training - SIMATIC PCS7 32 2、控制技术块14 (5)MOTOR :FB66 实现功能:用于控制电机,电机运行状态可选择监 视
16、 模式切换:从OS站对管角AUT_ON_OP进行修改, 可以切换运行模式,1为自动,0为手动;可以由 QMAN_AUT验证 LOCK和LOCK_ON决定电机立即运行或停止,优 先级最高,其中LOCK让电机立即停止,在LOCK 为0时, LOCK_ON让电机立即运行 FB_ON为电机反馈状态 2021/2/11 Sciample Training - SIMATIC PCS7 33 2、控制技术块15 (6)VALVE :FB73 实现功能:用于控制阀的启停 模式切换:从OS站对管角AUT_ON_OP进行修改, 可以切换运行模式,1为自动,0为手动;可以由 QMAN_AUT验证 VL_OPEN和
17、VL_CLOSE在V_LOCK为0的情况下 决定阀的开或关,同时VL_CLOSE锁定VL_OPEN, 即二者都为1时阀关闭; V_LOCK为1时阀立即关 闭 2021/2/11 Sciample Training - SIMATIC PCS7 34 2、控制技术块16 VALVE :FB73 FB_CLOSE和FB_OPEN对应阀的开关反馈信号, 对于单反馈或没有反馈的阀可以只连接一个管角 或不连 2021/2/11 Sciample Training - SIMATIC PCS7 35 2、控制技术块17 (7)INTERLOCK :FB75 实现功能:开关量的逻辑运算 输入信号最多为10个
18、,分成两组I1_1.5, I2_1.5 当NEG1_1.5和NEG2_1.5中任意某一个为1时, 相应的输入信号取反再进行逻辑运算 当NEGRES_1或NEGRES_2为1时,表示对第一 组或第二组信号的结果取反再进行逻辑运算 AND_OR1.3,为1时进行逻辑与运算,为0时进 行逻辑或运算; AND_OR1 .2表示对第一组或第 二组进行逻辑运算性质,AND_OR3表示对两组信 号逻辑运算结果再运算的性质 2021/2/11 Sciample Training - SIMATIC PCS7 36 2、控制技术块18 INTERLOCK :FB75 Q1、Q2分别表示第一组、第二组信号的逻辑运
19、算 结果;Q3表示总逻辑运算结果 2021/2/11 Sciample Training - SIMATIC PCS7 37 3、转换技术块 R_TO_DW :FC282 实现功能:浮点数转换为双字 浮点数应该在0.0和4294967000.0之间 当浮点数超上限或低下限时,ENO=0,并且相应 输出为上限值4294967000或下限值0 2021/2/11 Sciample Training - SIMATIC PCS7 38 4、数学运算技术块1 (1)ADD4_P :FC256 实现功能:4个浮点数求和 V=U1+U2+U3+U4 Un(n=4)缺省为0 (2)ADD8_P :FC257
20、 实现功能:8个浮点数求和 V=U1+U2+Un(n=8) Un(n=8)缺省为0 2021/2/11 Sciample Training - SIMATIC PCS7 39 4、数学运算技术块2 (3)MUL4_P :FC262 实现功能:4个浮点数求积 V=U1*U2*U3*U4 Un(n=4)缺省为1 (4)MUL8_P :FC263 实现功能:8个浮点数求积 V=U1*U2*Un(n=8) Un(n=8)缺省为1 2021/2/11 Sciample Training - SIMATIC PCS7 40 4、数学运算技术块3 (5)AVER_P :FB34 实现功能:计算某一个参数在一
21、定时间内的平均值 RUN由0变为1的一次跳变时,该块开始执行; RUN为0时,该块停止执行。 V=(N*Valt+U)/(N+1) 其中Valt为上一次的V值。 2021/2/11 Sciample Training - SIMATIC PCS7 41 4、数学运算技术块4 (6)COUNT_P :FB36 实现功能:捕捉某一开关量信号的上升沿,进行计 数。 MODE为0时,正向计数; MODE为1时,负向计 数 计数结果V达到上限V_HL或下限V_LL时,停止计 数,分别给出QVHL、QVLL高电平 RESET=1,MODE=0则V=V_LL,QVLL=1,QVHL=0 MODE=0则V=V
22、_HL,QVLL=0,QVHL=1 2021/2/11 Sciample Training - SIMATIC PCS7 42 5、操作技术块1 (1)OP_A:FB45 实现功能:简单操作控制一个模拟量输出 U由操作员从OS站给出 当LINK_ON=1时,内部值LINK_U传送给V; 当LINK_ON=0时,U传送给V 当LINK_ON=1时,BTRACK=1,U跟踪LINK_U, 从而保证LINK_ON切换为0时,输出V不至于产生 突然的跳变; BTRACK=0,则LINK_ON切换为0 时,输出V保持最近的U值 2021/2/11 Sciample Training - SIMATIC
23、PCS7 43 5、操作技术块2 (2)OP_A_LIM:FB46 实现功能:操作控制一个模拟量输出 基本解释同OP_A 当OP_EN=1时,U可以从OS站给出,否则U锁定 当LINK_U或U在上限U_HL、U_LL之间可以直接 传送给V;当超出上下限时,则给出为上下限值 2021/2/11 Sciample Training - SIMATIC PCS7 44 5、操作技术块3 (2)OP_D:FB48 实现功能:操作控制一个开关量输出 I0由OS站给出,但OP_EN0和OP_EN1可以限制 输入值,之间关系为: OP_EN0OP_EN1 11 I0 0和1都可以 01只能为1 10只能为0
24、 00不存在 2021/2/11 Sciample Training - SIMATIC PCS7 45 5、操作技术块4 OP_D:FB48 当LINK_ON=1时,内部值LINK_I传送给Q0; 当LINK_ON=0时,I0传送给Q0 当LINK_ON=1时,BTRACK=1, I0跟踪LINK_I, 从而保证LINK_ON切换为0时,输出Q0不至于产 生突然的跳变; BTRACK=0,则LINK_ON切换为 0时,输出V保持最近的I0值 2021/2/11 Sciample Training - SIMATIC PCS7 46 5、操作技术块5 (2)OP_TRIG:FB50 实现功能:
25、操作控制一个开关量输出一个脉冲 I0由OS站给出 在OP_EN=1时,当I0为1时,在一个周期内Q0为 1,紧接着I0和Q0自动复位。 2021/2/11 Sciample Training - SIMATIC PCS7 47 6、信息技术块1 MESSAGE:FB43 实现功能:检测信号变化产生组态好的信息 EN决定该块是否可以运行,1位运行,否则反之 I_1.8为监视的8个开关量 AUX_PR01.10用于更加详细解释信息 用于在OS站上显示的信息可以预先根据需要更改, 输入的信息最多为24个字符。 2021/2/11 Sciample Training - SIMATIC PCS7 48
26、 6、信息技术块2 具体修改信息方法: 1、鼠标选择块属性 2、鼠标点击信息按钮 3、修改其中的文本 2021/2/11 Sciample Training - SIMATIC PCS7 49 6、信息技术块3 2021/2/11 Sciample Training - SIMATIC PCS7 50 三、编程实例1 任务:液体原料储存在两个原料罐中,控制泵将原 料送到两个反应釜中。 管道及仪表流程图: 2021/2/11 Sciample Training - SIMATIC PCS7 51 三、编程实例2 仪表流程图说明: LI111(液位指示):原料罐中当前液位测量 NK111和NK11
27、2(用户指定的阀门标识符):节 流阀,在注入原料时必须打开 NP111(用户指定的马达标识符):泵,将原料 送入反应釜 NK113和NK114(用户指定的阀门标识符):阀 门,打开时(某一时间只能开启一个)泵将原料 送到反映釜1或反映釜2 FC111(流量控制):执行器,控制原料数量 2021/2/11 Sciample Training - SIMATIC PCS7 52 三、编程实例3 在符号表中创建符号 在相应的层级下插入以下CFC块 CFC_STEP:分配设定值 CFC_FC111:控制剂量和速度 CFC_LI111:控制和模拟液位 CFC_NP111:电机控制 CFC_NK111到1
28、14:阀门控制 2021/2/11 Sciample Training - SIMATIC PCS7 53 三、编程实例4 打开CFC_STEP,添加两个OP_A_LIM和一个 OP_D OP_A_LIM(1):设定剂量 OP_A_LIM(2):设定剂量速度 OP_D:定义用泵将原料送到哪个反应釜中 OP_A_LIM(1):更改其中U为50.0 OP_A_LIM(2):更改其中U为1000.0 U_HL为10000.0 OP_D:I0为off 2021/2/11 Sciample Training - SIMATIC PCS7 54 三、编程实例5 2021/2/11 Sciample Tra
29、ining - SIMATIC PCS7 55 三、编程实例6 打开CFC_FC111,添加以下块 CH_AI:模拟量输入值的信号处理 INT_P:剂量的模拟 DOSE:原料的剂量投配 MUL_R:将输入数值相乘,并将乘积在输出端输 出 CTRL_PID:注入液位的监控和过程模式下液位的 显示 CH_AO:模拟量输出值的信号处理 2021/2/11 Sciample Training - SIMATIC PCS7 56 三、编程实例7 功能块 I/O 含义 值 CH_AI SIM_ON 模拟被激活 1 MODE 测量范围420MA 16#0203 VHRANGE 测量范围上限 100 SUBS
30、_ON 替代值的使能 1 INT_P V_HL 上限总量10000升 10000 DOSE SP_HLM 剂量设定值的上限 10000 MO_PVHR 剂量设定值的上限 10000 SPEXON_L 内部/外部切换功能激活 1 SPEXT_ON 内部/外部切换默认值 1 MUL_R IN2 流速值适配参数 1 CTRL_PID LIOP_MAN_SEL 自动/手动功能激活 1 LIOP_INT_SEL 内部/外部切换功能激活 1 SPEXON_L 控制器切换为外部设定值 1 GAIN 设定控制器增益为“0.5 0.5 CH_AO 省略 2021/2/11 Sciample Training -
31、 SIMATIC PCS7 57 三、编程实例8 2021/2/11 Sciample Training - SIMATIC PCS7 58 三、编程实例9 打开CFC_LI111,添加以下块 CH_AI:用于读取输入模块的过程值,并使它在 CFC中能读到以作进一步处理 INT_P:模拟原料罐中液位 MEAS_MON:注入液位的监控和过程模式下液位 的显示 2021/2/11 Sciample Training - SIMATIC PCS7 59 三、编程实例10 块 I/O 含义 值 CH_AI MODE 测量范围420mA 16#0203 VHRANGE 测量范围上限 100 SIM_ON
32、 模拟值激活 1 SIM_V 原料罐液位78 78 SUBS_ON 替代值使能 1 SUBS_V SIM_V替代值 78 INT_P U 原料罐的液位模拟 -0.4 MEAS_MON U_WH 警告上限90m3 90 U_WL 警告下限7m3 7 U_AH 报警上限98m3 98 U_AL 报警下限5m3 5 MO_PVHR 容器中的过程值上限100m3 100 2021/2/11 Sciample Training - SIMATIC PCS7 60 三、编程实例11 2021/2/11 Sciample Training - SIMATIC PCS7 61 三、编程实例12 打开CFC_N
33、P111,添加以下块 CH_DI:开关量输入信号处理 MOTOR:控制电机运行 功能块 I/O 含义 值 CH_DI SIM_ON 开关量模拟激活 1 SUBS_ON 替代值的使能 1 MOTOR MONITOR 取消监控功能 Monitoring=off AUT_ON_OP 激活自动模式 Mode=AUTO 2021/2/11 Sciample Training - SIMATIC PCS7 62 三、编程实例13 2021/2/11 Sciample Training - SIMATIC PCS7 63 三、编程实例14 打开CFC_NK111,添加以下块 VALVE:控制阀门的开关 对于另外3个块作同样处理 功能块 I/O 含义 值 VALVE START_SS 选择阀门默认状态 0 MONITOR 监控过程反馈值 Monitoring=off AUT_ON_OP 把阀门切换为自动模式 Mode=Auto 2021/2/11 Sciample Training - SIMATIC PCS7 64 三、编程实例15 2021/2/11 Sciample Training - SIMATIC PCS7 65 总结与练习