200smart 递增递减指令功能作用,累加器存储区AC 0 AC 1 AC 2 AC 3 如何使用
最佳答案
1、
INC_X 递增指令,对输入值 IN 加 1 并将结果输入 OUT 中。
该指令,前面的 INC 是递增的意思,下划线后面的 X,这个 X 可以是:B、W、DW;
那就分成了三个指令,INC_B、INC_W、INC_DW
INC_B 最后的B,表明操作数的类型为 BYTE ,那就是将 IN 脚的字节自加1后赋值给BYTE 型的 OUT;
INC_W 最后的W,表明操作数是整数,那就是 IN 脚的整数自加1后,赋值给 INT型的 OUT;
INC_DW 最后的DW,表明操作数是双整数,那就是IN 脚的双整数自加1后,赋给双整型的 OUT;
每一个指令又分为二种情况:
第一种是,操作数 IN 和 OUT 是同一个变量,比如:
INC_B,操作数 IN 是 VB0,操作数 OUT 是 VB0,那就是 VB0 自加1;
第二种是,操作数 IN 和 OUT 不是同一个变量,比如:
INC_B,操作数 IN 是 VB0,操作数 OUT 是 VB1,那就是 VB0 自加 1的值存储在 VB1,原 VB0 的值并不改动;
DEC_X 指令是递减指令,只是做减1操作,其余与上面的解释类同。
有关这方面的内容,可以参考《系统手册》 7.8.4 递增和递减
2
CPU 提供了四个 32 位累加器(AC0、 AC1、 AC2 和 AC3)。
可以按位、字节、字或双字访问累加器中的数据。被访问的数据大小取决于访问累加器时所使用的指令,当以字节或字的形式访问累加器时,使用的是数值的低 8 位或低 16 位。当以双字的形式访问累加器时,使用全部 32 位。
关于累加器的内容可参考系统手册第 4.2章节。
3、结合上面的指令
INC_B AC0 那就是 AC0 的低 8 位,做字节加1再存回 AC0 的低 8 位
INC_W AC0 那就是 AC0 的低 16 位,做整数加1再存回 AC0 的低 16 位
INC_DW AC0 那就是 AC0 所有位看成一个双整数,做双整数加1再存回 AC0。
另外强调一点 AC0 寄存器最好是先赋值,也就是它的值在使用时,要由程序保证它的可用性。
4、系统手册链接
S7-200 SMART V2.5系统手册
https://support.industry.siemens.com/cs/document/109745610
提问者对于答案的评价:
原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc281680.html