解读三菱PLC的特殊模块的读写指令

三菱有专门两条指令实现对模块缓冲区BFM的读写,即:TO指令和FROM指令,其它指令都是这两个指令的变形,如:DTO表示32位操作指令(无D时,表示16位操作指令),TOP表示在控制命令的上升沿时执行对BFM的写入,可以根据实际情况分别使用,FROM也同样。下面对这两种指令的使用方法做一下简要介绍。

1、FROM指令(FNC78)

FROM指令的功能是实现对特殊模块缓冲区BFM指定位的读取操作。指令格式如下:

指令中各软元件、操作数代表的意义如下:

CC:FROM指令执行的启动条件。启动指令可以是X、Y、内部继电器M等。

Kn1:模块地址的高位,K代表模块地址的高位用十进制数表示,也可以用十进制数来表示。如:当高速计数器模块A1SD62的输入输出地址分别是XA0F~XB1F及YA0F~YB1F时,此值可以是K10,也可以是HA。实际上此值是指定特殊模块在基板上的位置,在实际设置时,也可按每个位置为16点来计算得到此值(如一个模块占32点则为两个位置)。

Kn2:为要读取的缓冲区的地址,可以是十进制数(以K打头),也可以是十六进制数(以H打头)。此地址只和模块有关,和模块在基板的位置无关。

Kn3Mn4:读取的数据在PLC CPU中的存储地址(目标地址)。

Kn3代表从特殊模块BFM读取的二进制的位数,以4位(bit)为单位,n3允许值为1~8。如:K4代表16位(bit)。

Mn4代表数据在PLC存储区域的首地址。M代表中间继电器,表示读取的数据存储于中间继电器。存储位置也可以是数据寄存器(常用),此时就不需要前缀Kn3了。

Kn5:需要传送的点数。采用FROM、FROMP格式时,以16位二进制为单位,K1代表读取16点,K2代表32点等。采用DFROM、DFROMP格式时,以32位二进制为单位,K1代表读取32点,K2代表64点等。n5的范围为1~32767。
说明:

0行:当X0=1时,读取1号(第1个K1)模块缓冲区地址29(K29)的数据保存到M0~M15的16点(K4)中间继电器中。

10行:在X0的上升沿,读取1号(第1个K1)模块缓冲区地址29(K29)的数据保存到M0~M15的16点(K4)中间继电器中。

20行:当X0=1时,读取1号(第1个K1)模块缓冲区地址29(K29)的数据保存到寄存器D0中。

30行:当X0=1时,读取1号(第1个K1)模块缓冲区地址29(K29)和30中的数据保存到寄存器D0和D1中。

40行:当X0=1时,读取1号(第1个K1)模块缓冲区地址29(K29)和30中的数据保存到寄存器D0和D1中。

50行:当X0=1时,读取1号(第1个K1)模块缓冲区地址29(K29)~32中的数据保存到寄存器D0~D3中。

60行:当X0=1时,读取第10个模块缓冲区H160,H161的数据到X700~X711中。

2、TO指令(FNC79)

TO指令是将PLC中的数据写入到特殊模块的缓冲区内。其指令格式如下:

指令中各软元件、操作数代表的意义如下:

(D)TO(P):指令代码,其中D代表32位操作指令,P代表触点上升沿触发TO指令。

Kn1:同FROM指令。

Kn2:要写入数据的模块缓冲区地址(目标地址)。

Kn3Mn4:源数据在PLC中的存储地址。Kn3代表需要写入的二进制位数,以4位(bit)为单位,如K4代表16位,允许输入的值为K1~K8。Mn4代表源数据在PLC中的存储地址。源数据也可以是16位数据寄存器D(常用),此时就不需要前缀Kn3了。

Kn5: 需要传送的点数。允许的值为K1~K32767。

举例:

含义:在X0的上升沿,把D120中的数据写入到第8个模块地址为6的缓冲区中

 

Comments: 0 (Discussion closed)
    There are no comments yet.