「零基础入门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编程速成宝典:入门+提高
德国西门子(SIEMENS)公司生产的可编程序控制器在我国的应用相当广泛,冶金、化工、电力、建材、机械制造、汽车、轻纺、交通运输、环保及文化等各个行业领域都有应用。西门子(SIEMENS)公司的PLC产品包括LOGO、S7-200、S7-1200、S7-300、S7-400、S7-1500等。
今天就给大家推荐《图解西门子PLC编程速成宝典:入门篇》《图解西门子PLC编程速成宝典:提高篇》
《图解西门子PLC编程速成宝典:入门篇 》以西门子S7-200 SMART PLC 为介绍对象,以其硬件结构、指令系统为基础,以熟悉软件应用、编程设计为最终目的;《图解西门子PLC编程速成宝典:提高篇 》以西门子SIMATIC S7-1200 PLC 为讲授对象,以其硬件结构、指令系统为基础,以熟悉软件应用、学会编程设计为最终目的。书中内容循序渐进、系统全面,以便读者夯实基础、提高水平,最终达到从工程角度灵活运用的目的。
编辑推荐
1)图文并茂、图说指令、列举应用,可为读者提供系统的编程方法,解决读者编程无从下手和如何选择编程指令的难题。2)以西门子S7-200 SMART PLC 硬件结构、工作原理、Modbus RTU 通信和以太网通信、西门子V20 变频器、西门子V90 伺服电动机、模拟量为基础,结合习题解析,为读者打好西门子编程的基础。
3)以西门子SIMATIC S7-1200 硬件结构、V90 伺服PN 工艺对象、模拟量等为基础,解析指令与应用,为读者打好SIMATIC S7-1200 编程的基础。
4)语言通俗易懂,减少了专业术语带来的困惑,使读者少走弯路。
内容简介
《图解西门子PLC编程速成宝典:入门篇》全面介绍了西门子S7-200 SMART PLC 的软件安装、硬件接线、指令系统和编程软件 的使用技巧,指令和功能块 的使用方法(这些方法易学易用,可以节约大量的设计时间),PLC 之间、PLC 与V20 变频器、PLC 与西门子V90 伺服电动机、PLC 和组态软件之间的通信编程和调试的方法,编程向导运动控制库和PID 控制系统参数的整定方法,人机界面——触摸屏的组态和应用,以及常用的变频器和PLC 的通信方法。实例讲解 贯穿了全书。本书适合PLC 初学者,以及高等院校机械工程、自动化等相关专业师生阅读。
内容简介
《图解西门子PLC编程速成宝典:提高篇》通过图文介绍了西门子 SIMATIC S7-1200 PLC 的软件安装、硬件接线、指令系统和编程软件 的使用技巧,TIA Portal 软件应用、指令和功能块以及程序架构的使用方法,PLC之间、PLC 与变频器、PLC 与 V90 伺服、PLC 与组态软件之间的通信编程、调试和在线仿真的方法,并介绍了运动控制工艺对象、高速计数器的各种用法,以及常用的 Modbus 通信S7 通信和开放式通信编程方法。本书可供自动控制工程师、PLC 工程师、硬件电路工程师及 PLC 维护人员,以及高等院校电气自动化、机械电子工程等相关专业师生参考。
相关问答
plc自定义编程如何设置?
打开SMARTPLC编程软件在【快速访问工具栏】中选择下拉箭头。2/6然后在下拉菜单中选择【更多命令】3/6在系统自动弹出的【自定义】窗口命令选择下拉菜单中...
新手该如何学习三菱PLC?
当年我开始接触的PLC也是这个牌子的PLC了,记得是FX-2N这个系列的,根本都不用怎么学就会了,我当时接到了人生第一个项目,是一种凹版印刷机控制系统了,就采用...硬...
西门子PLC-200SMART编程软件安装-ZOL问答
西门子的官方网站有S7-200的编程软件,你可以自行去官网下载去网上下载一个step7和wincc软件,再安装,西门子的软件还要授权的。你装step7软件没有授权吧...
西门子smart系列plc用什么编程软件?
软件s7-300plc(simaticmanager)s7-1200(tiaportalv11)s7-200(v4.0step7microwinsp9)自学我认为最少要知道指令带表什么意思。软件s7...
plc编程中如何使用限位开关?
PLC在组态编程中,找到限位开关的输入通道。将该地址锁定常开为常态。当限位开关工作时变为常闭后。PLC常态发生变化后。即感知这个点发生变化。那么PLc会根据...
S7-200SmartPLC监视运行时候,怎么强制输入数据,或者改变M码的状态?
打开状态图表,设置当前值,然后锁定,就实现强制输入了打开状态图表,设置当前值,然后锁定,就实现强制输入了
西门子plc温度怎么编写?
需要的材料温度传感器西门子PLC西门子模拟量模块,模块的量程要与你的温度传感器对应上。程序S7-200PLC模拟量对应数字量0-32000smart200对应0-27648在...
如何将原来的S7-200PLC程序转换为S7-200SMARTPLC程序?
程序可以用smart直接打开,但是smart和200存在一些差异,比如模拟量输出的地址分配规则,拓展模块的组态等,需要手动修改。程序可以用smart直接打开,但是smart和...
plc报警程序怎么写?
PLC报警程序的编写主要分为三步:1.在PLC系统中定义报警信号,并将其连接到PLC的I/O端口。2.设置一个报警的阈值,并根据阈值来设置当检测到超出阈值时的报警动...
学习西门子的PLC编程,需要哪方面的理论知识?
你好,很荣幸能回答你的问题,希望我的回答对你有帮助。你遇到的问题我在学习PLC过程中也遇到过。这应该是大家的必经之路吧。学习任何一个品牌PLC都需要一定的...