「零基础入门PLC」S7-200 SMART 编程技巧及实例分享
S7-200 SMART在编程中常见问题解析
工欲善其事必先利其器,在日常的程序编辑和调试过程中,可能会遇到各种各样的问题,比如编辑好的逻辑程序执行结果不正确,编译正常的程序下载到不同的CPU中,有些可以下载,而有些提示非致命错误等等,此时如何快速的排查和分析错误发生原因就非常重要,而排查和分析的前提就需要对S7-200 SMART从软件和硬件上有更加深入的了解,下面我们就通过几个典型的案例来进行问题的分析。
案例 1
首先看图1这段程序,编译无任何问题,如果下载到不同类型的CPU中,表现就会不同,我们可以尝试下载到ST60和CR60两种类型的CPU中。
图1 主程序
下载到ST60中,程序运行正常,如果下载到CR60中,程序运行就会报非致命错误:操作数非法(错误码:0090),图2为具体的非致命错误信息:
图2 PLC信息
根据程序分析错误出现的原因和中断有关,可以查询S7-200 SMART系统手册中断章节可以找到对应答案,如表1所示,24号中断事件CR60不支持,所以在运行时会报错非致命错误。
表1
综上,当需要程序在多个不同类型CPU之间下载或者移植时,就需要提前了解各个CPU的程序容量大小、支持的数据区的大小,断电保持区域大小,是否使用到了CPU不支持的功能或者CPU固件版本是否支持等因素,只有了解了这些,才能做到有的放矢。
案例 2
在日常编程过程中,我们可能需要各种标准库,有时需要子程序和中断程序有多重调用关系,例如下面这个案例,程序想使用格雷码转换库在定时中断中每隔100ms进行一次数据的格雷码转换,请看图3:
图3 主程序
图4 子程序
程序的调用关系为:中断子程序INT0调用子程序SBR1,SBR1中调用子程序SBR2,SBR2中的程序如图4所示,下载到CPU中,通过状态图表监视程序状态,发现没有结果输出,如图5所示:
图5 状态图标监控无输出
进一步监控PLC信息,可以看到图6的非致命错误报警:超出最大用户子例程嵌套级别(错误码:0008)
图6 PLC信息
S7-200 SMART手册中规定:从主程序调用子例程的嵌套深度是 8 级,从中断例程调用嵌套深度是 4 级。
现在来看上述程序的调用关系:
INT0→SBR1→SBR2→GRAY_BIN_DW,表面上也仅仅嵌套了3级,满足中断嵌套深度要求,但是仔细查看GRAY_BIN_DW功能库可以发现,该库也嵌套了几层,嵌套关系如下:
GRAY_BIN_DW→GRAY_BIN→XOR,这样下来,嵌套关系就变成如下:
INT0→SBR1→SBR2→GRAY_BIN_DW
→GRAY_BIN→XOR,总共5层嵌套关系,超过了CPU支持的最大嵌套深度,导致CPU 无法运行,知道了原因,我们可以减少调用嵌套为4层以内,则程序就可以正常执行了。
通过以上描述就可以明白,有些看似不可理解的问题其实有其发生的原因,只有深入了解对应产品的技术细节,才能抽茧剥丝,找到问题的根源所在。
S7-200 SMART如何快速提高编程效率
在日常的编程过程中,我们可能需要不少的逻辑运算和算术运算,如果这种运算很多,有可能会导致程序量很大,CPU的扫描周期加长,在这种情况下,找到其中的规律,可以大大简化程序。
假设一个场景,现场有16台设备,需要控制16台泵的启停,IO地址如下表所示:
表2
一般的编程思路是单独写出每个泵的启动停止控制逻辑,如图7所示,需要编写16组控制逻辑:
图7 单个泵的启停控制
其实针对这种编程,我们可以变换一种思路,将上面的梯形图变换成图8所示的逻辑,也可以完成对应的控制功能:
图8 字逻辑运算
这样变换完成后,编程就显得特别简洁,因此编程思路很重要。
在另外一些应用场景中,有时需要记录现场设备的运行时间,一般情况下我们可以使用定时器来实现计时的功能,但S7-200 SMART定时器有数量限制(最大256个),并且最大时基为100ms的定时器其所能达到的最大计时长度为3276.7S,若想实现小时或者天的计时就需要定时器加计数器来实现,而计数器也有数量限制(最大256个),当需要类似的功能很多时,计数器和定时器数量就不够用了,此时可以使用系统特殊存储器 SM0.4(周期为60S的时钟脉冲)和SM0.5(周期为1S的时钟脉冲)来实现计时功能。
如图9所示,其中值VD0的单位为秒,在实际应用中,可以对这个数值进行再次转换,得到分钟、小时或者天的时间值(本例中VD4的单位为小时),同时这些地址也可以按需设置在S7-200 SMART断电保持区域中,实现不同时间长度的定时以及断电保持功能,非常方便。
图9 使用SM0.5实现计时功能
实际编程时对于一些功能重复的地方,我们可以考虑做成子程序多次调用,一些需要重复计算的功能,可以使用FOR NEXT循环来完成,也可以考虑使用间接寻址的方式来提高程序的灵活性,而对一些流程方面的控制可以使用顺序控制继电器来完成,这样可以大大提高编程的效率。
如何在一天内编写出一套完整的PLC程序?快来偷师学艺
今天来讲一下我们如何在一天之内编写出一套完整PLC程序的方法。
如今自动化行业竞争力越来越大,对于企业方面来讲,如果能将项目成本降低,报价降低,那无疑是非常具有竞争力的。
编写主机厂PLC标准程序方面:
一套PLC程序+HMI画面需要至少4年 工作经验的工程师去编写,完成时间大概需要18天 左右,这样来说,人工成本会在万元以上,如果可以将PLC编写程序人员的门槛大幅度降低,编写时间降至1天 时间,并且可以保证好工作质量,那么对应的成本也会变的更低,对于公司/个人接离线程序来说,几乎无冷却时间大把摸金 。
从以上举例来说,收益提高了,成本变低了,报价可以通过更低的价格拿到项目,提高行业竞争力。
在操作方面呢,其实很简单,只要 通过Excel表格 就可以完成PLC编程 。那么下面我来介绍一下操作流程吧,小伙伴们,举起你们的小耳朵。
首先需要在模板处填写机器人编号及工艺 如下图所示:
之后填写 第1台机器人对应的工装夹具台夹具等信息 ,填写第2台机器人对应的工装夹具台夹具等信息。。。。。等
填写完成后点击应用程序:生成源文件 :
之后可生成DB文件,
按照操作点击DB100后按回车,便会自动更改名称 。
直至生成完毕。
生成完毕以后,DB里面会有相对应的所有信号交互点。
之后点击应用程序,生成 需要生成的FC功能块
功能块FC8生成结果如下图所示:
用这样的方法,你可以很快生成出一套标准PLC程序离线,内容保质保量!
相关问答
plc编程思路框架和工艺流程?
PLC(可编程逻辑控制器)编程思路框架和工艺流程可以根据具体的应用和需求有所不同,但一般可以遵循以下基本步骤:1.确定需求:了解控制系统的具体需求和目标...
做PLC项目的流程?
1、首先需要你自己编写项目文件,根据项目的规模和工艺特点,确定PLC的I/O点数,和大致的控制流程图、系统拓扑图。然后选择适合的PLC,同时选择适合的I/O模块,...
plc程序处理的工作流程?
1、输入刷新阶段:PLC以扫描工作方式,输入电路时刻监视着输入状况,并将其暂存于输入映像寄存器中。2、程序执行阶段:PLC按顺序对程序进行串行扫描处理,并分...
PLC控制柜编程如何设置?
PLC控制柜编程的设置包括以下步骤:1.了解控制需求和系统架构;2.选择合适的PLC型号和编程软件;3.创建程序框架,包括输入输出配置和变量定义;4.编写逻辑控...
零基础怎么学PLC编程?
学习PLC编程,需要从以下几个方面入手:学习PLC基础知识,包括PLC的组成、工作原理、常见元器件等;学习PLC编程语言,包括指令集、程序结构、变量类型等;了...
plc编程方法有几种?
PLC编程方法有以下几种:1.梯形图编程:梯形图编程是最常用的一种PLC编程方法,使用图形化的方式来表示逻辑控制程序。梯形图编程类似于电气图,可以直观地表示...
plc编程高级思路?
一、基本的硬件知识编程之前,需要了解一些基本的硬件知识,最好从硬件的选型和画图入手,等把输入输出的类型,模拟量的选型等搞清楚之后,再开始编程会简单点。...
西门子200plc编辑程序步骤?
编辑程序步骤包括以下三个方面:1.熟悉软件界面及基本操作:在打开软件之后,需要熟悉软件界面各模块的作用及基本操作,如创建、编辑、保存等操作。2.设置程序...
plc流程怎么退到上一步程序?
PLC的流程可以通过执行“返回”和“复位”命令实现退到上一步程序的操作在PLC程序执行过程中,如果需要使程序跳回上一步,可以通过执行“返回”指令来实现通过...
西门子plc编程思路?
一、西门子plc编程思路基本的硬件知识编程之前,需要了解一些基本的硬件知识,最好从硬件的选型和画图入手,等把输入输出的类型,模拟量的选型等搞清楚之后,再...
扫一扫微信交流