搜索
bottom↓
回复: 9

LD,ORB和ANB及栈

[复制链接]

出0入0汤圆

发表于 2009-5-15 12:46:13 | 显示全部楼层 |阅读模式
对三菱编程手册上的一例题进行练习



LA01 (原文件名:LA01.jpg)

0 : 接于母线的LD X000 将X000值赋给逻辑中间变量LM,为能区别,加步骤号LM0;
1 : LM1 = LM0 } X001 ;

(原文件名:LD02.jpg)

2 : LD X002 将LM1压栈,X002赋给LM2;
3 :LM3 = LM2 & X003;


(原文件名:LD03.jpg)

出0入0汤圆

 楼主| 发表于 2009-5-15 12:53:20 | 显示全部楼层
4 :LDI X004 将LM3压栈,X004赋给LM4 ;
5 :LM5 = LM4 & X005 ;

(原文件名:LD04.jpg)

6 :ORB将栈顶 LM3( = X002 & X003)弹出,与逻辑块值LM5( = (~X004) & X005)相或,
        LM6 = LM5 | LM3 ;
7 :  LM7 = LM6 & X006 ;


(原文件名:LD05.jpg)

8 :ANB 将栈顶LM1(=X000 | X001)弹出,与LM7相与,
       LM8 = LM7 & LM1 ;
9 : LM9 = LM8 | X003 ;
10 : Y007 = LM9


(原文件名:LD06.jpg)

出0入0汤圆

 楼主| 发表于 2009-5-15 12:55:36 | 显示全部楼层
接于母线的LD指令把操作数值赋给逻辑中间变量;后续的LD指令把已运算的逻辑中间变量压栈,然后把它的操作数值赋给逻辑中间变量。
栈顶是紧靠正装载LD指令之前逻辑块的值。
进行压栈操作LD指令开始一个新逻辑块的运算。
ORB,ANB执行出栈操作,并将刚运算的逻辑块值和弹出的栈顶进行与、或运算。
扫描用户程序时如何确定接于母线的LD指令是个问题,也就是接于母线的LD指令有什么唯一的特征?

出0入0汤圆

 楼主| 发表于 2009-5-15 13:13:32 | 显示全部楼层
这是我在08年12月的一篇练习.
实际上,PLC指令解释,原厂手册及例题是最好的参考资料.

出0入0汤圆

发表于 2009-5-15 17:12:10 | 显示全部楼层
扫描用户程序时如何确定接于母线的LD指令是个问题,也就是接于母线的LD指令有什么唯一的特征?
楼主应该是在做语句表到梯形图的时候遇到这种问题。
编译或者解释执行的时候,应该不用考虑LD指令是否是连接在母线上。
类似于三菱的梯形图,因为网络之间是没有标志的。因此在语句表转梯形图的时候,就无法确定一个网络到底什么时候结束,
也就是说无法确定LD 指令是否连接到母线上。
这时,必须向后看很多步才能确定。】
比如
LD X1
OUT Y1
LD X2
OUT Y2
在看到OUT Y2的时候才能知道 LD X2是连接在母线上的。
因此我总结出一个规律:某次压栈(LD)之后 数据一直未和上一级堆栈做预算(ANB ORB)就直接被输出(OUT或者运算指令)了,那么此时可以确定刚刚压栈(LD)的动作就是和母线连接在一起的。
但这种分析很繁琐,我以前做的时候,是分析完最后一个语句,才知道整个语句表可以分成多少个网络。因为多个网络也可以看做成一种并联关系。希望对楼主有用:)

出0入0汤圆

发表于 2009-5-15 18:38:39 | 显示全部楼层
在下之前发的“模拟器”就有这方面的资料。只不过收视率太低,好像没有人想看。哈哈。
大家都想看一个完整的系统,但是一个完整的系统就不是少量代码就能描述出来的了,看起来更头痛。哈哈

出0入0汤圆

发表于 2009-5-15 20:40:39 | 显示全部楼层
堆栈机,不用看ld从哪里来,也不要管哪里去。只要知道昨天,今天,就好了。ld来了进堆栈,ORB和ANB来了和昨天的一对比就可以了。


输出只跟今天相关。

出0入0汤圆

 楼主| 发表于 2009-5-17 13:43:48 | 显示全部楼层
实际上LD堆栈是为ORB和ANB块指令准备的,LD和块指令一一对应;
母线LD压栈的bit实际用不着,这可以多作几个三菱编程手册例题验证.因此,母线LD压栈的bit可不管它,让它自然消失.

出0入0汤圆

发表于 2009-5-17 17:55:52 | 显示全部楼层
【8楼】 bkkman
母线LD压栈的bit实际用不着
=============================
        确实如  bkkman  说的一样。

但是【7楼】 heky
        对程序流程的描述更让人容易理解。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-19 22:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表