入门学PLC不再缺少方法和技巧,西门子S7-1200计数干货很全面
今天就以西门子 S7-1200PLC 高速计数器为主以及实例来做讲解,S7-1200 CPU 提供了最多 6 个(1214C )高速计数器 ,其独立于 CPU 的扫描周期进行计数。
可测量的单相脉冲频率最高为 100KHz ,双相或 A/B 相最高为 30KHz ,除用来计数外还可用来进行频率测量,高速计数器可用于连接增量型旋转编码器,用户通过对硬件组态和调用相关指令块来使用此功能。
一、高速计数器工作模式
高速计数器定义为 5 种工作模式
1、计数器,外部方向控制 。
2、单相计数器,内部方向控制 。
3、双相增 /减计数器,双脉冲输入。
4、5A/B 相正交脉冲输入。
5、监控 PTO 输出。
每种高速计数器有两种工作状态。
1、外部复位,无启动输入。
2、内部复位,无启动输入。
所有的计数器无需启动条件设置,在硬件向导中设置完成后下载到 CPU 中即可启动高速计数器,在 A/B 相正交模式下可选择 1X(1 倍) 和 4X(4 倍)模式,高速计数功能所能支持的输入电压为 24V DC, 目前不支持 5V DC 的脉冲输入,表 8-1 列出了高速计数器的硬件输入定义和工作模式。
并非所有的 CPU 都可以使用 6 个高速计数器,如 1211C 只有 6 个集成输入点,所以最多只能支持 4 个(使用信号板的情况下)高速计数器。
由于不同计数器在不同的模式下,同一个物理点会有不同的定义,在使用多个计数器时需要注意不是所有计数器可以同时定义为任意工作模式。
高速计数器的输入使用与普通数字量输入相同的地址,当某个输入点已定义为高速计数器的输入点时,就不能再应用于其它功能,但在某个模式下,没有用到的输入点还可以用于其它功能的输入监控 PTO 的模式只有 HSC1 和 HSC2 支持,使用此模式时,不需要外部接线, CPU 在内部已作了硬件连接,可直接检测通过 PTO 功能所发脉冲。
二、高速计数器寻址
CPU 将每个高速计数器的测量值,存储在输入过程映像区内,数据类型为 32 位双整型有符号数,用户可以在设备组态中修改这些存储地址,在程序中可直接访问这些地址,但由于过程映像区受扫描周期影响,在一个扫描周期内,此数值不会发生变化,但高速计数器中的实际值有可能会在一个周期内变化,用户可通过读取外设地址的方式,读取到当前时刻的实际值。以 ID1000 为例,其外设地址为“ ID1000 :P”。表 8-2 所示为高速计数器寻址列表
三、频率测量
S7-1200 CPU 除了提供计数功能外,还提供了频率测量功能,有 3 种不同的频率测量周期: 1.0 秒, 0.1 秒和 0.01 秒,频率测量周期是这样定义的:计算并返回新的频率值的时间间隔。返回的频率值为上一个测量周期中所有测量值的平均,无论测量周期如何选择,测量出的频率值总是以 Hz( 每秒脉冲数 )为单位。
四、高速计数器指令块
高速计数器指令块,需要使用指定背景数据块用于存储参数。图 8-5 所示为高速计数器指令块
五、应用举例
为了便于理解如何使用高速计数功能,通过一个例子来学习组态及应用。
假设在旋转机械上有单相增量编码器作为反馈,接入到 S7-1200 CPU, 要求在计数 25 个脉冲时,计数器复位,并重新开始计数,周而复始执行此功能。
针对此应用,选择 CPU 1214C ,高速计数器为: HSC1 。模式为:单相计数,内部方向控制,无外部复位。据此,脉冲输入应接入 I0.0 ,使用 HSC1 的预置值中断( CV=RV )功能实现此应用。
组态步骤:
先在设备与组态中,选择 CPU ,单击属性,激活高速计数器,并设置相关参数。此步骤必须实现执行, 1200 的高速计数器功能必须要先在硬件组态中激活,才能进行下面的步骤
添加硬件中断块,关联相对应的高速计数器所产生的预置值中断
在中断块中添加高速计数器指令块,编写修改预置值程序,设置复位计数器等参数
将程序下载,执行功能
1、硬件组态
选中 CPU 如图 8-6
图 3 所示为选择属性打开组态界面
激活高速计数功能如图 4
计数类型,计数方向组态如图 5 所示
1 此处计数类型分为 3 种, Axis of motion( 运动轴 ),Frequency (频率测量),Counting( 计数 )。这里选择 Counting
2 模式分为 4 种: Single phase( 单相 ), Two phase (双相) , AB Quadrature 1X(A/B 相正交 1 倍速) , AB Quadrature 4X (A/B 相正交 4 倍速)。这里择 Single phase
3 输入源,这里使用的为 CPU 集成输入点。
4 计数方向选择,这里选用 User program (internal direction control) (内部方向控制)
5 初始计数方向。这里选择 Count up (向上计数)
初始值及复位组态如图 6
预置值中断组态如图 7
组态添加的硬件中断,如图 8-13 有图
地址分配与硬件识别号如图 9
至此硬件组态部分已经完成,下面进行程序编写
2、程序编写
将高速计数指令块添加到硬件中断中
图 12 定义高速计数器背景数据块
程序视图如图 13
1 这里就是图 9 中系统指定的高速计数器硬件识别号,这里填 1
2 “1”为使能更新初值
3 “0”新初始值为 0
至此程序编制部分完成,将完成的组态与程序下载到 CPU 后即可执行,当前的计数值
可在 ID1000 中读出 ,关于高速计数器指令块,若不需要修改硬件组态中的参数,可不需要调用,系统仍然可以计数。
以上,欢迎动动手分享及收藏!
(博途)S7-300PLC传送带工件计数控制程序设计
关注“PLC发烧友 ”,一起涨知识!
传送带想必在工控界并不陌生,商场的自动扶梯,机场的自动人行道,码头上自动装卸货传送带,工厂生产流水线,农业机械中(联合收割机、插秧机)都有应用,传送带上传送的物品肯定是要得知它传送了多少物品,那么如何得知呢?我们可以采用PLC计数器指令来实现,下面就带大家来完成传送带工件计数控制程序的设计。
01控制要求
传送带输送40个工件,用光电传感器计数,当计件数量小于35时指示灯常亮,当计件数量等于或大于35时指示灯闪烁,当计件数量为40时,10S后传送带停止,同时指示灯熄灭。
02 IO分配表
03组态配置
第一步: (点击添加新设备,选择CPU 315-2 DP版本号根据实际版本来设定,点击确认)
第二步: (项目树—PLC变量创建一下变量地址)
04编写程序
第一步: (传送带电机的启动与停止控制)
第二步: (工件计数及比较)
05演示运行
第一步: (启动,在程序段1中, 当按下启动按钮M3.0,M3.0常开触点接通,Q124.0线圈通电自锁,传送带电机启动运行)
第二步: (工件计数,在程序段2中,当传送带电机运行时,Q124.0常开触点接通,工件每次经过光电传感器时,光电开关接通1次,M3.3常开触点闭合1次,C0的当前值MW100加一,MW100<35时,Q124.1线圈一直通电, 指示灯常亮,MW100≥35时,指示灯每秒闪烁1次, MW100≥40时,定时器TO延时10s。 延时10S时间到,计数器C0复位,程序段1中TO常闭断开,传送带电机停止。)
来源:PLC发烧友,作者:技成-徐陈爽,未经授权请勿转载!评论处大家可以补充文章解释不对或欠缺的部分,这样下一个看到的人会学到更多,你知道的正是大家需要的。。。回复:”西门子全套 ”资料,可领含手册、案例、软件等资料包,不要忘记领取哦~
相关问答
plc如何设计计数范围?
PLC本身固有的计数器最大计数范围是65535,所以一般情况下可以直接计数,调用计数器C,赋值50000即可。具体的程序如下(以三菱的PLC程序为例)一、x0设为计数...
光电开关导通一次plc计数器怎么计数多次?
你没有用上升沿指令。你必须要用上升沿指令才能只计数一次。因为光电开关导通一次的时间里,实际上CPU已经执行了几个扫描周期了,所以这个计数其实是光电开关导...
plc加减计数器怎么用?
使用西门子PLC加减计数器需要按照以下步骤进行:1.明确可以使用西门子PLC加减计数器进行计数操作。2.西门子PLC加减计数器是一种可编程逻辑控制器,能够实现对...
信捷plc计数+比较指令如何编程?
学习plc的话,首先要对整个目标系统有个比较清晰的了解,对动作流程,检测数据,控制节点了解详实,通过模拟或者实际测试,发现总结实际运行中的不足。另外,对...
plc位计数器指令怎样理解?
PLC位计数器指令是一种在编程逻辑控制器(PLC)中定义和使用计数器的指令。该指令允许程序员使用PLC来进行计数操作。一个PLC位计数器指令通常包括以下几个要素:...
信捷一体机Plc计数器怎么编程,而且文本要显示计数数量?
只是一个计数功能从屏幕显示这个很简单在程序里拉一个计数器快就行了设置好复位端只是一个计数功能从屏幕显示这个很简单在程序里拉一个计数器快就行了设置好...
信捷plc计数+比较指令如何编程?
要编写信捷PLC计数和比较指令,需要使用特定的指令符号和参数来描述要执行的操作。编程时需要先定义计数器和比较器的初始值和上限值,然后使用计数和比较指令在...
plc怎么用计数器实现一键启停?
要使用计数器实现PLC的一键启停功能,可以按照以下步骤:1.设置一个启动按钮和一个停止按钮的输入信号。2.使用一个计数器指令,将启动按钮的信号作为输入,...
plc长度计算方法?
PLC测量长度一般都是使用电子尺或接线式编码器。电阻尺可以直接测量出绝对长度、测量精确、使用简单等特点。我用的是良石技术的LS21-E4KT电阻尺模块,将电子尺...
三菱PLC怎样的指令才能在文本显示器中显示计数值?
文本可以直接读取PLC寄存器,比如计数器C0的值,MOVC0D0文本这边可以用数据显示器设置寄存器号D0、数据位16或1个寄存器,其他的设置你根据需要来修改。文本可以...