打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
模拟信号、脉冲信号在编程中的处理及相关转换公式的推导与运用

模拟信号、脉冲信号在编程中的处理及相关转换公式的推导与运用
         一、网友求助:“大家好,小弟有个问题想请教一下,我现在用的是FX2N的主机,还有个编码器,分辨率是5000脉冲转一圈。现在我知道滚轮的半径是50毫米。这样的话就是一个脉冲合到0,00314毫米。现在我是用的变频器高速和低速来控制的。提前有一段距离换到低速。在停机切断。我要是要1米,提前50CM换低速,到1米的时候停止,切断,当我设1米的时候是要编码器转多少呀。谢谢呀。中间要乘以小数该怎么办呀,有什么好的方法。谢谢”

       回复:““分辨率是5000脉冲转一圈。现在我知道滚轮的半径是50毫米。这样的话就是一个脉冲合到0,00314毫米。”
       1、你算错了,应该为:50×2×3.1415 ÷5000=0.06283,即一个脉冲折合0.06283毫米,可知1米长编码器输出脉冲数为:

                   1000 ÷0.06283=15916                 0.950米长的脉冲数=950÷ 0.06283=15120
       2、如果你用PLC编程,编码器输出的脉冲频率应低于PLC高速计数器的最高计数频率(一般为10-20KHz)如高于这个频率,应加一个分频器或计数器将此脉冲降低到低于10KHZ以下,再接入高速计数器的输入端。高速计数器的预置数为0,启动计数器时,使计数器从0做加计数,再选用二个比较器,一个比较值为15120,另一个为15916,与高速计数器的输出值比较,当计数值=>15120时,第一个比较器输出信号,控制变频器变低速运行,当计数值=>15916时,第二个比较器输出信号使电机停且切割。
        如果你用了外加分频器或计数器,上面二个比较器的比较值应除以分频值。比如外加4分频,则进入高速计数器的脉冲频率=编码器输  出频率的4分之1,所以比较值应该为:
                     15120÷4=3780 2                 15916÷4=3979
        二、网友求助:“电机连着主轴,主轴带个增量式旋转编码器,已知编码器为1600线,主轴直径为150mm, 主轴为变速转动。 求1、主轴的当前时刻转速是多少?2、编码器一个脉冲所对应的长度是多少?3、当长度为2000mm时,编码器输出多少个脉冲? 如果所列的已知条件不充分,请假设已知条件。 如何计算?请列出公式!”
       回复:“你说的“编码器为1600线”是不是指编码器旋转一周输出的脉冲数,如是,可以这样计算:主轴直径为150mm,其周长=150×3.14=471mm,那么:
      1、编码器一个脉冲所对应的长度=471÷1600=0.294mm。
      2、主轴的当前时刻转速V=从当前时刻起连续计1秒时的脉冲数N,再乘以0.294mm。即:V=0.294?N (mm / s)。
      3、当长度为2000mm时,编码器输出的脉冲个数为:精确计算=2000×1600÷471 =6794,一般计算=2000÷0.294=6803 ”
        三、有一网友求助:“请教各位大侠,s7-200系列中模拟量输入4到20毫安电流(温度传感器)转换成电压后(2-10v)怎么计算他的数字量转换温度公式是什么。温度测量范围(—100到+500)”
         我给他的回帖是:我帮你解释这个问题:根据你提的数据,-100度对应 4ma,+500度对应是20ma,通过一个500欧电阻,将4-20ma电流信号转换为2-10V的电压信号,去接0-10V的模拟量输入的模拟转换块,假设模拟块的参数是:1V 对应转换的数字量为 3200,则:2 V 对应数为:6400; 10 V 对应数为:32000。设MW10 为模拟块转换的数字量,VW100 为通过转换公式求出的实测温度值。其数字量转换为温度的公式 :



        在十字坐标中,横轴代表数字量MW10,纵轴代表温度VW100,信号4ma对应温度为-100 ,对应数字为6400,其坐标点为A。信号20ma对应温度为+500 ,对应数字为32000,其坐标点为B。连接AB二点,其AB线段就是温度与对应数字量的关系曲线。当信号的对应数字量为MW10,其与AB线交点M,M点对应的温度值为VW100。

         四、网友求助:“如何使用200统计流量 :我使用的一个流量计它能输出脉冲信号,1000个脉冲为一个立方的,也可以输出4-20毫安的电流信号,20毫安对应每小时500立方,我现在的想用226的CPU来计算一个月该流量计的总流量,最好直接使用CPU模块实现,不建议再使用特殊模块。谢谢了。”
       回复:下面将分别对流量计输出的二种信号如何处理作以说明,供你参考。
              一、使用4-20ma的电流信号求瞬时流量及统计流量:
         (一)、你用的PLC是S7-200,可选用EM235模块,且设置0-20ma电流输入,这样就可用流量计输出的4-20ma 的电流信号去接EM235的模拟量输入端。
         (二)、求出瞬时流量的公式:(1)、从模块的参数可知:20ma对应的转换数字量为32000,则4ma 对应的数字量32000 ÷20×4 =6400。 (2)、20毫安对应每小时500立方,那么20毫安对应每0.1秒钟为500 ÷36000=0.0139立方,而“0.0139立方”即为流量计输出20ma时每0.1秒的瞬时流量,此时对应的模块的数字量为32000。而流量计输出4ma时对应的瞬时流量=0,但模块此时的数字量为6400,即瞬时流量Vx与对应的数字量AIWx的关系是一条不过0点的直线,可推导出瞬时流量Vx的公式(1),关于公式推导请见下图:

        (三)、PLC编程处理:采用时间中断的方式进行瞬时流量的采集与累加:中断时间为0.1秒,即每隔0.1秒从模块读取一次数据,按上式(1)求出瞬时流量Vx,再把Vx值加在累积区(如VD10)中,即可。见下梯形图:

        程序说明:VD10为累计流量存数区, VD112为瞬时流量存数区,时间中断时间设定为0.1秒,中断服务程序是以浮点数按转换公式求出瞬时流量VD112,及累计流量VD10。

                          二、用脉冲计数方式求统计流量
       如果用流量计输出的脉冲信号进行累计流量,可省掉EM235.,其编程有二种方法:
      1、求累计流量,也求瞬时流量。
      2、只求累计流量,不求瞬时流量。
       我们知道:用1秒时间对输出脉冲进行计数采样,其计数值即为瞬时流量,N秒内的瞬时流量的累加值即为N秒内的累计流量。显然,用脉冲信号进行累计流量的操作,要比用4~20ma电流信号进行累计流量的操作要简单的多,因为它可以不求瞬时流量,直接用计数器对脉冲信号进行累加计数就可以了,其计数值就是对应时刻的累计流量值。
        有些情况如:要求有瞬时流量显示,或需要用瞬时流量做闭环控制的反馈信号时,就得需要求瞬时流量的。怎样求瞬时流量呢?按一般由硬件或单片机构成的数字仪表,都是采用定时计数采样的方法,即采用一个固定宽度的方波脉冲控制计数器的控制门,在此方波脉宽内,容许计数器计数,计数器是由0开始计数的,方波结束,计数器停止计数,此时计数器记下的数,即为瞬时流量。这种采样计数方式不适合于PLC,根据PLC的特点,我采用时间中断读取计数值的方法:高速计数器设置为带复位的连续计数方式,复位置1时,计数器清0且停止计数,启动计量时,使复位置0,高速计时器从0开始计数。如中断时间设置为0.1秒,则每0.1秒就产生一次中断,每发生一次中断,中断服务程序将执行如下工作:
    1、读取高速计数器的计数值存入累计流量区(如VD10));
    2、用累计流量区(VD10)值-前次计数读取值区(VD14)其差即为0.1秒的瞬时流量值,将差值送入瞬时流量区(VD18);
    3、再将累计流量区(VD10)值送入前次计数读取值区(VD14)。
    这里要强调几点:
    (1)、采用这种方式的程序处理:PLC首次扫描用SM0.1,将VD14(前次读取计数值)清0、调用时间中断子程序,设定中断时间为0.1秒,并使一个位变量如M2.0=0。
   (2)、中断服务程序,用M2.0作程序控制命令:M2.0=1中断程序执行上面的1~3的各条要求的运算操作,M2.0=0 中断程序不执行任何控制动作。M2.0受启动与停止按钮控制:按一下启动(如I1.0)使M2.0=1。中断程序进行读取计数值,运算……,如按一下停止按钮(如I1.1)中断程序不执行任何控制动作,即停止流量的采集与运算。
    (3)、根据显示精度要求,对累计量值或瞬时流量值进行修改,修改后送入对应的显示区。
       以本帖流量计输出脉冲的参数为例:1000个脉冲为一个立方,那么其一个脉冲为0.001立方的流量.。即累计的流量值的精度为0.001立方。如统计较长时间的总流量其精度不需要这么高,比如要求为0.1立方,此时读取的计数值(VD10)应除以100,其商才为显示要求的累计流量值。如果选用的流量计输出脉冲信号幅度为5V或12V,而PLC输入端要求输入信号的幅度为24V,故流量计的输出脉冲信号必需先做电平转换变成24V脉冲信号后,方可接入PLC的计数输入端,这样就得做一块电路板。如果流量精度为0.1立方,可在电路板上的电平转换线路前再增加一块4518(双十进制计数器)集成块,来构成二位十进制计数器,先对流量计输出脉冲进行计数,其输出的脉冲相当对流量计输出脉冲进行除以100的运算处理,再对它进行24V电平转换,去PLC计数口,这样进入PLC计数端的脉冲频率即为一个脉冲代表0.1立方,这样程序就不需对读取的计数值(VD10)进行除以100的运算,直接将读取的计数值送入显示区(VD30)就可以了。而且经过2级十分频后其输出的脉冲频率一定低于200HZ,这样就可用普通输入口进行计数,而不需要用高速计数器计数,可大大的简化编程程序。见下图:

        程序说明:该程序是采用2级十进制硬件计数器先对流量计输出的脉冲信号进行分频后再输入给PLC的普通输入口(I2.0)的,该分频后的脉冲频率低于200Hz,故PLC未用高速计数器,而采用字存储器VW100进行加1计数,其VW100即为流量的累计流量存数区。用秒脉冲SM0.5进行瞬时流量计算,结算结果送入瞬时流量存数区VW104,再把本次的计数值(VW100)存入前次的计数存储区VW102中。
        五、网友求助:“我需要流量信号转换成数字信号,对应的数字信号累加成实际流量吨数输出,然后再采用比较设定吨数到达后停泵,对应的流量量程是80立方。输入的流量信号是4-20MA,请麻烦你给我编一下程序。谢谢啦。”
        回复:1、EM235模块当输入信号为 20MA时对应的数字量AIW4 =32000,对应的流量为80 立方 / 秒 = 8 立方 / 0.1秒。而输入信号为4ma时,对应的数字量=6400,而对应的流量=0,转换公式为:
 
       2、编程处理:
     (1)、采用0.1秒时间中断
     (2)、中断程序:先取模块的数字量AW4送入MW0中,按公式A计算瞬时流量Q,再将其加入累计流量VW100,返回。如累计流量精度为 立方,公式(A)可按整数运算,如累计流量精度为 0.01立方,公式(A)可按浮点数运算。
    (3)、主程序:I1.0为启动开关,按下I1.0,Q2.0=1,泵启动,流量累计开始。
    I1.1 为停止开关,按下I1.1,Q2.0=0,泵停,流量累计停.
    I1.2 为累计流量VW100清0开关,按下I1.2,将累计流量VW100清0.
    VW102 为预置比较值。
   按下I1.0,泵启动,流量累计开始的同时,VW102将时时于VW00比较,当VW100
   大于或等于VW102,Q2.0置0,泵停。相见下图:(公式是按整数运算的)

说明:中断服务程序是按整数运算的,累计流量存数区为VW100,设定值存数区为VW102,可用上位机设置
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
基于PLC的挤出机出口传送带速度同步的程序设计
plc是怎么控制伺服电机的?
三菱PLC高速计数器应用案例(电机测速、流量计、伺服同步、光栅尺控制)
PLC:学习笔记(西门子)4
如何使用高速计数器获得高速速度值?
使用高速计数器测量电机转速
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服