对于一些朋友在编程或看别人的程序时,总是杂乱无章,让人看着迷糊和繁琐,也更容易造成错误。

这就是没有一个好的标准化的编程思路,其实,对于一些自动化公司都是有自己的标准,但是,其基本思路是一致的,今天就通过一个示例来跟大家聊聊如何规划自己的项目。

示例如下图所示,一个工业混料过程的项目,具体的项目要求就不说了(不做具体编程,只说思路)

在拿到一个项目时,首先按下图的思路来规划自己的项目,这样思路清晰。也容易理解。

下面就具体来说一说:

一、将过程分成任务和区域

自动化过程包含大量单个任务。通过在过程内识别相关任务组,然后将这些组分成更小的任务,用这种
方法甚至可以定义最为复杂的过程。
下面就用工业混料过程示例来阐述如何将过程划分为一些功能区域和单个任务:

在工业混料过程示例中,可以识别 4 个不同区域 :

1、配料 A

2、配料 B

3、混合罐

4、排料

二、描述单个功能区域
在过程内描述每个区域和任务时,不仅需要定义每个区域的操作,还需要定义控制该区域的不同元件。
这些功能包括:
1、每个任务的机械、电气输入/输出逻辑关系

2、每个任务之间的相互依存关系
工业混料过程实例使用泵、电机和阀。必须精确描述识别操作期间所要求的操作特性和互单类型。

下面描述工业混料过程中所使用设备的示例。
2.1 配料 A/B:进料泵电机

进料泵电机将配料 A 和 B 传送到混料罐。流速:每分钟 400l (100 加仑),额定值: 1200 rpm 时为 100kW (134hp)

通过混料罐附近的操作员站控制泵(启动/停止)。计数启动次数以用于维护。可通过一个按钮将计数器和显示器复位。

要操作泵,必须满足下列条件:a 混料罐不满。b 混料罐的排料阀闭合。c 没有激活紧急断电。

如果满足下列条件,泵将关闭:a 启动泵电机 7 秒后,流量传感器指示无流量。b 流量传感器指示停止流动。

2.2 配料 A/B:入口阀和进料阀

配料 A 和 B 的入口阀和进料阀可允许或防止配料流入混料罐中。阀有一个具有弹簧复位的螺线管。

a 激活螺线管时,打开阀。b 取消激活螺线管时,闭合阀。

要激活阀,必须满足下列条件: 进料泵电机已经运行 1 秒以上。

如果满足下列条件,泵将关闭:流量传感器指示无流量。

2.3 搅拌器电机

搅拌器电机在混料罐中混合配料 A 和配料 B。额定值: 1200 rpm 时为 100kW (134hp)

通过混料罐附近的操作员站控制搅拌器电机(启动/停止)。计数启动次数以用于维护。可通过一个按钮将计数器和显示器复位。

要操作泵,必须满足下列条件:a 罐液位传感器没有指示"罐液位低于最小值"。b 混料罐的排料阀闭合。c 没有激活紧急断电。

如果满足下列条件,泵将关闭: 流速计在启动电机后 10 秒内不指示已经到达额定速度。

2.4 排料阀

排料阀允许将混料物(通常为重力进料)排放到过程中的下一个阶段。阀有一个具有弹簧复位的螺线管。a 激活阀时,打开出口阀。b 取消激活螺旋管时,闭合出口阀。

通过操作员站控制出口阀(打开/关闭)。可在下列条件下打开排料阀:a 搅拌器电机关闭。b 罐液位传感器没有指示"罐空"。c 没有激活紧急断电。

如果满足下列条件,泵将关闭: 罐液位传感器指示"罐空"。

三、列出输入、输出和输入/输出

写完要控制的每个设备的物理描述后,需绘制每个设备或任务区域的输入和输出图。

四、创建电机和阀的 I/O 图

4.1 电机的I/O图

在工业混料过程的示例中使用两个进料泵和一个搅拌机。每个电机都由其自身的"电机块"控制,该块对于所有三个设备都相同。该块要求 6 个输入:两个输入用于启动或停止电机,一个输入用于复位维护显示器,一个输入用于电机响应信号(电机运行/不运行),一个输入用于时间,在该时间内必须接收响应信号,一个输入用于测量时间的计时器数目。

逻辑块还要求四个输出:两个输出指示电机的操作状态,一个输出指示故障,另一个输出用于指示应该
开始维护电机。

需要输入/输出来激活电机。它用于控制电机,但同时也可在"电机块"的程序中进行编辑和修改

4.2 创建阀的 I/O 图

每个阀都由其自身的"阀块"控制,该块对于所使用的所有阀都相同。逻辑块有两个输入:一个输入用于打开阀,一个输入用于关闭阀。它还有两个输出:一个输出用于指示阀打开,另一个输出用于指示阀闭合。

阀块有一个输入/输出,用于激活阀。它用于控制阀,但同时也可在"阀块"的程序中进行编辑和修改。

五、建立安全要求

定义安全要求查找要求硬件电路满足安全要求的设备类型。通过定义,这些安全电路可独立于可编程控制器进行操作(虽然安全电路通常提供 I/O 接口,允许与用户程序协调操作)。通常,可以组态矩阵式,在其自身的紧急断电范围内连接每个执行器。该矩阵式是安全电路的电路图基础。

按如下执行来设计安全机制

a 确定单个自动化任务之间的逻辑和机械电气互锁
b 考虑设计电路时,由于自动化故障可以手动操作。

工业混料过程示例使用下列逻辑电路作为安全电路:

a 在紧急断电开关(急停)后,切断所有设备的电源(当然这里不需要通过PLC)
b PLC的输入指示紧急断电开关(急停)的状态。

六、描述所要求的操作员显示和控件

每个过程都要求有一个操作员界面,允许人员进行干预。部分设计规范包括操作员控制台设计。

参见下图:

控制台还包括显示灯,用于指示经过一定启动次数后要求维护的设备,以及紧急断电开关,通过该开关
可立即终止过程。控制台还有一个复位按钮,用于三台电机的维护显示。通过该按钮,可以关闭指示应
该维护电机的维护显示灯,并将相应的计数器复位到 0。

七、创建组态图

通过确定希望使用哪些模块,还可以确定可编程控制器的结构。创建一个确定下列各项的组态图:

b树的阶数如何确定_通过一个示例来聊聊如何规划一个PLC项目相关推荐

  1. 高度为5的3阶b树含有的关键字个数_第15期:索引设计(索引组织方式 B+ 树)

    谈到索引,大家并不陌生.索引本身是一种数据结构,存在的目的主要是为了缩短数据检索的时间,最大程度减少磁盘 IO. 任何有数据的场景几乎都有索引,比如手机通讯录.文件系统(ext4xfsntfs).数据 ...

  2. 字典树哇 AC自动机哇 = _ =

    字典树哇 AC自动机哇 = _ = 例题 HDU 1251 统计难题 解题思路 : 字典树 原理:按照每个根向下发散 形成一棵 树 这个题 需要在每一个字母处都做统计 (求前缀单词) 开一个 二维数组 ...

  3. 一棵树的生物量怎么算_宾利的眼镜盒价值2万,算坑人吗?网友:良心产品,不坑穷人...

    阅读本文前,请您先点击上面的蓝色字体"总李谈车",再点击"关注",这样您就可以继续免费收到文章了.每天都有分享,完全是免费订阅,请放心关注.原创持续更新&quo ...

  4. 高度为5的3阶b树含有的关键字个数_数据结构要考得好,你心里要有B树

    01 知识框架 02 知识点详解 1 B树 ①定义与性质 B树也叫B-树.B树是一种平衡的多分树,通常我们说m阶的B树,是二叉排序树的一种扩展,它必须满足如下条件: 01 每个结点最多只有m-1个关键 ...

  5. 3层b+树索引访问磁盘次数_深入理解MySQL索引底层实现原理丨技术干货

    一.索引的本质 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构.提取句子主干,就可以得到索引的本质:索引是数据结构. 我们知道,数据库查询是数据库的最主要功能之 ...

  6. web项目打包到上线教程_手把手教你在 IntelliJ IDEA 中部署 Web 项目

    关注 逆锋起笔 学习 资源.工具不用愁 「逆锋起笔」公号读者福利 ☞ 程序员进阶必备资源免费送「21种技术方向!」 ☜本文地址:www.cnblogs.com/deng-cc/p/6416332.ht ...

  7. 从头开始vue创建项目_我正在以设计师的身份开始一个被动的收入项目。 从头开始。...

    从头开始vue创建项目 Do you ever read an article on Medium (or elsewhere) about passive income, side projects ...

  8. 微信公众号无需二次登录_您无需两次解决问题-您需要一个设计系统

    微信公众号无需二次登录 重点 (Top highlight) The design system concept can be differently defined according to eac ...

  9. exo文件_您在eXo平台上的第一个Juzu Portlet

    exo文件 菊珠是佛教的佛珠. 一句话,我相信您已经学到了什么,印象深刻吗? 好吧,我在这里不谈论佛教. Juzu还是一个用于快速开发Portlet(以及即将推出的独立应用程序)的新框架. 您可以在J ...

最新文章

  1. Linux环境HBase安装与使用
  2. ES权威指南[官方文档学习笔记]-14 phrase search
  3. 杀毒软件已经 OUT 了!未来 CPU 也可以检测病毒
  4. Tomcat启动报内存溢出错误解决(两种)
  5. ASP.NET Core 2.0 + EF6 + Linux +MySql混搭
  6. 11g oracle xe启动_详解Oracle等待事件的分类、发现及优化
  7. js原生实现过渡效果的返回顶部功能实例
  8. MySQL笔记(十)MySQL事务 transaction
  9. can't select mysql database_ERROR 1006 (HY000) Can't create database (errno: 13) MySQL 5.6.12
  10. Linux基础命令---显示文本grep
  11. 【纪中集训2019.3.25】礼物
  12. STS下载教程(include官网无法下载解决方案)
  13. Java后端开发工程师
  14. 怎么用注册表来删除卸载程序
  15. grabcut图像分割的原理简单介绍
  16. 使用lombok编写优雅的Bean对象
  17. JavaFX: 导入ikonli-master
  18. 是男人就撑过20秒的游戏分析+无敌Patch的实现
  19. C#-WinForm-简单的音频播放器(基于WindowsMediaPlayer控件)(一)
  20. 大幅度提升工作效率的5款软件,个个都是小巧实用无广告

热门文章

  1. SAPSQL_IN_ITAB_ILLEGAL_OPTION dump
  2. Error message Exception raised without specific error
  3. java xml 反射_Java 读取XML文件以及Java 的反射机制实现
  4. 恒生电子实施怎么样_蓝思科技今年来涨幅超166%,消费电子主题基金如何挑选?...
  5. oracle获取下级函数,从oracle获取函数和过程签名列表
  6. php上传文件到七牛云源码,laravel上传文件到七牛云存储
  7. html怎么设置子目录,如何让主域名指向public_html下的子目录
  8. 计算机系在职研究生 网络班,在职研究生都有网络班吗?
  9. kingcms php 排序 标签,修改PHPCMS V9列表排序,listorder、order排序功能的方法
  10. fiddler运行原理_全网最全最细的fiddler使用教程以及工作原理