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的缓冲区中。