AB PLC 编程之状态机
AB的程序设计和西门子有点PLC不大一样,在AB中没有RS指令,所以主要用move指令来作步进。今天我们就用Move指令写个AB的程序,和西门子比,有哪些不同。
控制任务
很简单的一个状态机。初始步为Step0,根据不同的条件分别转移到不同的步。
具体程序
下面是tag变量表:
下面定义了一个关于步进的udt,StepNumber是当前的步号,根据StepNumber的步号来设置Step变量中对应的一个位,Reset设置StepNumber为0,
恢复到初始步。Re_Step是Step步中对应步的一个上升沿,Auto就是自动。
这里简单解释一下:
第0段中,如果site.Auto为0,也就是激活手动,那么程序就跳转到第5段,2,3,4段程序就不激活,即使转移条件满足步也不会改变。
此时如果按下Reset按钮,那么将回到Step0步。如果site.Auto为1,那么按Reset也不会起作用。此程序最关键的地方在第5段,第五段
第一行,就是复位程序。第二行是设置激活步的上升沿,仅存在一个扫描周期。第三行是先把所有步清零,在设置激活的步。
和我们前面写的程序比,这个程序有以下优点:
- 每步激活前会清零所有步,然后再激活当前步,防止同时激活两个步。
- 程序的先导条件改成触点,以前我们是用比较指令。简洁不少。
- 自动和复位写的比前面优雅,同时为每步增加一个步上升沿。
和RS指令比,并行步写起来会麻烦不少,需要定义两个Grafcet变量。
下一篇我们用西门子TIA Portal来写这个程序,看看是否可以写的一样优秀。
AB PLC 编程之状态机的更多相关文章
- Studio 5000编程:如何判断AB PLC系统中的硬件设备是否在正常工作
前言:PLC控制系统,主要由CPU.本机架I/O模块,分布式I/O模块,通信模块,或其他设备(如:伺服驱动器.交换机.第三方设备)等组成,如何判断这些设备是否工作正常?或是一旦出现故障,能在第一时间判 ...
- 如何使用AB PLC仿真软件Studio 5000 Logix Emulate
前言:在学习PLC编程或程序开发过程中,如果身边没有实体PLC,又想验证程序逻辑,这时,仿真软件是不错的选择.针对AB PLC的仿真软件Studio 5000 Logix Emulate,有的同学说: ...
- AB PLC与西门子S7-1200以太网通信
前言:在项目实际应用中,经常会遇到两个不同厂家的PLC需要互联进行通信交换数据,由于各自的通信协议有所不同,实现起来的难度较大,通常的做法是借助第三方的网关.本文介绍的是AB PLC与西门子S7-12 ...
- AB PLC分类
AB PLC产品更新速度还是挺快的,以前很多产品都停产了,所以分类也跟着调整,就目前而言: 一.主要类型 AB PLC按类型,主要分为三大类: • 小型:MicroLogix控制器 • 中型:Comp ...
- AB PLC简述
一. PLC基础概念 PLC:可编程序控制器是一种数字运算的电子系统,专为在工业环境下应用而设计.采用可编程的存储器,用来在内部存储执行逻辑运算.顺序控制.定时.计算和算术运算等操作的指令,并通过数 ...
- PLC编程算法
PLC编程算法(一) 01 开关量也称逻辑量,指仅有两个取值,0或1.ON或OFF.它是最常用的控制,对它进行控制是PLC的优势,也是PLC最基本的应用. 开关量控制的目的是,根据开关量的当前输入组合 ...
- 使用以太网通信方式刷新AB PLC固件
本文详细介绍如何使用以太网通信方式刷新AB PLC固件 一.准备工作 1. AB PLC控制器一台,本文以5069-L330ER为例,将其通电: 2. 5069-L330ER的IP已设置为172. ...
- AB PLC首次IP地址如何分配
AB PLC首次IP地址如何分配,这里介绍的方法是针对CompactLogix和ControlLogix控制器 一.准备工作 AB PLC控制器一台,本文以5069-L330ER为例,将其通电: 笔记 ...
- C#读写 AB PLC 直接通过节点来读写数据 读写 AllenBradley PLC
本文将使用一个Github开源的组件库技术来读写AB PLC,使用的是基于以太网的实现,不需要额外的组件,读取操作只要放到后台线程就不会卡死线程,本组件支持超级方便的高性能读写操作 官网:http:/ ...
随机推荐
- js 中有关字符串的操作
1. substring(start, end) 1). 包头不包尾 2). start 必需项 3). end 非必需项 4). start end 谁大谁小无所谓 5). start end 若为 ...
- redis的使用方式
常用的语法以及使用方式: key中不能包含回车空格等,key不要太长,占用内存. 概念介绍: 差集: a:{1,2,3} b:{2,3,4},以a为锚点,差集 ...
- table是可语义化
为了使我们的网站更好的被搜索引擎抓取收录,更自然的获得更高的流量,网站标签的语义化就显得尤为重要.所谓标签语义化,就是指标签的含义. 为了更好的理解标签的语义化,先看下面这个例子: <table ...
- 通过 Powershell 来替换 ARM 模式下虚拟机的网络接口
需求描述 客户在部署完 ARM 模式的虚拟机以后,由于误操作在虚拟机内部禁用了网卡导致远程访问虚拟机受到限制,以下是通过 Powershell 命令来替换原有虚拟网络接口实现虚拟网卡重置功能. Not ...
- ThinkPHP5.0更改框架的验证方法:对象->validate(true)->save();
我们更希望看到: // 新增对象至数据表 $result = $Teacher->validate(true)->save(); 而不是: // 新增对象至数据表 $result = $T ...
- Linux--Bind服务搭建
Bind域名解析服务 服务功能:提供域名解析 构建主从域名服务器 1)环境部署 ip=192.168.1.50(主) ip=192.168.1.51(从) [root@localhost Packag ...
- Android 位置服务
原文来自:http://developer.android.com/guide/topics/location/strategies.html 位置策略 注意: 本指南仅限android.locati ...
- OC 类 的声明
Student.h // @interface代表声明一个类 // : 代表继承 @interface Student : NSObject { // 成员变量要定义在下面的大括号中{} int ag ...
- 2018.11.21 struts2获得servletAPI方式及如何获得参数
访问servletAPI方式 第一种:通过ActionContext (重点及常用 都是获得原生对象) 原理 Action配置 被引入的配置文件 在页面调用取值 第二种:通过ServletAction ...
- 报表技术之PDF格式报表生成 ----JasperResport
JasperReport简介 JasperReport:java提供的一个类库,承上启下,读取IReport生成的xxx.jrxml文件,获取到pdf中需要显示的全部内容,然后底层调用IText相关的 ...