6ES7515-2FM02-0AB0
概述:感谢大家的支持,****西门子博途编程软件,与西门子300,200完整学习视频,技术文本资料,还可以加入技术。
获取方式说明:没有获取到的朋友,麻烦按照1234
1.点击关注
2.文章点赞(文章结束处左下角有个大拇指点一下)
3.转载并评论区下方留言;感谢分享,纯干货
4.私信我:西门子完整学习视频
5:大家如觉得好,麻烦点点赞,国庆期间1-7号每日一篇
OB 组织块
● 什么是组织块?
组织块是操作系统和用户程序之间的接口。OB 用于执行具体的程序:
1、在 CPU 启动时;
2、在一个循环或延时时间到达时;
3、当发生硬件中断时;
4、当发生故障时;
5、组织块根据其优先级执行。
OB 事件
● 组织块 OB 的类型
图1. OB 事件概览
图1. OB 事件概览
● 通过上图,可以看到 OB 组织块分为三个优先组,高优先组中的组织块可中断低优先组中的组织块;如果同一个优先组中的组织块同时触发将按其优先级由高到低进行排队依次执行;如果同一个优先级的组织块同时触发时,将按块的编号由小到大依次执行。
● CPU 为三个 OB 优先级组中的每一个组都提供了临时(本地)存储器:
1、16 KB 用于启动和程序循环(包括相关的 FB 和 FC)
2、4 KB 用于标准中断事件(包括 FB 和 FC)
3、4 KB 用于错误中断事件(包括 FB 和 FC)
● 嵌套深度:是指可从 OB 调用功能 (FC) 或功能块 (FB) 等程序代码块的深度。
1、从程序循环 OB 或启动 OB 开始调用 FC 和 FB 等程序代码块,嵌套深度为16层;
2、从延时中断、循环中断、硬件中断、时间错误中断或诊断错误中断 OB 开始调用 FC 和 FB 等程序代码块,嵌套深度为4层。
程序循环 OB
● 程序循环 OB 的功能
程序循环 OB 在 CPU 处于 RUN 模式时,周期性地循环执行。可在程序循环 OB 中放置控制程序的指令或调用其它功能块(FC 或 FB)。主程序(Main)为程序循环 OB ,要启动程序执行,项目中至少有一个程序循环 OB 。操作系统每个周期调用该程序循环 OB 一次,从而启动用户程序的执行。
S7-1200 允许使用多个程序循环 OB ,按 OB 的编号顺序执行。OB1 是默认设置,其它程序循环 OB 的编号必须大于或等于123。程序循环 OB 的优先级为1,可被高优先级的组织块中断;程序循环执行一次需要的时间即为程序的循环扫描周期时间。最长循环时间缺省设置为150ms。如果您的程序超过了最长循环时间,操作系统将调用 OB80(时间B );如果 OB80 不存在,则 CPU 停机。
● 操作系统的执行过程,请参见下图1:
1、操作系统启动扫描循环监视时间;
2、操作系统将输出过程映像区的值写到输出模块;
3、操作系统读取输入模块的输入状态,并更新输入过程映像区;
4、操作系统处理用户程序并执行程序中包含的运算;
5、当循环结束时,操作系统执行所有未决的任务,例如加载和删除块,或调用其他循环 OB
6、最后,CPU 返回循环起点,并重新启动扫描循环监视时间。
图2.
图2. 程序循环图例
● 程序循环 OB 的使用示例:
例如:在循环组织块 OB123 中调用 FC1 。具体实现过程如下:
1、按如下步骤创建循环组织块 OB123 。如图2。
图3.
图3. 创建循环组织块
2、通过上述类似方法创建功能 FC1 。如图3。
图4.
图4. 创建 FC1
3、在循环组织块 OB123 中调用 FC1 。如图4。
图5
逻辑块包括:功能(FC)、功能块(FB)、组织块(OB),它们都是由变量声明表、代码段及其属性等组成。
1.局部变量声明表
每个逻辑块的前面都有一个变量声明表,其称为局部变量声明表。
局部数据包括参数、局部变量。
局部变量包括静态变量、临时变量。
1)功能(FC)变量介绍
FC没有背景数据块,即FC不能使用静态变量,可以使用临时变量。输入、输出、I/O参数以指向实参的指针形式存储在操作系统为参数传递而保留的额外空间中。
2)功能块(FB)变量介绍
FB除了临时变量外,所有参数的存储空间都在背景数据块中。
3)组织块(OB)
OB只有临时变量,其他的变量由操作系统管理,用户不能参与。
2.局部变量的数据类型
局部变量可以定义为基本数据类型、复式数据类型、也可以是专门用于参数传递的“参数类型",参数类型包括定时器、计数器、块的地址或指针等。
3.变量使用方式
1)使用变量名,需在前加前缀“#",以区别于符号表中的符号地址。增量方式下,前缀会自动产生。
2)直接使用局部变量的地址,该方式只对背景数据块和L堆栈有效。
另外,在调用FB块时,背景数据块需要调用前生成,其顺序格式需和变量声明表保持一致。
6ES7515-2FM02-0AB0
Siemens编程器S7-200系列用在中小型设备上的自动系统的控制单元,适用于各行各业,各种场合中的检测,监测及控制。
在这里和大家一起来讨论S7-200几个使用方面的情况。
1.步进、伺服脉冲定位控制。
在设备的控制系统中,有关运动控制是很重要的,下面我们来看一看西门子S7-200系列PLC怎样来实现这个功能。
首先,确定使用哪个端口来发脉冲,如采用Q0.0发脉冲,则它的控制字为SMB67,脉冲同期为SMW68,脉冲个数存放在SMD72中。
下面是控制字节的说明:
Q0.0 Q0.1 控制字节说明 :
SM67.0 SM77.0 PTO/PWM更新周期值 0=不更新,1=更新周期值
SM67.1 SM77.1 PWM更新脉冲宽度值 0=不更新,1=脉冲宽度值
SM67.2 SM77.2 PTO更新脉冲数 0=不更新,1=更新脉冲数
SM67.3 SM77.3 PTO/PWM时间基准选择 0=1微秒值,1=1毫秒值
SM67.4 SM77.4 PWM更新方法 0=异步更新,1=同步更新
SM67.5 SM77.5 PTO操作 0=单段操作,1=多段操作
SM67.6 SM77.6 PTO/PWM模式选择 0=选择PTO,1=选择PWM
SM67.7 SM77.7 PTO/PWM允许 0=禁止PTO/PWM,1=允许
这样根据以上表格,我们得出Q0.0控制字:SMB67为:10000101 采用PTO输出,微妙级周期,发脉冲的周期(也就是频率)与脉冲个数都要重新输入。10000101转化为16进制为85,有了控制字以后,我们来写这一段程序:
根据上面这段程序,我们知道了控制字的使用,同时也知道步进电机的脉冲周期与冲个数的存放位置(对Q0.0来说是SMW68与SMD72)。当然,VW100与VD102内的数据不同的话,步进电机的转速和转动圈数就不一样。
还有一点需要说明得是:M0.0导通---PLC捕捉到上升沿发动脉冲输出后,想停止的话,只须改变端口脉冲的控制字,再启动PLS即可,程序如下:
2.高速计数功能。
西门子S7-200系列PLC具有高速计数的功能;举一例子来谈谈高速计数的用途,我们采用普通电机来带动丝杆转动,我们想控制转动距离,怎么来解决这个问题?那么我们可在电机另一头与一编码器联接,电机转一圈,编码器也随之转一圈,同时根据规格发出不同的脉冲数。当然,这些脉冲数的频率比较高,PLC不能用普通的上升沿计数来取得这些脉冲,只能通过高速计数功能了。
启动高速计数功能,也要具有控制字
HSCO HSC1 描述
SM37.0 SM47.0 复位有效电平控制位 0=高电平有效, 1=低电平有效
SM37.1 SM47.1 启动有效电平控制位于 0=高电平有效, 1=低电平有效
SM37.2 SM47.2 正交计数器速率选择 0=4X计数率, 1=1X计数率
SM37.3 SM47.3 计数方向控制位 0=减计数, 1=正计数
SM37.4 SM47.4 向HSC中写入计数方向 0=不更新, 1=更新计数方向
SM37.5 SM47.5 向HSC中写入预置值 0=不更新, 1=更新预置值
SM37.6 SM47.6 向HSC中写入当前值 0=不更新, 1=更新当前值
SM37.7 SM47.7 HSC允许 0=禁止HSC, 1=允许HSC
参照上面的表格,我们选择HSC1高速计数器,控制字为SMB47,现在我们启动高速计数器HSC1,选择为增计数,更新计数方向,重新设置值,更新当前值:这样的话,HSC1的启动控制高为:11111000转化为16进制为 F8,将启动计数器时当前值存放在SMD48中,将预存置放在SMD52中,具体的程序 如下:
同样的,如果计数器在工作状态下想停止计数器,也必须改变它的控制字后,启动HSC具体程序 如下:
3. PID回路控制功能。
西门子S7-200系列PLC的PID控制相当的简单,可以通过micro/win软件的一个向导程序,按照提示,一步一步执行您所要求PID控制的属性即可,在这里谈一谈PID这三个参数的具体意义:P为增益项,P越大,响应起就快,在调节流量阀时:设定流量为50%,当目前流量接近50%,刚超过,如果P值很大的话,那么流量阀会马上会关闭,而不会控制在某一区域。这就是增益项太大引起。在调节的过程中应该先将P值调节比较适当了,再去调节I值,它为积分项,是在控制器回路中控制对当前值与设定值相等的偏差范围。D为微分项,主要作用是避免给定值的微分作用而引起的跳变。
在现场的PID参数的调整过程中,针对西门子S7-200型PLC我的建议是在不同的控制阶段,采用不同的PID参数组,具体而言就是当目前距离设定值差距较大时,采用P值较大的一套PID参数,如果当前值快接近设定值范围时,采用P值较小的一套PID参数。
- 上一篇: 6ES7516-3FN02-0AB0
- 下一篇: 6ES7513-1FL02-0AB0