搞不懂PLC循环程序编写,那都算不上大佬
前言
学习S7-300/400,不能仅仅局限于阅读或编写一段程序,更要从本质上认识PLC,方能更好的驾驭它。
一、PLC的循环处理过程
CPU中的程序分为操作系统 和用户程序 。
操作系统 用来处理PLC的起动、刷新输入/输出过程映像区、调用用户程序、处理中断和错误、管理存储区和通信等任务。
用户程序 由用户根据需求自己编写,以完成特定的控制任务。STEP7将用户编写的程序和数据维护在"块"中,如功能块FB、功能FC和数据块DB等。
PLC采用循环扫描的方式执行用户程序,即扫描工作方式。
图1 PLC的扫描工作方式
1. PLC得电或由STOP模式切换到RUN模式时,CPU起动,同时清除没有保持功能的位存储器、定时器、计数器,清除中断堆栈和块堆栈的内容,复位保存的硬件中断等。
2. 执行"系统起动组织块"OB100,该组织块可以自定义编程,实现一些初始化的工作;
3. 系统进入周期扫描,并起动循环时间监控;
4. CPU将输出过程映像区的数据写入输出模块;
5. 读取输入模块的状态,并写入输入过程映像区;
6. CPU调用OB1,执行用户程序,期间,根据需要可调用其他逻辑块(FB、SFB、FC及SFC),来实现控制任务;
7. 在循环结束时,操作系统执行所有挂起的任务,例如下载和删除块、接收和发送全局数据等;
8. CPU返回"第3步",重新启动循环时间监控。
9、在执行用户程序的过程中,如果有中断事件发生,当前执行的块将暂停执行,转而执行相应的组织块,来响应中断。该组织块执行完成后,之前被暂停的块将从中断的地方继续开始执行。OB1具有很低的优先级,除了OB90外,所有的组织块都能中断OB1。
二、过程映像区
PLC的存储器中,特别设置了一片区域用来存放输入信号和输出信号的状态,分别称之为输入过程映像区和输出过程映像区。在循环程序处理过程中,CPU不会直接访问I/O模块,而是访问CPU内部的过程映像区。
如图1所示,在整个扫描周期内,CPU会分配一段时间集中将输出过程映像区的状态传送给输出模块。同样,输入模块的状态/数据也是集中、统一读入输入过程映像区。在程序的执行阶段,CPU只和输入/输出过程映像区做数据交互,这样做的好处是,即使外部输入信号的状态发生变化,输入过程映像区的状态也暂时不变,可防止程序执行时发生"紊乱";而给到输出模块的数据是"同时"的,也可有效避免执行机构的动作序列的不同步。
对过程映像区的访问可以以位、字节、字 以及双字 的方式进行。
图2 过程映像区直接寻址
如图2所示,假设其为输入过程映像区的一部分:
· I1.3 即可访问到粉色部分的内容,即寻址一个位;· IB0 即可访问绿色部分的内容,即寻址一个字节;· IW2 :即可访问蓝色部分的内容,即寻址一个字;· ID4 即可访问橙色部分的内容,即寻址双字;三、扫描循环时间
扫描循环时间是指图1中相邻两次"循环时间监控"之间的时间,它与用户程序的复杂程度及CPU执行指令的速度有关。如下为315和416两款CPU的指令执行速度,相比315,CPU416的执行速度快很多。
CPU 315-2DP:0.3ms/1000条指令;
CPU416-2DP:0.08ms/1000条指令
扫描循环时间不是一成不变的,以下事件都会延长循环时间:
· 中断 · 诊断和故障处理 · 测试和调试功能 · 通讯 · 传送和删除块 · 压缩用户程序存储器 · 读/写MMC卡图3 最大循环时间与最小循环时间
如图3所示,在硬件组态中,可以修改最大循环时间,默认150ms。如果实际的循环时间超出设置的最大时间,CPU会调用组织块OB80,在其中响应这个故障。如果OB80中未编写程序,CPU将转入STOP模式。
400的CPU中还可以设置最小扫描周期,当用户程序较为简单,使得循环时间太短时,过程映像区会太过频繁的刷新,设置最小扫描周期可以避免这种情况。
四、系统的响应时间
PLC的外部输入信号发生变化的时刻到它所控制的外部输出信号发生变化的时刻之间的时间间隔,称之为系统的响应时间。它由以下三部分组成:
1、输入电路的滤波时间
输入模块通过RC滤波电路来过滤输入端引入的干扰,并消除因外接输入触点的动作时产生的抖动而引起的不良影响,滤波电路的时间常数决定了输入滤波时间的长短,一般为10ms左右。
2、输出电路的滞后时间
输出模块的滞后时间与模块的类型有关,
· 继电器型输出电路的滞后时间一般在10ms左右;
· 双向晶闸管型输出电路在负载通电时的滞后时间约为1ms,负载由通电到断电时的最大滞后时间为10ms;
· 晶体管型输出电路的滞后时间一般在1ms以下。
3、CPU扫描循环工作方式带来的滞后时间
由扫描工作方式引起的滞后时间最坏的情况下,可达2-3个扫描周期。
PLC总的响应延迟时间一般只有几毫秒到几十毫秒,对于一般的系统是无关紧要的。在一些特殊应用场合,要求输入、输出信号之间的滞后时间尽可能短的时候,可以选用扫描速度更快的PLC或采取中断等措施。
PLC编程学习太难?学会这些技巧秒变编程大佬
随着PLC应用范围的增加,能够写一手流利的PLC 程序成为了每个工控人的梦想,但很多人在学习PLC编程的时候都觉得很难,学着学着就放弃了。但其实,学习PLC不仅需要勤奋和努力,正确的方法和经验也很重要。接下来,工业帮就将为大家提供一些学习PLC编程的技巧,帮助大家秒变编程大佬,赶快一起来看看吧~
多收集程序范例、增加编程经验
在PLC编程的众多方法中,经验法一直受到许多从业者的青睐。在学习过程中,大家一定要学会收集典型程序样例,并且所收集的程序最好有较完整的组成部分,即控制任务、I/O分配、硬件接线图,以及完整的程序及注释。其次要读懂程序,从而分解出程序中用于完成不同任务的组成部分,遇到各组成部分中可独立完成某一特定功能的子程序或者中断程序时,要及时将其收藏到程序库中,以便日后遇到类似控制任务时使用,可节约程序设计时间,提高程序调试成功率。另外,你还需要记录程序闪光点,比如:编程者巧妙的思路、程序结构、应用指令的使用等。最后,还有一点,就是需要大家对程序做功能扩展性的设计、调试,并对全过程进行详细记录,再加以总结,如此一来,你的PLC编程就会得到有效提升。
熟练使用软件包
在学习PLC编程的过程中,还有一点是需要注意的,就是要熟练使用软件包,下面工业帮就以三菱产品为例和大家介绍一下,一般来讲,三菱软件包由两个部分组成,编程软件和仿真软件,其中编程软件为设计者提供了编程环境,使得自己的设计方案得以展现,而仿真软件可提供一个虚拟的实验平台,对于个人学习来说,没有实验条件,仿真软件能够在个人计算机上进行顺控程序的开发和调试,使用者可通过程序不断地仿真调试,慢慢领会程序设计心得,从而增加编程经验。
三菱FX系列PLC的编程软件有FXGP/WIN-C、 GX Developer和GX Work2三种。FXGP/WIN-C软件体积小巧、操作简单,但只能对FX2N及以下档次的PLC编程,无法对FX3U、FX3UC、FX3GPLC编程,建议初级用户使用。GX Developer软件体积大、功能全,不但可对FX全系列PLC进行编程,还可对中大型PLC (早期的A系列和现在的Q系列)编程,建议初、中级用户使用。GX Work2软件可对FX系列、L系列和Q系列PLC进行编程,与GX Developer软件相比,除了外观和一些小细节上的区别外,最大的区别是GX Work2支持结构化编程(类似于西门子中大型S7-300/400 PLC的STEP7编程软件),建议中、高级用户使用。
加强学习特殊功能模块
在学习过程中,大部分学生将学习的重心放在了软件编程上,而现代工业控制给PLC提出了许多新的课题,如果用通用I/O模块来解决,在硬件方面费用太高,在软件方面编程相当麻烦,某些控制任务甚至无法用通用I/O模块来完成,因此学习PLC的特殊功能模块显得尤为重要。
充分利用网络资源,掌握PLC应用及发展的最新资讯
PLC产品更新换代的速度很快,若想及时掌握PLC应用,就要充分利用互联网为我们提供的学习平台,更方便、快捷地掌握PLC的最新动态。而这方面,如果你没有时间,也可以找一些网络学习课程进行学习,像工业帮所录制的网络直播课,就是不错的选择,每一节课都由从事自动化编程工作5年以上,且教学经验丰富的老师录制,能够帮你快速掌握知识点,并成功获得最新行业资讯,让你的学习更加简单、便捷。
怎么样,看了以上内容,你是不是对PLC编程的学习又有了信心呢?不要犹豫,赶快学起来吧!对了,最后工业帮还有一点要提醒大家,就是在学习编程课时,教材的选购也不能忽视,这里向大家推荐工业帮旗下的书籍,种类丰富,知识点全面,定是你的安心之选。
相关问答
大佬们,询问一下,顺德老牌的PLC编程公司推荐,PLC编程哪家...
[回答]我有朋友在宇丰工业自动化工作过,氛围还不错。宇丰传统人工检测,从工作效率的方面来看,由于工人在长时间工作下容易疲惫,眼睛疲劳,人工检测质量效...
大佬们!求指教哪里有PLC编程培训就业班,PLC编程培训排名怎...
[回答]名师高徒,我两个同事都在那学过,我准备辞职到期了也去。购有五轴机床专供学员实操使用的。名师高徒数控模具培训是非常专业的、价格也很优惠这两...
plc编程学会要多久?学会plc编程工资高吗?
PLC的品牌和系列都很多,如果是没有基础刚入这个行业,可以先考虑学习三菱或着西门子的,这两个品牌目前在市面上用的还是很广泛的。其实个人觉得学习PLC编程这个...
学PLC编程难吗?
从技术上讲,学习PLC编程不是太难,但需要耗费一定的时间和精力。在学习PLC编程前,需要先熟悉一些基础知识,比如电子学、操作系统、数字电路和微机原理等,这样...
只会简单的PLC编程能找到工作吗?
可以找到工作的,但是你不要说自己只会简单的,要会吹,就说自己做过很多工程,有很多成功案例等等。等到正式上岗了以后,可以边编程边学习,不懂得可以查资料。...
plc工资一般多少?
首先这个和所处的城市,行业,技术能力,人际关系,公司等有关系,3000到2万的工资都是有的。如果你刚毕业,在一线城市,去的一般公司,工资给到5K,我觉得算是...当然...
PLC编程怎么从菜鸟变成高手?
熟能生巧多练习多看代码熟能生巧多练习多看代码
哪位大佬可以用通俗的言语让我明白PLC(可编程逻辑控制器)这个专业术语,不胜感激?
呵呵,不知道您要通俗到哪种程度对你来说才是通俗易懂的。我简单来说几句我个人的理解,首先PLC它是一个控制器,就是主要目标是用于控制一些设备的。比如家里...
plc编程好学吗要学多久?
PLC编程并不难学,只要一些电气基础,通过专业的培训是可以掌握的。因为PLC的编程准确的讲应称为组态。把需要定议好的接口设定其输入/输出,模拟量还是开关量。...
plc编程学什么专业好?
程:电路原理,电力系统自动化,电力系统继电保护,模拟电子技术基础,数字电子技术基础,电机学,高电压技术,电力系统分析,电...电路原理,电力系统自动化,电力系...