Studio 5000 指针(间接寻址)编程
前言:自动化控制系统是综合性、复杂性的,处于现场层的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的间接寻址编程方式很简单,一个中括号--[]解决,另外在中括号中不仅可以直接输入数值,还支持算术、逻辑运算等功能,详细说明见下图:
--abseMe: 坚持原创 注重实用
Studio 5000 指针(间接寻址)编程的更多相关文章
- Studio 5000编程:如何判断AB PLC系统中的硬件设备是否在正常工作
前言:PLC控制系统,主要由CPU.本机架I/O模块,分布式I/O模块,通信模块,或其他设备(如:伺服驱动器.交换机.第三方设备)等组成,如何判断这些设备是否工作正常?或是一旦出现故障,能在第一时间判 ...
- FT View SE联合Studio 5000仿真
前言:一个实际的自动化项目,都是综合性的,不仅需要PLC进行逻辑.顺序.运动等控制,还需要在上位机进行监视和操作.当没有物理PLC时,上位机软件就无法连接到实际的变量数据,开发出来的界面和功能无法验 ...
- 如何识别Studio 5000程序开发版本号
前言:中.大型AB PLC的编程软件从以前的RSLogix 5000到目前的Studio 5000,都是有版本号的,如RSLogix 5000 V19.0.Studio 5000 V32.高版本的软件 ...
- 如何使用AB PLC仿真软件Studio 5000 Logix Emulate
前言:在学习PLC编程或程序开发过程中,如果身边没有实体PLC,又想验证程序逻辑,这时,仿真软件是不错的选择.针对AB PLC的仿真软件Studio 5000 Logix Emulate,有的同学说: ...
- Studio 5000指令IN_OUT管脚实现西门子风格
习惯了西门子博途编辑风格的同学,乍一看到Studio 5000的编辑界面,一时不适应,尤其是功能块或指令的IN和OUT管脚在一起,不好分辨,本文简单几步搞定,实现像西门子IN和OUT分左右显示风格. ...
- visual studio 2015下python编程的中文字符串问题
visual studio 2015强大的编程功能,编写起python来也是非常方便的,但其对中文字符的支持不是很好,经常发生莫名其妙的错误,最常见的错误是不报错,也不执行代码. 代码简单如下: x= ...
- Studio 5000编程:一种累计时间的编程方法
前言:在很多项目中,需要累计设备的运行.停机.故障时间,当然实现该功能的编程方法也是多种多样,各有千秋,不过有的方法累计误差会越来越大,比如:在连续任务里用定时器来累计时间,就存在一定的误差.本文分享 ...
- 从编程的角度理解gradle脚本﹘﹘Android Studio脚本构建和编程[魅族Degao]
本篇文章由嵌入式企鹅圈原创团队.魅族资深project师degao撰写. 随着Android 开发环境从Eclipse转向Android Studio,我们每一个人都開始或多或少要接触gradle脚本 ...
- C Primer Plus_第10章_数组和指针_编程练习
1. /*rain.c 针对若干年的降水量数据,计算年降水总量.年降水平均量,以及月降水平均量*/ #include <stdio.h> #define MONTHS 12 #define ...
随机推荐
- IBM developer:Setting up the Kafka plugin for Ranger
Follow these steps to enable and configure the Kafka plugin for Ranger. Before you begin The default ...
- vue笔记未整理
全局组件 局部组件 子组件传值到父组件 父子组件传值 watch跟计算属性差不多,都会有缓存,计算属性优先 计算属性get set 对象 数组 对象 数组 不复用 改变数组 直接修改数组,页面没变化 ...
- Visual Studio 2019 使用 Live Share
一.前言 Visual Studio 2019 在今天发布(北京时间)了,这次带来了一个比较有趣的 Live Share 功能,使用它可以进行更好的协作开发.主要功能: 更多资料可看官方介绍: Vis ...
- Photoshop给河边婚片加上唯美的霞光
<点小图查看大图> 最终效果 1.打开原图素材大图,按Ctrl + Alt + 2 调出高光选区,按Ctrl + Shift + I 反选得到暗部选区,然后创建曲线调整图层,对RGB.红. ...
- 一入OI深似海 1 —— 偶然遇见,命运选择
记得还是三年级(还是四年级?人老了都忘了)吧, 那时候我还是个愣头青, 学校的编程班在每个班强制招人, 我就屁颠屁颠被赶去去上课了. 一开始的课完全听不懂, 导致没过多久我同班的人一个个走了, 我为了 ...
- asp.net core 2.2 中的过滤器/筛选器(上)
ASP.NET Core中的过滤器/筛选器 通过使用 ASP.NET Core MVC 中的筛选器,可在请求处理管道中的特定阶段之前或之后运行代码. 注意:本主题不适用于 Razor 页面. ASP. ...
- 【HTML】行内-块级-行块级
行内元素 相邻元素可以在一行显示直到一行排不下才进行换行. 不可设置宽高,宽度随内容变化. padding和margin的设置中,水平方向(padding-left...)有效果,垂直方向无效果. 块 ...
- PowerDesigner 批量添加字段
Option Explicit Dim mdl ' the current model Set mdl = ActiveModel Dim Tab 'running table Dim col_1 D ...
- 京东iPad新品开售销量环比增22倍
一年一度万众期待的 Apple 春季发布会终于在今天凌晨揭晓,Apple 新推的 Apple News.Apple Card.Apple Arcade 和 Apple TV+ 四大软件服务惊喜不断,随 ...
- NOIP2018游记
day1 不想吐槽题目了... 40min写完,然后对拍+玩小恐龙. 每个人都阿克了. 预计得分:100+100+100 day2 体验极差 t1本来想写 \(O(n)\) 做法,写到一半发现可以 \ ...