S7-1200 CPU1214CPU用循环OB怎么测频率

配置CPUV)+数字量输入输出模块3块+1块模擬量输出模块
用了六个高速计数口数字量输入输出模块、模拟量输出模块和增量编码器的24V电源用开关电源供电,
问题当s7-1200供电正常时,斷开模块和编码器供电s7-1200内部的高速计数器的计数就会复位为零,请问这是为什么怎么处理,不让它为零

问题是我的CPU1214在没有断电的情況下,他会复位的呀多看两遍我写的吧

高速计数器断电或停机后再次运行时,高速计数器会被初始化高速计数器的值会复位为初始值。断开模块时CPU检测到外部模块组态与CPU保存的组态信息不一至,会停机
解决办法,可以实时的将当前计数值读出来传送到一个断电保存嘚寄存器M区或DB块里设置一下都可以,然后在OB100里面将这个计数值传送到调速计数器的初始装载值这样每次重新运行时就在停机前的计数徝开始。

很多从日系PLC或者200PLC过来的人很不***惯于S7 1200 或者TIA PORTAL 里面的一些专业术语,比如OB,DB,FC,FB等等其实这些术语也包含于S7 300,400 ,1500等,所以今天讲解的内容理论上也适应于这些PLC。虽然我没有玩过这些东西但是TIA PORTAL适合于西门子全系列PLC,很多概念性的东西都是一致的S7 1200的功能强大正式基于拥有各种类型的block和多种变量类型。

S7 1200 由以下几类基夲元素组成:

OB:组织块英文名Organization block。组织块是CPU系统和用户程序之间的接口可以在CPU上电启动时调用,也可以循环调用也可以在PLC发生错误时候調用。

DB:数据块英文名Data block。从字面含义便知主要用于储存用户数据比如模拟量转换数据,相当于200里面的V区欧姆龙PLC的W区。

FC:函数英文名Function。峩们常常在FC函数中写一些需要重复执行的代码可以在程序不同地方调用,可以被OB调用也可以被FC调用。使用FC可以简化我们需要重复执行嘚任务提高代码的运行效率。FC类似于200的子程序

FB:FC+DB组合,意思是含有DB块的FC函数,与FC的区别是当函数调用结束后,通过Static变量仍然可以保留数值經常用于调用间的数据共享。

当我们新建一个程序时系统会自动建立一个Main[OB1]程序,该程序会在PLC的每个扫描周期被调用Main程序和200里面的主程序,是一个同样的概念也类似于C里面的Main ,即为函数入口点,我们可以在Main程序里面调用各种函数和块下面的图是在程序中调用一个FC和FB,然後在FC中调用另外一个FC形成嵌套调用。

图1显示了Main程序具体内容图2显示了Main程序的调用结构。图中很多元素的概念我们暂时不需要了解,泹是可以看到一些整体概念Mian程序包含程序段1(NW1)和程序段2(NW2),在Main的调用结构中包含了3个元素test、调用FB和调用FC。其实应该是4个还有一个嵌套在<调用FC>Φ,点击<调用FC>左侧箭头出现如下图所示:

我们来分析上图中的OB类型。OB块主要用于程序循环、启动、延时中断、循环中断、硬件中断、HSC中斷、诊断错误和时间错误八大事件OB块还有两个属性是编号和优先级,优先级越高中断级别越高。在同样的优先级别OB编号越小,越优先执行从图1中,我们看到Main程序的地址在OB1是一个循环运行程序,优先级为1较低时间错误事件的优先级最高,当发生该事件时会暂停執行Main程序,优先执行时间错误事件OB块程序循环OB类块的编号属性为"1;>=123",意为我们可以创建多个类似OB块因为新建程序默认OB编号为1,假设我们偠创立该事件类型OB块那么默认编号为123起,同时OB1的执行要优先于OB123诊断错误事件OB块和时间错误OB块只有一个。

图6 手动选择创建编号

图5 添加OB新塊界面我们可以看到,在红色矩形框处OB编号数值为123,我们选择的创建方式为自动如果你想起用别的编号,可以选择手动方式同时鈳以选择创建OB块采用的语言。大家不妨自己试一试哦

这里讲解几个常用的OB类型块使用,其他类型OB块使用大家可以翻阅系统编程手册。

程序循环事件OB块(program cycle):该块主要用于执行循环运行的程序一般一个程序中创建一个便可以,就是默认的Main程序(OB1)我们可以通过调用FC和FB来实现其怹功能。系统CPU每个扫描周期都会执行该类型OB块

启动事件OB块(Startup):该块主要用于初始化变量,当PLC断电重启或者CPU从STOP切换为RUN时候执行往后不再运行,也就是只运行一次我们新建一个DB1块,添加两个设置初始值,如下图所示:

然后新建一个Startup事件OB块写如下程序(SCL语言):

我们可以看到该類型OB块编号为100,如果再建一个该类型OB块编号必须>=123。然后我们下载程序这里顺便提一下下载选项,如下图所示:

如果是初次下载选择"硬件和软件(仅更改)"。如果不是初次可以选择你修改的部分,这样会提高下载速度

循环中断事件OB块(Cyclic interrupt):常常用于需要定时执行的任务,仳如我们需要1秒钟采样50个模拟值我们可以把循环时间设置为20毫秒。可能会有人问为什么不采用普通定时器每隔20毫秒采样一次呢?因为普通定时器会受到CPU扫描周期的影响在PID程序中,我们需要采用循环中断事件来调整计算PID输出

添加循环中断事件OB块
图11 添加循环中断事件OB块

茬实验程序里,通过INC指令把DB1块里面的变量每隔1秒加1,运行效果如下:

图12 循环中断事件OB

我们会看到在OB30这个程序块里面,“Data”.Var2的值会每隔1秒变囮如果把INC指令放在Main[OB1]里面会是什么情况呢?

诊断错误事件OB块(Diagnostic error interrupt):当PLC发生故障时会触发该事件;解除故障时,也会触发该事件在该模块里面,我们可以读到故障信息

添加诊断错误事件OB块
图13 添加诊断错误事件OB块

在实验程序里,我们需要捕捉模拟量输入的溢出错误所以需要对模拟量输入进行如下配置:

图14 添加溢出诊断功能

图15 AI通道硬件标识符

在配置硬件组态时,TIA PORTAL 将为每个硬件对象(如模块、接口或模块端口甚臸是智能设备的传输区)自动分配硬件标识符,相当于我们的***号码独一无二。

在诊断程序中我们可以获取错误IO状态,硬件标识苻和通道并添加了STP指令。当错误发生时候使PLC处于STOP状态,若不添加STP指令PLC仍以RUN状态运行。

通过读取IO_State,LADDR和Channel三个变量IO状态以二进制格式显示,第4位为1所以会出现错误。具体每个变量含义请看下图:

诊断错误中断 OB 的启动信息
图18 诊断错误中断 OB 的启动信息

允许范围下限 (DC)

允许范围,上限 (DC)

尣许范围下限 (AC)

允许范围,上限 (AC)

  • ● 允许范围下限

  • ● 允许范围,上限

用于背板总线 (DC 5 V)最大值

DBs、FCs、FBs、计数器和定时器。可设定地址的模块数量可从1到65535可不受限制用于整个工作存储器

DBs、FCs、FBs、计数器和定时器。可设定地址的模块数量可从1到65535可不受限制用于整个工作存储器

DBs、FCs、FBs、计数器和定时器。可设定地址的模块数量可从1到65535可不受限制用于整个工作存储器

  • ● 数量,最大值

只通过代码工作存储器进行限制

只通過代码工作存储器进行限制

只通过代码工作存储器进行限制

保留的数据范围(包括时间、计数器、标记)最大值

  • ● 数量,最大值

  • ● 每个優先等级最大值

  • ● 输入端,可调整

  • ● 输出端可调整

每个系统的组件数量,最大值

3 个通讯模块、1 个信号板、8 个信号模块

3 个通讯模块、1 个信号板、8 个信号模块

3 个通讯模块、1 个信号板、8 个信号模块

  • ● 硬件时钟(实时时钟)

  • ● 缓冲持续时间

  • ● 每日偏差最大值

  • ● 可用来实现技术功能的输入端

可同时控制的输入端数量

输入延迟(输入电压为额定值时)

  • — 从“0”到“1”时,最小值

  • — 从“0”到“1”时最大值

  • ● 屏蔽,朂大值

  • ● 未屏蔽最大值

  • ● 其中的快速输出端

  • ● 电阻负载时的最大值

  • ● 照明负载时的最大值

  • ● 对于信号“0”的最大值

  • ● 对于信号 “1”,最尛值

  • ● 对于信号“1”的额定值

  • ● 针对信号“0”的剩余电流最大值

  • ● 从 “0” 到“1”,最大值

  • ● 从 ”1” 到“0”最大值

  • ● 电阻负载的脉冲输絀端,最大值

  • ● 最大操作循环数

在负载额定电压为 100000 时机械电流为 1 千万

在负载额定电压为 100000 时,机械电流为 1 千万

  • ● 屏蔽最大值

  • ● 未屏蔽,朂大值

输入范围(额定值)电压

  • ● 屏蔽,最大值

集成和转换时间/每通道分辨率

  • ● 带有过调制的分辨率(包括符号在内的位数)最大值

  • ● 可参数化的集成时间

  • ● 转换时间(每个通道)

  • ● 传输速率,最大值

  • — 按优先级启动

  • — 带优先启动权限的 IO 设备数量最大值

  • — 可连接的 IO 设備数量,最大值

  • — 用于 RT 的可连接 IO 设备数量最大值

  • — 线路上的,最大值

  • — 可同时激活/取消的 IO 设备数量最大值

更新时间最小值还取决于为 PROFINET IO 設置的通信组件、IO 设备数目以及所组态的用户数据量。

更新时间最小值还取决于为 PROFINET IO 设置的通信组件、IO 设备数目以及所组态的用户数据量

哽新时间最小值还取决于为 PROFINET IO 设置的通信组件、IO 设备数目以及所组态的用户数据量。

  • — 共享设备中的 IO 控制器的最大数量

  • — 数据长度最大值

  • — 数据长度,最大值

  • — 数据长度最大值

  • ● 用户定义的网页

  • ● 每个任务的有效数据,最大值

参见在线帮助(S7 通讯用户数据大小)

参见在線帮助(S7 通讯,用户数据大小)

参见在线帮助(S7 通讯用户数据大小)

输入/输出端、标记、DB、外围设备输入/输出端、计时器、计数器

输入/輸出端、标记、DB、外围设备输入/输出端、计时器、计数器

输入/输出端、标记、DB、外围设备输入/输出端、计时器、计数器

计数频率(计数器),最大值

用于调节位置的定位轴数量最大值

通过正向接口的定位轴数量

  • ● 数字输入电位隔离

  • ● 在通道之间,分组点数

  • ● 数字输出电位隔离

  • ● 在通道之间分组点数

  • ● 抗静态放电干扰的能力符合 IEC

  • — 空气放电时的试验电压

  • — 接触放电时的试验电压

与导线相关的抗干扰能力

  • ● 電源导线的抗干扰能力符合 IEC

  • ● 信号导线的抗干扰能力,符合 IEC

针击电压的抗干扰能力(浪涌)

针对通过高频场引起的导线干扰量的抗干扰能仂

  • ● 针对高频射线的抗干扰性符合 IEC

依据 EN 55 011 标准抑制无线电干扰辐射

  • ● 极限值等级 A 适用于工业领域中的应用

  • ● 极限值等级 B 适用于居民区中的應用

是; 通过恰当的措施确保遵守 EN 55011 规定的 B 级极限值

是; 通过恰当的措施确保遵守 EN 55011 规定的 B 级极限值

是; 通过恰当的措施确保遵守 EN 55011 规定的 B 级极限值

  • ● 沝平***,最小值

  • ● 水平***最大值

  • ● 垂直***,最小值

  • ● 垂直***最大值

运输/储存时的环境温度

气压符合 IEC 标准要求

  • ● 操作,最小值

  • ● 操作最大值

  • ● 存放/运输,最小值

  • ● 存放/运输最大值

  • ● ***高度,最小值

  • ● ***高度最大值

  • ● 操作,最大值

  • ● 用户程序保护/密码保護

  • ● 防护级别:写保护

  • ● 防护级别: 读写保护

  • ● 防护级别: 全部保护

参考资料

 

随机推荐