三菱PLC的特殊模块的读写指令 点击:1384 | 回复:6



工控学徒

    
  • 精华:5帖
  • 求助:0帖
  • 帖子:218帖 | 1663回
  • 年度积分:0
  • 历史总积分:9769
  • 注册:2002年12月13日
发表于:2009-05-06 23:13:50
楼主
三菱有专门两条指令实现对模块缓冲区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的缓冲区中。



eagertoma

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 122回
  • 年度积分:0
  • 历史总积分:146
  • 注册:2008年10月19日
发表于:2009-05-11 15:26:50
1楼
其实除了上述办法,在Q系列中还可以使用MOV D Un\Gn的指令来实现

thr47464764

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 29回
  • 年度积分:0
  • 历史总积分:276
  • 注册:2008年10月05日
发表于:2009-09-05 15:42:59
2楼

上面解析的能够理解,可是实际应用中了,比如FX2N-2AD,输入为电压信号,可是这个程序怎么写啊 ,FX2N-2AD里面好多的模块和BFM,怎么读取数据信息

JSCY

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 29回
  • 年度积分:0
  • 历史总积分:70
  • 注册:2006年4月04日
发表于:2009-09-06 20:32:29
3楼

有这方面的手册参考,涉及到输入信号的增益及偏置设定,输入值的读取,根据BFM的内容进行程序的编写,有空交流QQ435752973

 

骷髅反上帝

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 165回
  • 年度积分:0
  • 历史总积分:5085
  • 注册:2006年5月17日
发表于:2009-09-06 20:55:48
4楼

我就不知道楼主发这个帖子是要干什么啊???????????

你用特殊模块你得查特殊模块手册,否则你也没法用啊!!!

工控学徒

  • 精华:5帖
  • 求助:0帖
  • 帖子:218帖 | 1663回
  • 年度积分:0
  • 历史总积分:9769
  • 注册:2002年12月13日
发表于:2009-09-07 12:48:26
5楼
引用骷髅反上帝 的回复内容:

我就不知道楼主发这个帖子是要干什么啊???????????

你用特殊模块你得查特殊模块手册,否则你也没法用啊!!!




嘿嘿,只是加上自己的理解在这里总结一下! 有时候光看可能理解的并不太深!

9515136

  • 精华:0帖
  • 求助:40帖
  • 帖子:305帖 | 1715回
  • 年度积分:0
  • 历史总积分:6747
  • 注册:2004年9月09日
发表于:2009-09-08 19:09:06
6楼

楼主的第二个图,我一般会用一个X0,然后把输出并联。。。

 


热门招聘
相关主题

官方公众号

智造工程师