1.5 PLC过程控制编程指令
为了能够方便地实现PLC对特殊功能模块的控制’并减少应用指令的条数’统一应用指令的格式’在三菱PLC的特殊功能模块中设置了专门用于PLC与模块间进行信息交换的缓冲存储器(Buffer Memory’BFM)。缓冲存储器数据中包括了模块控制信号位、模块参数等控制条件’以及模块的工作状态信息、运算与处理结果、出错信息等内容。
PLC对模块的控制’只需要通过PLC的数据输出指令在模块缓冲存储器的对应控制数据位中写入控制信号即可。同样PLC对模块的状态检测’也只需要通过PLC的数据阅读指令、读出对应的模块缓冲存储器数据即可。
对于FX2N系列以上版本的PLC’还可采用模拟量读出指令(RD3A;FNC176)和模拟量写入指令(WR3A;FNC177)’对FX0N-3A和FX2N-2AD模块进行编程控制。
因此’对于所有的特殊功能模块’PLC的编程事实上只是不断利用PLC的读写指令对模块缓冲存储器进行读/写操作而已。为此’正确使用PLC的读写指令’是特殊功能模块编程的前提条件。
1.BFM读出FROM(FNC78)
FROM是将特殊功能单元/模块的缓冲存储区(BFM)中的内容读入PLC的指令。图1-3是读特殊功能模块FROM指令的表现形式’其功能是将挨着主单元的第3个(m1=K2)位置特殊功能模块的缓冲寄存器BFM10(m2=K10)开始的6个(n=K6)数据读入基本单元并存在D10~D15中(或者说:当X0为ON时’将2号特殊功能模块内10号缓冲寄存器BFM10开始的连续6个数据读到基本单元’并存入D10~D15中。若X00为OFF’FROM指令不执行)。
图1-3中各操作数使用说明:
1)m1:特殊功能模块位置编号(范围0~7)。接在FX基本单元右边扩展总线上的功能模块(例如模拟量输入单元、模拟量输出单元、高速计数器等)’从最靠近基本单元那个开始顺次编为0~7号。用户可使用的对象软元件有:D、R、K、H。
2)m2:传送源缓冲寄存器首元件号(范围0~32767)。在32位指令处理BFM时’指定的BFM为低16位’编号相连的BFM为高16位’如图1-4所示。用户可使用的对象软元件有:D、R、K、H。
图1-3 读特殊功能模块FROM指令
图1-4 缓冲寄存器32位指定
3)n:待传送数据的字数(范围1~32767)。用户可使用的对象软元件有:D、R、K、H。
4)D:传送目标软元件编号。用户可使用的对象软元件有:KnY、KnM、KnS、T、C、D、R、V、Z。
图1-3所示的指令传送示意如图1-5所示。
图1-5 读特殊功能模块传送示意图
2.BMF写入TO(FNC78M)
TO指令是将数据从PLC中写入到特殊功能单元/模块的缓冲存储器区(BFM)中的指令。注意:用本指令一次向多个缓冲区写入数据’但有可能发生看门狗定时器出错。
图1-6是写特殊功能模块TO指令的表现形式’是将基本单元从[S]元件开始的n个字的数据’写到特殊功能模块m1中编号为m2开始的缓冲寄存器中。具体地讲:当X11为ON时’将D20的内容写入2号特殊模块的10号缓冲寄存器(BFM#10)中。
图1-6 写特殊功能模块指令
m1、m2、n:同FROM指令时所讲的m1、m2、n。
[S]:传送源数据软元件编号。用户可使用的对象软元件有:KnX、KnY、KnM、KnS、T、C、D、R、V、Z。
如用户在使用FX3U系列PLC时’也可使用MOV、BMOV指令’采用图1-7所示的程序进行读写操作(图中’U表示模块的位置’G表示模块的缓冲寄存器号)。
图1-7 写数据示例程序
3.模拟量模块读出RD3A(FNC176)
RD3A是读取FX0N-3A块和FX2N-2AD模块的模拟量输入值的指令。图1-8为模拟量模块读出指令的表现形式。各操作数使用要点如下:
1)m1:特殊模块编号。对于FX3U及以下版本型号的PLC可连接的模块编号为K0~K7;对于FX3UC PLC可连接的模块编号为K1~K7’其中的K0为内置的CC-Link/LT主站。
图1-8 RD3A模拟量模块读取指令表现形式
2)m2:模拟量输入通道的编号。对于连接的FX0N-3A模块:K1为通道1’K2为通道2;对于连接的FX2N-2AD模块:K21为通道1’K22为通道2。
3)D:保存从模拟量模块中读出数据的数值。FX0N-3A模块:0~255(8位);FX2N-2AD模块:0~40995(12位)。
4.模拟量模块写入WD3A(FNC177)
WD3A是向FX0N-3A及FX2N-2AD模拟量模块写入数字值的指令。图1-9为模拟量模块的写入指令的表现形式。各操作数使用要点如下:
1)m1:特殊模块编号。对于FX3U及以下版本型号的PLC可连接的模块编号为K0~K7;对于FX3UC PLC可连接的模块编号为K1~K7’其中的K0为内置的CC-Link/LT主站。
2)m2:模拟量输入通道的编号。对于连接的FX0N-3A模块:K1为通道1’K2为通道2;对于连接的FX2N-2AD模块:K21为通道1’K22为通道2。
3)S:指定输出到模拟量模块的数值。FX0N-3A模块:0~255(8位);FX2N-2AD模块:0~40995(12位)。
图1-9 WD3A模拟量模块写入指令表现形式