技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > 分析两个stl程序

分析两个stl程序

郑志武 发布于2012-12-17 17:29 56 0 标签:

请参照图片程序,给出详细解释


图片说明: 1,timer&analog 2,analog

佳答案

network1

set//置位rlo(逻辑运算结果位)
=#ok//赋值给ok,ok=true
clr//清除rlo
an#present//取present变量的状态,并取反,此时rlo的状态和present取反后的状态一致;
jcfend//若rlo为true,则跳转到fend处,没猜错的话fend在本fc(或fb)的结尾处;

l#ch_1//装载ch_1的值(到accu1)
tlw6//传递(accu1的值)到lw6,lw6是本地堆栈区的第3个字,即lb6和lb7两个字节;

lb#16#0//装载字节型的16进制常数0;
t#byte_00//传递给byte_00

l#paw//装载paw的值;
t#paw_addr//传递给paw_addr

a#beckhoff//取beckhoff变量的状态,此时rlo的状态和beckhoff变量的状态一致;
jcbkf//若rlo的值为true则跳转到bkf处;bkf应是本fc(或fb)的另一个network;

network2:writesiemenspr

l#paw_addr//装载paw_addr变量的值(到accu1中);
itd//将accu1的值转换成双整数;
ll#8//装载长整型实数8(到accu1中,accu1里面的数据被装载到accu2中),
*d//将accu2中的数据和accu1中的数据相乘,结果放在accu1中;
lar1//将accu1中的内容装载到ar1中(ar1是地址寄存器1),此时ar1的值是paw_addr*8之后的结果,根据这个程序的功能,*8相当于左移3位;
llw6//装载本地堆栈区第3个字的内容到accu1,结合前面的赋值,lw6保存了ch_1变量中的值;
tpqw[ar1,p#0.0]//将accu1的值传递到pqw(输出过程通道)ar1+p#0.0偏移后的地方,ar1如上所述,+p#0.0是在ar1现有地址内容的基础上加0个字节和0个位,即不偏移,至于为什么这样用后面给你解释;
l0//装载常数0;
t#error//传递给变量error;
set//置位rlo;
=#ok//赋值给ok;

这应该是写某一外围设备的程序吧?paw应该是该外围设备的地址。

不知道你什么地方比较难懂,我就根据自己学习过程中比较困难的地方给你说吧。
jc:条件跳转指令,当rlo结果为true(也可以说是为1)时,程序跳转到制定的地方,本程序中是跳转到fend处,从跳转指令到跳转目的地之间的程序在该扫描周期内不再执行。
ar1:地址寄存器ar1,是一个32位的存储空间,它的每几个位的组合是有不同意义的,不想accu1那样代表一些数值,比如说ar1的后三位代表的是位地址信息,一个字节有8个位,位0-位7,那么用3个二进制位就可以搞定了,000-111。
晕1000字以上了,给你图片吧!


图片说明:1,1

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签