6SL32110KB125UB1,6SL32110KB125UB1
{心中有空间,梦想就有可能}
{西门子与客户携手,让关键所在,逐一实现}
联 系 人: 黄勇《黄工》 24小时联系手机: 13701633515
直线销售 电 话: 021-31660605 在 线 商 务 QQ: 77956468
单位:台 产品单价:电议
供货数量:不限 最小定量:1
包装说明:齐全 产品规格:全新原装
FB41称为连续控制的PID用于控制连续变化的模拟量,与FB42的差别在于后者是离散型的,用于控制开关量,其他二者的使用方法和许多参数都相同或相似。
PID的初始化可以通过在OB100中调用一次,将参数COM-RST置位,当然也可在别的地方初始化它,关键的是要控制COM-RST;
PID的调用可以在OB35中完成,一般设置时间为200MS,
一定要结合帮助文档中的PID框图研究以下的参数,可以起到事半功倍的效果
以下将重要参数用黑体标明.如果你比较懒一点,只需重点关注黑体字的参数就可以了。其他的可以使用默认参数。
A:所有的输入参数:
COM_RST: BOOL: 重新启动PID:当该位TURE时:PID执行重启动功能,复位PID内部参数到默认值;通常在系统重启动时执行一个扫描周期,或在PID进入饱和状态需要退出时用这个位;
MAN_ON: BOOL:手动值ON;当该位为TURE时,PID功能块直接将MAN的值输出到LMN,这可以在PID框图中看到;也就是说,这个位是PID的手动/自动切换位;
PEPER_ON: BOOL:过程变量外围值ON:过程变量即反馈量,此PID可直接使用过程变量PIW(不推荐),也可使用 PIW规格化后的值(常用),因此,这个位为FALSE;
P_SEL: BOOL:比例选择位:该位ON时,选择P(比例)控制有效;一般选择有效;
I_SEL: BOOL:积分选择位;该位ON时,选择I(积分)控制有效;一般选择有效;
INT_HOLD BOOL:积分保持,不去设置它;
I_ITL_ON BOOL:积分初值有效,I-ITLVAL(积分初值)变量和这个位对应,当此位ON时,则使用I-ITLVAL变量积分初值。一般当发现PID功能的积分值增长比较慢或系统反应不够时可以考虑使用积分初值;
D_SEL : BOOL:微分选择位,该位ON时,选择D(微分)控制有效;一般的控制系统不用;
CYCLE : TIME:PID采样周期,一般设为200MS;
SP_INT: REAL:PID的给定值;
PV_IN : REAL:PID的反馈值(也称过程变量);
PV_PER: WORD:未经规格化的反馈值,由PEPER-ON选择有效;(不推荐)
MAN : REAL:手动值,由MAN-ON选择有效;
GAIN : REAL:比例增益;
TI : TIME:积分时间;
TD : TIME:微分时间;
TM_LAG: TIME:我也不知道,没用过它,和微分有关;
DEADB_W: REAL:死区宽度;如果输出在平衡点附近微小幅度振荡,可以考虑用死区来降低灵敏度;
LMN_HLM: REAL:PID上极限,一般是100%;
LMN_LLM: REAL:PID下极限;一般为0%,如果需要双极性调节,则需设置为-100%;(正负10V输出就是典型的双极性输出,此时需要设置-100%);
PV_FAC: REAL:过程变量比例因子
PV_OFF: REAL:过程变量偏置值(OFFSET)
LMN_FAC: REAL:PID输出值比例因子;
LMN_OFF: REAL:PID输出值偏置值(OFFSET);
I_ITLVAL:REAL:PID的积分初值;有I-ITL-ON选择有效;
DISV :REAL:允许的扰动量,前馈控制加入,一般不设置;
B:部分输出参数说明:
LMN :REAL:PID输出;
LMN_P :REAL:PID输出中P的分量;(可用于在调试过程中观察效果)
LMN_I :REAL:PID输出中I的分量;(可用于在调试过程中观察效果)
LMN_D :REAL:PID输出中D的分量;(可用于在调试过程中观察效果)
C:规格化概念及方法:
PID参数中重要的几个变量,给定值,反馈值和输出值都是用0.0~1.0之间的实数表示,
而这几个变量在实际中都是来自与模拟输入,或者输出控制模拟量的
因此,需要将模拟输出转换为0.0~1.0的数据,或将0.0~1.0的数据转换为模拟输出,这个过程称为规格化
规格化的方法:(即变量相对所占整个值域范围内的百分比 对应与27648数字量范围内的量)
对于输入和反馈,执行:变量*100/27648,然后将结果传送到PV-IN和SP-INT
对于输出变量 ,执行:LMN*27648/100,然后将结果取整传送给PQW即可;
D:PID的调整方法:
一般不用D,除非一些大功率加热控制等惯大的系统;仅使用PI即可,
一般先使I等于0,P从0开始往上加,直到系统出现等幅振荡为止,记下此时振荡
的周期,然后设置I为振荡周期的0.48倍,应该就可以满足大多数的需求。我记得网络上有许多调整PID的方法,但不记得那么多了,先试试吧。
附录:PID的调整可以通过“开始—>SIMATIC->STEP7->PID调整”打开PID调整的控制面板,通过选择不同的PID背景数据块,调整不同回路的PID参数。
西门子S7-200编程电缆100%能用,绝对无损坏电脑和PLC,安全可靠。(注:681是电阻,它的阻值是680欧姆;682是电阻,它的阻值是6.8K)
1 GSD文件介绍
GSD文件是一种设备描述文件,一般以“*.GSD”或“*.GSE”为后缀。它描述了设备的功能参数,用来将不同厂家支持PROFIBUS产品集成在一起。另外在工程开发中有时候由于开发人员不同,要用两个独立的STEP 7项目来实现同一个PROFIBUS 网络通讯,此时需要借助GSD文件的方法来实现。
2 GSD文件的导入方法
下面以CPU314C-2DP为例,说明一下 GSD 文件的导入步骤:
首先从西门子网站上下载相关产品的 GSD 文件,下面是SIMATIC系列产品的GSD文件下载链接:113652
选择相关产品并下载到本地硬盘中。
图 1 GSD文件下载界面
打开SIMATIC Manager,进入硬件组态界面,选择菜单栏的“Options”->“Install GSD File…”,如图 2 所示。
图 2 安装GSD文件
进入GSD安装界面后,选择“Browse…”,选择相关GSD文件的保存文件夹,选择对应的GSD文件(这里选择语言为英文的“*.GSE”文件),点击“Install”按钮进行安装。
图 3 选择安装GSD文件
安装完成后可以在下面的路径中找到CPU314C-2DP,如图 4:
图 4 硬件目录中的保存路径
3 CP342-5做主站采用GSD方法实现PROFIBUS DP 通信
3.1网络拓扑介绍
PROFIBUS DP主站由CPU314+CP342-5组成,其中CP342-5做主站。
PROFIBUS DP 从站由CPU314C-2DP组成,集成的DP接口做从站。
网络拓扑图如下:
图 5 网络拓扑图
3.2 从站组态
首先插入SIMATIC S7-300站,添加CPU314-2DP,双击DP接口,分配一个PROFIBUS地址,然后在“Operating Mode”中选择“DP salve”模式,进入“Configuration”标签页,新建两行通信接口区,如图 6所示:
图 6 从站通信接口区
注意:上述从站组态的通信接口区和主站导入的GSD从站的通信接口区在顺序、长度和一致性上要保持一致。
3.3 主站组态及编程
3.3.1主站组态
首先插入SIMATIC S7-300站,添加CPU314以及CP342-5,然后双击CP342-5,将“Operating Mode”设置为“DP Master”。新建一条PROFIBUS网络。然后从硬件目录中选择CPU314C-2DP GSD文件(路径参照图4),添加到新建的PROFIBUS网络中,为其分配PROFIBUS地址,该地址要与前文的从站地址一致。
然后组态CPU314C-2DP从站对应的通信接口区。本文在硬件目录中CPU314C-2DP GSD文件下方选择了“Master_I Slave_Q 1B unit”和“Master_Q Slave_I 1B unit”,和从站组态时通信接口区保持一致,如图 7所示。
图 7 主站组态
3.3.2 主站编程
由于CP342-5提供的是虚拟地址映射区,所以需要分别调用FC1(DP_SEND)和FC2(DP_RECV)来实现数据访问。如图8 和图9所示。
图 8发送程序
图 9接收程序
如图7所示,主站侧在组态CPU314C-2DP GSD从站时,第一行通信接口区选择了“Master_I Slave_Q 1B unit”,“Master_I”对应主站的IB0。参照图6可知“Slave_Q”对应从站的QB0, 表示数据由从站的QB0发送到主站的IB0。又由于CP342-5通过调用FC2,将IB0读取的数据保存在MB11,所以数据由从站的QB0经过主站的IB0,最终保存在MB11。 同理可分析第二行通信接口区“Master_Q Slave_I 1B unit”。综上所述,主站和从站通信接口的对应关系,如表 1:
主站 | 传输方向 | 从站 |
MB11(IB0) | ![]() | QB0 |
MB10(QB0) | ![]() | IB0 |
表1 主站和从站通信接口区对应表
4 S7-300做主站采用GSD方法实现PROFIBUS DP 通信
4.1 网络拓扑介绍
PROFIBUS DP主站由CPU314C-2DP组成,集成的DP接口做主站。
PROFIBUS DP 从站由CPU314C-2DP组成,集成的DP接口做从站。
网络拓扑图如下:
图 10 网络拓扑图
4.2 从站组态
组态步骤同3.2节,这里不再赘述。
4.3 主站组态
首先新建S7-300站,添加CPU314C-2DP,双击DP接口,新建一条PROFIBUS网络。然后从硬件目录中选择CPU314C-2DP GSD文件(路径参照图4),添加到新建的PROFIBUS网络中,为其分配PROFIBUS地址,该地址要与前文的从站地址一致。
然后为CPU314C-2DP从站组态的通信接口区。本文在硬件目录中CPU314C-2DP GSD文件下方选择了“Master_I Slave_Q 1B unit”和“Master_Q Slave_I 1B unit”,必须和从站组态时通信接口区保持一致。如图 11所示。
图 11 主站组态
主站和从站通信接口区的对应关系如表 2 所示:
主站 | 传输方向 | 从站 |
IB0 | ![]() | QB0 |
QB0 | ![]() | IB0 |
表 2 主站和从站通信接口区对应表
注:文档涉及到西门子产品如下:
表 3 产品列表
产品名称 | 订货号 | 版本号 |
STEP 7(英文版) | 6ES7 810 - 4CC08 - 0YA5 | V5.4 SP5 |
CPU314C-2DP | 6ES7 314 - 6CG03 - 0AB0 | V2.6 |
CPU314 | 6ES7 314 - 1AG13 - 0AB0 | V2.6 |
CP342-5 | 6GK7 342 - 5DA02 - 0XE0 | V5.2 |
PS307 | 6ES7 307 - 1EA00 - 0AA0 |
1.程序家族有哪些成员?
PLC的控制程序一般由主程序、子程序和中断程序组成。西门子的S7-300/400将子程序分为功能(Function,或称为函数)和功能块(Function Block)。
在每一个扫描循环周期,CPU都要调用一次主程序,用户程序必须有一个并且只能有一个主程序。小型控制系统可以只有主程序。
中断程序用于快速响应中断事件。在中断事件发生时,CPU将停止执行当时正在处理的程序或任务,去执行用户编写的中断程序。执行完中断程序后,继续执行被暂停执行的程序或任务。
2.哪些情况需要使用子程序?
当系统规模很大、控制要求复杂时,如果将全部控制任务放在主程序中,主程序将会非常复杂,既难以调试,也难以阅读。使用子程序可以将程序分成容易管理的小块,使程序结构简单清晰,易于调试、查错和维护。
子程序也可以用于需要多次反复执行相同任务的地方,只需要编写一次子程序,别的程序在需要的时候多次调用它,而无需重写该程序。
3.怎样调用子程序?
主程序可以调用子程序,子程序也可以嵌套调用别的子程序。嵌套调用的层数是有限制的,例如S7-200的最大嵌套深度为8级。
执行完子程序后,返回调用它的程序中的调用指令的下一条指令。
4.每个扫描周期都会执行子程序吗?
子程序的调用可以是有条件的,在被调用期间,每个扫描周期都要执行一次被调用的子程序。调用条件不满足时不会执行子程序中的指令,因此使用子程序可以减少扫描循环时间。
5.停止调用子程序后,子程序中的线圈处于什么状态?
停止调用子程序后,不再执行子程序中的指令。子程序中线圈对应的编程元件如果没有受到别的程序的控制,将保持子程序最后一次执行后的状态不变。即使控制这些线圈的触点的状态变化,该线圈对应的元件的状态也不会变化,因为这时根本就没有执行子程序中的指令。
6.怎样实现子程序的无条件调用?
有的PLC的子程序调用指令不能直接接到左侧的垂直“电源”线上,需要通过触点电路来控制是否调用子程序,即子程序的调用是有条件的。可以用一直为ON的特殊位元件(例如S7-200的SM0.0或FX系列的M8000)的常开触点来实现子程序的无条件调用。
不同品牌的PLC的子程序大致可以分为两种,一种子程序没有输入、输出参数和局部变量,另一种则有。
1.什么是全局变量和局部变量?
以西门子的S7-200为例,输入I、输出Q、变量存储器V、内部存储器位M、定时器T、计数器C等属于全局变量,可以在符号表中为全局变量定义符号名。
程序组织单元(Program Organizational Unit)简称为POU,包括主程序、子程序和中断程序。每个POU均有自己的64字节局部变量,局部变量用L(Local)来表示,局部变量只能在它所在的POU中使用。与此相反,全局变量可以在各POU中使用。
2.局部变量有哪些类型?
子程序可以使用下列局部变量:
1) TEMP (临时变量)是暂时保存在局部数据区中的变量。只有在执行该POU时,定义的临时变量才被使用,POU执行完后,不再保存临时变量的数值。主程序和中断程序的局部变量表中只有TEMP变量。
2) IN(输入参数)由调用它的POU提供的传入子程序的输入参数。
3) OUT(输出参数)是子程序的执行结果,它被返回给调用它的POU。
4) IN_OUT(输入_输出参数)的初始值由调用它的POU传送给子程序,并用同一变量将子程序的执行结果返回给调用它的POU。
主程序和中断程序的局部变量表中只有临时变量TEMP。
3.子程序的输入、输出参数有什么作用?
具有输入、输出参数和局部变量的子程序易于实现结构化编程,对于长期生产同类设备或生产线的厂家尤为有用。编程人员为设备的各部件或工艺功能编写了大量的通用的子程序。即使不知道子程序的内部代码,只要知道子程序的功能和输入、输出参数的意义,就可以用它们快速“组装”出满足不同的用户要求的控制程序。就好像可以用数字集成电路芯片组成复杂的数字电路一样。
如果子程序没有输入、输出参数,这种子程序没有明确的软件接口,使用起来很不方便。
4.局部变量有什么优点?
1) 子程序如果没有局部变量,它和调用它的程序之间只能通过全局变量来交换数据,子程序内部也只能使用全局变量。将它移植到别的项目时,需要对各POU使用的全局变量作统一安排,以保证不会出现地址冲突。当程序很复杂,子程序很多时,这种地址分配是很花时间的。
如果子程序有局部变量,并且在子程序中只使用局部变量,不使用全局变量,因为与其他POU没有地址冲突,不作任何改动,就可以将子程序移植到别的项目中去。
为了减少移植子程序的工作量,在子程序中应尽量避免使用全局变量和全局符号。
2) 如果使用局部变量表中的临时变量(TEMP),同一片物理存储器可以在不同的程序中重复使用。
下面以S7-200为例,介绍子程序的编程和调用的过程。
1.创建子程序
生成项目时,自动生成一个子程序。打开程序编辑器,执行“编辑”菜单中的命令“插入”→“子程序”,将自动生成和打开新的子程序。
2.生成局部变量
名为“模拟量计算”的子程序如下图所示,在该子程序的局部变量表中,定义了3个输入(IN)参数,一个输出(OUT)参数,和名为“暂存1”的临时(TEMP)变量。局部变量表最左边的一列是自动分配的每个变量在局部存储器(L)中的地址。
3.编写子程序的梯形图
局部变量表的下面是程序区(见上图),输入参数“转换值”是来自模拟量输入模块的与模拟量成正比的转换值,输出参数“模拟值”是计算出的对应的模拟量(例如压力、温度等)的工程值。子程序中变量名称前的“#”表示该变量是局部变量,它是编程软件自动添加的,输入局部变量时不用输入“#”号。特殊存储器位SM0.0的常开触点总是闭合。
4.子程序的调用
可以在主程序、其他子程序或中断程序中调用子程序,调用子程序时将执行子程序中的指令,直至子程序结束,然后返回调用它的程序中该子程序调用指令的下一条指令之处。
创建子程序后,在上图左边指令树最下面的“调用子程序”文件夹中自动生成刚创建的子程序“模拟量计算”对应的图标。
在梯形图程序中插入子程序调用指令时,首先打开主程序,显示出需要调用子程序的网络。打开指令树最下面的“调用子程序”文件夹,用鼠标左键按住需要调用的子程序图标,将它“拖”到程序编辑器中需要的位置。放开左键,子程序块便被放置在该位置。
子程序方框中左边的“转换值”等是在子程序“模拟量计算”的变量声明表中定义的输入参数,右边的“模拟值”是输出参数。它们被称为子程序的形式参数,简称为形参,形参在子程序内部的程序中使用。调用子程序时,需要为每个形参指定实际的参数(简称为实参),例如为形参“转换值”指定的实参为模拟量输入字AIW2(见上图)。
子程序调用指令中的实参的有效操作数为存储器地址、常量、全局符号和调用指令所在的POU中的局部变量,不能指定被调用子程序中的局部变量。
CPU调用子程序时,输入参数被复制到子程序的局部存储器,子程序执行完后,从局部存储器复制输出参数到指定的输出参数地址。
精智面板系列 KP、TP、KTP