首页 理论教育 快速掌握三角函数运算指令的编程

快速掌握三角函数运算指令的编程

时间:2023-10-26 理论教育 版权反馈
【摘要】:Logix控制器的指令系统还可以完成比较复杂的运算,如指数对数运算和三角函数运算,指数对数的运算难以找到实例,本书暂不做讨论。第三个梯级将标签Cycles的值从角度转为弧度,采用的是转换指令RAD,这条指令的执行结果是将角度的值转为弧度的值。最后一个梯级执行正弦函数运算指令SIN,运行结果将产生按照正弦波曲线变化的数据,可用Trend面板来观察曲线的变化。目前,这个值在数据库标签的数据表中被设置为10。

快速掌握三角函数运算指令的编程

Logix控制器的指令系统还可以完成比较复杂的运算,如指数对数运算和三角函数运算,指数对数的运算难以找到实例,本书暂不做讨论。三角函数运算指令如下:

●SIN正弦指令

●COS余弦指令

●TAN正切指令

●ASN反正弦指令

●ACS反余弦指令

●ATN反正切指令

作为时序逻辑控制应用为主的工控产品,三角函数的应用还真的不多见,这里,我们仅用一个正弦函数运算做一个尝试。有时编程产生一个正弦波用于测试,如功能块的高通和低通的模拟测试,改变正弦波的频率,可以观察滤波功能作用的结果,因而大大节省了现场调试的时间。

编写梯级逻辑如图6-14所示,这个例程被安排在一个周期任务中,设定每2ms执行一次,第一个梯级的计数器将按照每2ms加1的时间间隔计数,预置值设定为360,每当完成位置位便复位该计数器。可以看出,这个计数器提供了一个从0~360的周期变化的均匀增长的数据,用此模仿角度的0~360°。

第二个梯级是一个除法指令,将计数器提供的数据分割成若干等分,譬如除以1、2、3、4等,从而改变正弦波的导通角为360°、180°、120°、90°等。除法指令执行的结果被送到目标地址的周期值标签Cycles,该值将作为正弦波函数的运算参数。

第三个梯级将标签Cycles的值从角度转为弧度,采用的是转换指令RAD,这条指令的执行结果是将角度的值转为弧度的值。

最后一个梯级执行正弦函数运算指令SIN,运行结果将产生按照正弦波曲线变化的数据,可用Trend面板来观察曲线的变化。

现在,我们通过Trend面板观察当DIV除以1时,也就是360°的导通角,正弦波的波形图如图6-15所示。这是一个完整的正弦波曲线。

当DIV指令除以2时,也就是180°的导通角,正弦波的波形图如图6-16所示。这是一个半波曲线。

当DIV指令除以3时,也就是120°的导通角,正弦波的波形图如图6-17所示。这是一个2/3个半波的曲线。

当DIV指令除以4时,也就是90°的导通角,正弦波的波形图如图6-18所示。这是一个1/2个半波的曲线。

采用趋势Trend的观察面板来查看不同导通角下的正弦波形,由于是采用除法来改变同一周期时间下的导通角,我们看到的不同形状的波形都是同一个频率,这个频率就是计数器计数到360的周期时间。改变计数器的周期时间,正弦波的频率也就发生了改变,譬如,我们把计数器的计数脉冲分频一下,计数到360所需要的时间翻了一倍,如图6-19所示修改的梯级逻辑。

978-7-111-36030-8-Chapter06-13.jpg

图6-14 获得正弦波曲线的梯级逻辑

978-7-111-36030-8-Chapter06-14.jpg

图6-15 360°导通角的正弦波波形图

978-7-111-36030-8-Chapter06-15.jpg

图6-16 180°导通角的正弦波波形图

978-7-111-36030-8-Chapter06-16.jpg

图6-17 120°导通角的正弦波波形图(www.xing528.com)

978-7-111-36030-8-Chapter06-17.jpg

图6-18 90°导通角的正弦波波形图

然后我们再用趋势Trend的面板来观察,波形图如图6-20所示,频率果然慢了一半。除了用分频计数改变计数器周期时间,还有别的方法吗?改变周期任务的调用时间,也可以收到相同的效果。现在我们周期任务的调用时间是2ms,也就是每隔2ms,计数器累加一次,如果改用3ms或者4ms,波形频率将改变为原来的2/3或1/2。总之,改变计数器的计数频率就改变了正弦波的频率。

显然,正弦波指令运算的结果,幅值是原始的,将标签Sine_Wave乘以某个系数便可得到某个幅值的正弦波。

现在我们再来看看正弦波运算的另外一种用法,梯级逻辑编写如图6-21所示。这是以产生正弦波为例的一段梯级,假定时间周期设置值是以秒为单位的,通过乘法指令,换算为毫秒为单位的计时器所需要的预置值,一个自复位计时器所提供的重复变化的累加量数值,为正弦波值计算提供一个变化参数。

978-7-111-36030-8-Chapter06-18.jpg

图6-19 分频修改正弦波频率的梯级逻辑

978-7-111-36030-8-Chapter06-19.jpg

图6-20 改变频率后的正弦波波形图

最后一个梯级的CPT指令的计算公式,计算结果为正弦波,注意单一运算指令SIN被CPT指令的计算公式引用,完成正弦波运算。

计时器预置值用作正弦波计算的比值分母XDen,计时器累加值用作正弦波计算的变化比值分子XNum。这两个参数的比值,提供了一个在给定周期时间内的0-1的变化量,由于这个比值分子XNum的变化量是与扫描周期时间有关的0~5000ms的精细时间的积累,0-1的实数变化也十分精细,这个精细数据通过SIN指令的运算,得出一个精细的正弦波曲线。标签Max为一个实数,用作正弦波的最大幅值,修改这个值就可以改变正弦波的幅值。目前,这个值在数据库标签的数据表中被设置为10。

创建一个趋势Trend面板,用来监视数据Out_Sinewave标签,可观察到正弦波形,如图6-22所示。这是一个每5s一个完整正弦波的频率,趋势Trend面板设置的X轴的时间是20s,正好可以看到4个完整的正弦波。

将周期时间标签Period从5s改为8s,即正弦波的频率改变为8,趋势Trend面板波形如图6-23所示,可以观察到改变了正弦波频率的波形,X轴的20s时间能看到的是两个半正弦波波形。

978-7-111-36030-8-Chapter06-20.jpg

图6-21 产生正弦波波形的梯级逻辑

978-7-111-36030-8-Chapter06-21.jpg

图6-22 频率为5s的正弦波波形

978-7-111-36030-8-Chapter06-22.jpg

图6-23 频率为8s的正弦波波形

将Max标签的数值在数据表中从10改为8,趋势Trend面板波形如图6-24所示,可见改变了正弦波的幅值,可观察到波形的幅度降低到了原来的4/5。

978-7-111-36030-8-Chapter06-23.jpg

图6-24 频率为5s降幅至4/5的正弦波波形

能够观察到一个完美的正弦波跟好几个因素有关:跟例程的扫描时间有关,跟趋势Trend采样的时间有关,跟趋势Trend的X轴设置即时间坐标有关,跟Y轴设置即幅值坐标有关。例程足够快的扫描时间,计时器的累积值和正弦波形值的计算才会细腻;趋势Trend采样时间最好跟例程扫描时间基本吻合才能充分表现线条的圆润;X轴是时间轴,适当的选择可以观察稀疏适度的波形,这自然跟周期有关联,此处X轴设置的是20s,即数值轨迹标点出现在屏幕直到消失需要20s的时间;Y轴可以选择略高过幅值的坐标值,也可以选择自动适应幅值的方式。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈