前言:自动化控制系统是综合性、复杂性的,处于现场层的PLC控制器虽然进行各种控制,但最终还是对数据进行处理,对数据的处理,包含两种方式,一种是直接使用,第二种就是间接使用。针对第二种处理方式,就要用到间接寻址,有时也叫指针寻址。不同品牌的PLC间接寻址方式各有不同,AB PLC的间接寻址方式很简单,也很人性化。
间接寻址
AB PLC的间接寻址主要分为两种方式
- 基于位的间接寻址
- 基于数组的间接寻址
准备工作
这里使用仿真方式详细介绍,实体PLC的间接寻址编程同此法。
1. 在仿真器中,2号槽添加CPU,3号槽添加模块.
2. 打开Studio 5000 PLC编程软件,组态模块.
位的间接寻址
情景设定:
有31台照明灯,在上位机软件输入灯的编号,相对应编号的灯亮起来,输入0,所有灯熄灭。
1. 在控制器标签里,新建2个DINT标签:Number(灯的编号),LampCtrl(控制灯的亮灭).
2. 编写程序如下图,其中灯的亮灭控制输出为:LampCtrl.[Number],这里一定要限制Number的大小在1到31,如不限制在这个范围,一旦超出,就会造成间接寻址维度溢出,导致CPU严重故障,致使其停机.
3. 下载程序,使CPU处于运行状态,并打开仿真器的IO模块窗口。当Number输入10时,IO模块的输出点10显示黄色,表明第10号灯已经亮起;当Number输入30时,IO模块的输出点30显示黄色,表明第30号灯已经亮起;当Number输入0时,IO模块的所有输出点未点亮,表明所有灯已经熄灭.
数组间接寻址
情景设定:
在立体仓库系统中,有100个位置点,输入位置点编号,将该位置点作为堆垛机的目标位置,启动堆垛机后,其从当前位置移动到该目标位置.
1. 新建一个数组PositionData,用于存在位置点,数据类型REAL[101];一个REAL变量TargPosition,目标位置点;一个DINT变量X,位置点编号.
2. 数组PositionData,已经存储了位置数据.
3. 第一种情形:输入位置编号X的值,直接获取该编号的位置数值.
4. 第二种情形:输入位置编号X的值,获取该编号【数值*2】的位置数值.
5. 程序在线,第一种情形:当X=30,TargPosition=30.0;第二种情形:当X=30,TargPosition=60.0,这样根据不同的需要完成了间接寻址.
结束语:综上所述,AB PLC的间接寻址编程方式很简单,一个中括号--[]解决,另外在中括号中不仅可以直接输入数值,还支持算术、逻辑运算等功能,详细说明见下图: