三菱plc怎么读取程序数据,三菱plc怎么读取程序数据来源?

首先附上测试程序

三菱plc怎么读取程序数据,三菱plc怎么读取程序数据来源?

图1

三菱plc怎么读取程序数据,三菱plc怎么读取程序数据来源?

图2

通过依次点动M100,M101,M102,M103,M104,M105,分别将"ABCDEFGHIJKLMN"传送至队列,结果如图3所示。SFWRP是先入先出写入数据的指令,通过SFWRP指令,字符串被依次写入D101~D107中,一共占用7个寄存器,加上D100(存储队列中的数量),一共是需要8个寄存器,所以[SFWRP D0 D100 K8]中的K8指的是分配8个寄存器。

三菱plc怎么读取程序数据,三菱plc怎么读取程序数据来源?

图3

点动M10,触发SFRDP指令,SFRDP是先入先出读取数据的指令,每点动一次M10,会从队列中提取出一个寄存器的内容,然后后边寄存器的内容会依次向前一个寄存器进行移位,当设置[SFRDP D100 D300 K8]中的第三个操作数为K8时,数据读取就会出问题,如图4所示,

三菱plc怎么读取程序数据,三菱plc怎么读取程序数据来源?

图4

每次读取一个数据,后边的空出的寄存器会被最后一个寄存器D107(“MN”)的内容依次填充,都读取完成后,最后发现D101~D107中都会变成D107中的("MN"),如图5所示

三菱plc怎么读取程序数据,三菱plc怎么读取程序数据来源?

图5

当设置[SFRDP D100 D300 K9]中的第三个操作数为K9时,出栈队列就是正常的,如图6所示

三菱plc怎么读取程序数据,三菱plc怎么读取程序数据来源?

图6

全部读取完成后的结果如图7所示

三菱plc怎么读取程序数据,三菱plc怎么读取程序数据来源?

图7

综上判定,读取数据指令SFRDP中的第三个操作数一定要大于SFWRP中的第三个操作数,但是当分配的队列寄存器足够多的时候,比如大于实际要存的数据,则第三个操作数的设定值可以相等,所以使用SFWRP与SFRDP指令时,实际存储的数据一定不能大于所分配的队列寄存器。

本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 sumchina520@foxmail.com 举报,一经查实,本站将立刻删除。
如若转载,请注明出处:https://www.sumedu.com/faq/285946.html