汇川技术PLC应用逻辑编程技巧(7)小型PLC编程经验
哈喽,你好啊,我是雷工!
前面学习记录按状态转移编程法、按功能分块编程法、按设备结构功能分块法、按工位分块法等编程思路,
接下来继续学习小型PLC编程经验的总结,
以下为学习笔记。
01 梯形图经验
小型PLC基本上都是用梯形图进行编程,以下经验是否正确:
①:LD梯形图语言编程,常用的指令在30个以内,可轻松上手,初学者不建议首选SFC编程语言;
②:编程时要多用子程序,这样可以便于编写结构化的程序,提高程序的可读性,提高执行效率,也更易于调试;
③:要尽可能多用状态划分的编程风格,尽量采用典型的状态排序;
④:编程时要先定义程序框架,把状态分块,界定每个程序块的功能、算法、接口变量,并用程序注释的方式进行记录;
02 开发经验
有人说PLC编程相比程序员的高级语言编程并不需要深度的学习。(你认可吗?)
小型PLC编程要灵活使用Autoshop编程工具,可以减轻记忆负担(有更好的经验,欢迎分享)
03 如何让程序更易于阅读和理解
在C#编程时,合理的注释能够让人更清晰的读懂理解程序;
那么PLC编程,哪些习惯能够便于他人和自己更容易的阅读理解程序呢?
①:工序图
在规划设备状态、设计好程序框架后,可以先拟定设备主要工艺的子程序,并以工序图的形式注释每个子程序的功能;
像入口变量属性、主要算法、输出变量等做好记录;
②:Excel表格
用好Excel表格,规划记录设备系统的程序变量;可以按变量属性进行区域的划分,特别注意与上位机交互的变量,各种操作命令、设定参数等分为不同的区域,不仅可以提高上位机读取效率,还能够防止上位机误该参数,导致难以查明的运行故障;
把设备运行状态参数放在低地址段,把需要保存的记录参数放高地址段;
把多个工位子程序使用的变量尽可能规划各自独立的区域,并且区域间预留适当的间隔;
③:给常用变量别名
对于重要的已经定义的常用变量,批量标注有意义的别名,可以避免编程过程中反复核对变量定义,可以有效提高效率;
04 编写注释的好处
①:开发时可以先一次性写出主要子程序的功能注释,这样比直接写程序思路更清晰连贯,考虑也更周全;
②:写注释的过程可以核对逻辑处理是否严谨;若发现问题可以及时完善注释,再开始写程序,可以避免写程序过程中发现问题,再修改程序,会更加费时费力;
③:注释梳理完成后,再按照注释编程,思路清晰,逻辑明确,可以更快的编程;
④:可以方便多人协作同时编程调试;
⑤:注释清晰有助于个人快速读程序,能够更快的进入编程状态,避免没有注释,自己之前写的程序自己还得捋半天才理清思路;
⑥:方便调试排查问题,便于后期维护;
05 调试技巧
当写完一个状态的子程序以后,就可以在PLC上验证该子程序的逻辑处理是否正确:
可以强制该子程序的触发条件,让PLC反复执行该子程序,给该子程序入口变量设置不同的数值,观察输出口变量的结果值,这样就能够判断该子程序的逻辑是否正确,以便及时修正;
06 编程细节
编写一个能用的程序很简单,但是实际项目中只是简单的能用还不够,还得要求程序安全、稳定、健壮;
这时候就需要完善程序的保护机制,让保护更全面,使其操作起来更流畅;
①:状态指针式程序控制的关键变量,要避免赋值不存在的状态值,导致死机;
②:变量定义时,允许上位机访问的区域要独立划分,上位机可读写的变量,要检查其合法性后使用;
③:采用bit类型的变量编程,容易出现意外的组合,应当尽可能采用D寄存器变量,会更加的安全;
④:要考虑乘除运算需要的最大单元占用,避免溢出;避免出现除0的操作;
⑤:编程时先实现设备工艺控制功能,再进行设备异常状况、设备保护功能的添加;
一套成熟稳定的PLC控制程序,其中超过40%的代码都是用于设备安全保护功能的。
毕竟很多厂的口号也都是安全第一,生产第二;
07 整体思路
①:要有自顶向下的编程思想,即先整体再局部,化繁为简,拆大为小,然后逐步编程,让编程简化;
②:PLC编程更加注重实操上手,单纯的看书看视频100遍,不如上手操作一遍,要多动手;
08 后记
以上是关于小型PLC的编程经验,有不妥之处或有更加牛掰的思路,欢迎在留言区留言评论。
更多的技术问题欢迎在交流群相互交流。
S7-300400进阶笔记1: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了,记得是FX-2N这个系列的,根本都不用怎么学就会了,我当时接到了人生第一个项目,是一种凹版印刷机控制系统了,就采用...硬...
什么是PC/PPI编程电缆?
属于西门子编程电缆。西门子编程电缆,用于连接西门子PLC与计算机,有多种型号。PC/TTY对应西门子产品号:6ES5734-1BD20,RS232到西门子S5系列PLC编程口(DB15...
互联网+带给你的改变,除了买买买还有啥?
互联网(英语:internet),又称网际网路或音译因特网、英特网,是网络与网络之间所串连成的庞大网络,这些网络以一组通用的协定相连,形成逻辑上的单一巨大国际...在...
如何组态WinCC开机自动开启-ZOL问答
那两个都是西门子的编程软件。需要自己安装。西门子的很多面板没有时钟保持功能,这可以通过设置PLC同面板的时钟同步来解决,如何同步Protool/Winccflexible组...
分手。一个永不接对方电话,关机换号。一个避开另一个出现的全...
首页排行新品问答下载论坛手机笔记本数码相机主板显卡平板电脑更多分手。一个永不接对方电话,关机换号。一个避开另一个出现的全部地方,再也不和...
下列英文缩写的意思是什么?-汇财吧专业问答test
[回答]我知道脐动脉:umbilicalartery缩写不知道是什么.正常来说,HC的缩写是医务队的意思:hospitalcorps;在这里可能是headcycle?那么同理AC也就不可能是肩...
触摸屏的机器是软件能用吗?-ZOL问答
通常情况下是附加在显示设备上的硬件,通过连线与电脑主机相连接,有控制IC,当然也需要专门...软件、硬件都要如果是做视频剪辑或者特效根本用不着...
能否告诉我 施工升降机的介绍?施工升降机专用变频器耐用吗?
车载式升降机是把升降机安装在汽车上的高空作业设备。由专用底盘、工作臂架、三维全旋机构、柔性夹紧装置、液压系统、电气系统和安全装置等部分组...
问一下:管理考研贵吗?
[回答]强化阶段|超详细考研复习规划!所以,建议多做几遍阅读题。做好精读笔记,包括生词、短语、长难句、解题思路、篇章结构等。之后几遍则分侧重点进行复...
专科数控,自考本考金融,这算跨专业吗?需要加考吗?我还有...
[回答]校和专业是不是允许自考生报名,甚至论文答辩的手续都是自考办里办理的:自考生的待遇国家规定是跟统招的一样。而跨专业是要加考的。都带答...而跨...