设为首页
收藏本站
PLC技术网
开启辅助访问
切换到宽版
登录
注册哦
只需一步,快速开始
微信扫码登录
门户
Portal
论坛
BBS
导读
Guide
排行榜
Ranklist
搜索
搜索
本版
文章
帖子
用户
PLC论坛-全力打造可编程控制器专业技术论坛
»
论坛
›
工控技术交流区
›
『国外:三菱/西门子/欧姆龙/松下』
›
西门子PLC高速计数器的模拟控制和测速控制 ...
返回列表
发新帖
[西门子]
西门子PLC高速计数器的模拟控制和测速控制
[复制链接]
87765
|
0
|
2024-8-11 09:08:07
|
显示全部楼层
|
阅读模式
点击"工控学习社"关注我们吧!
在上一篇文章中给大家介绍了西门子S7-200 PLC的高速计数器的基本使用方法(没看过的朋友记得翻回去看一下哦,不然程序有可能会看不明白),而一般来说高速计数器常用于模拟控制和测速控制,下面就分别讲一下这两个控制例子的程序设计和编程思路。
一、高速计数器的模拟控制
高速计数器的模拟控制是用S7-200 PLC的高速计数器来累计来自模拟量/频率转换器(A/F)的脉冲来模拟电压值的。假设频率转换器将输入电压(0-10V)转换为矩形脉冲信号(0-2000Hz),再将此信号送入CPU 高速记数器的输入端并累计脉冲数。当预置的间隔时间到后,通过累计脉冲数,计算出被测模拟电压值。
主程序:
主程序中在第一个扫描周期调用初始化程序SBR0,仅在第一个扫描周期标志位SM0.1=ON时由子程序实现初始化。
子程序:
在子程序中,首先把高速计数器HSC1的控制字节SMB47置为16#FC,其含义是:加计数,可更新预置值(PV),可更新当前值(CV),用指令HDEF把高速计数器HSC1置成工作模式0,即没有复位或起始输入,也没有外部的方向选择。当前值SMD48复位为0,预置值SMD52置为FFFF(十六进制),定时中断0间隔时间SMB34置为100ms,用ATCH指令将中断程序0分配给中断事件10,即定时中断0,并用ENI指令允许中断,用指令HSC启动高速计数器HSC1。
中断程序:
因为定时中断0间隔时间SMB34置为100ms,所以每100ms调用一次中断程序0,读出高速计数器的数值存到VD100,后将其置零。案例是通过频率转换器将输入电压(0-10V)转换为矩形脉冲信号(0-2000Hz),通过HSC1的计数值及变换关系(0-2000kHz对应于0-10V)来求被测的模拟电压值。SHR-DW为右移指令,将VD100的二进制位右移一位,相当于是除于2,也就是将VD100的脉冲数除以2,然后将低位的VB103输出到QB0,以便通过Q0.0~Q0.7的LED来显示被测的电压值,显示值与10倍真实电压值相对应。
关于计算部分,我们举例计算一下,假如计数值为200,200除以2是100,那么被测的模拟电压值就是10.0V。因为计数器100ms内共有200个计数脉冲,这正好与2000Hz-10V相对应, 假设计数值为104,则实际电压值应为5.2V。注意:定时中断间隔时间可在5-255ms的范围内变化,我们可以通过设立一个标志,可根据需要来延长高速计数器的求值和复位时间,这样就有更长的扫描间隔,以便提高精确度,同时也会带来更长的更新时间。
二、高速计数器的测速控制
高速计数器的测速控制是利用高速计数器来实现测量转速,比如说测电机的转速。其中会利用到脉冲数和电机转速的计算。设计思路是主程序中调用子程序进行初始化,子程序中做高速计数器及中断的定义,中断程序中做转化计算部分,下面我们详细看一下程序。
主程序:
在PLC上电运行的第一个扫描周期执行一次子程序,用于程序运行的初始化设置。
子程序:
在子程序中,首先对VB0和VD0进行清零,VB0用于记录累加数据的次数,VD0累加数据的中间变量。接着设置高速计数器HSC0的控制字节为16#F8,即更新当前值,加计数,用指令HDEF把高速计数器HSC0置成工作模式0,为单相计数输入,没有外部控制功能。当前值SMD38复位为0,定时中断0间隔时间SMB34置为50ms,用ATCH指令将中断程序0分配给中断事件10,即定时中断0,并用ENI指令允许中断,用指令HSC启动高速计数器HSC0。
中断程序:
中断程序是每隔50ms扫描刷新一次,采用加法指令将高速计数器HC0的当前计数值和累加数据变量VD0相加一次,用于数据的累加,同时用递增指令对VB9进行加1,即记录累加的次数,这里再执行一次HSC指令是为了将初始值寄存器SMD38再次写入高速计数器HC0,使当前值为0,以便于下一次的定时采样。
当累加数据的次数等于32次时,执行运算指令,除法指令除以32是计算出累计脉冲数的平均值,乘以100是将平均值转化成以转/分单位的数据,并存到VD4中,用DI_I指令是将双整数转换成整数,存储到VW10中,VW10就是电机的转速,后面的传送指令是对VB0和VD0进行清零,用于下一次重新开始累加。
以上就是高速计数器的模拟控制和测速控制,这几个控制可能在实际应用中会应用的较多,还是有必须掌握一下的哦,你学废了吗?
(技成培训网原创,作者:蔡慧荥,未经授权不得转载,违者必究)
发现“在看”和“赞”了吗,戳我试试吧
本帖子中包含更多资源
您需要
登录
才可以下载或查看,没有账号?
注册哦
x
回复
举报
返回列表
发新帖
高级模式
B
Color
Image
Link
Quote
Code
Smilies
您需要登录后才可以回帖
登录
|
注册哦
本版积分规则
发表回复
回帖后跳转到最后一页
工控学习社
回复楼主
返回列表
『国外:三菱/西门子/欧姆龙/松下』
『国产:台达/汇川/信捷产品交流区』