「零基础入门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循环来完成,也可以考虑使用间接寻址的方式来提高程序的灵活性,而对一些流程方面的控制可以使用顺序控制继电器来完成,这样可以大大提高编程的效率。
关于西门子S7-200SMART PLC程序编程、下载和调试,你知道多少
本文主要给大伙讲解的是关于西门S7-200 SMART软件如何去进行编程,其中分别详细介绍了程序编辑如何更为直观易懂,便捷快速的掌握下载和调试程序等。希望对于入门PLC的用户有所帮助,提高软件的掌握程度。
第一步:新建项目
双击桌面上的STEP 7-Micro/WIN SMART 软件的快捷方式打开编程软件后,一个命名为“项目1”的空项目会自动创建。
第二步:硬件组态
双击项目树上方的CPU ST40选项,打开“系统块”对话框,选择实际使用的CPU类型,如下图所示
第三步:编写程序
成功新建项目后,主程序编辑界面会自动打开。这里以最常用的梯形图语言为例。
(1) 插入第一个触点
单击选中程序段1中的向右箭头,单击上方“插入触点”快捷按钮,选择插入一个常开触点,如下图所示。在地址下拉列表中选择“CPU输入0”,如下图所示。
(2)插入第二个触点
再插入第二个触点,与第一个触点之间是“或”的关系。单击选中常开触点下方的空白区域,然后展开指令树中的“位逻辑”文件夹,双击第一个“常开触点”指令,将其添加到预先指定的位置。当然,用户也可以通过拖拽和释放的方式添加指令。插入触点后,选择地址为“CPU输出0”。具体操作如下所示。
(3)合并能流
选中第二行的向右双箭头,再单击上方“插入向上垂直线”的快捷按钮,或者按“CTRL+向上键”,向上插入垂直线,如图3.28所示然后选中第一行的向右双箭头,再单击上方“插入水平线”的快捷按钮,或者按“CTRL+向右键”,向右插入水平线,如下图所示。
(4)添加线圈
在指令树的“位逻辑”指令集中找到线圈指令并单击选中,然后按住鼠标左键,将其拖拽到,能流最右侧的双箭头位置,松开鼠标,即添加一个线圈到程序段1的末端,如图3.30所示。之后,为线圈指令选择地址“CPU输出0”。
第四步:检查编译
程序编写完成后,可以选择PLC“编译”按钮,检查有无语法错误。
第五步:项目下载
通过以太网方式下载
选择“文件”一“下载快捷方式”选项打开“通信”对话框,如下图1所示。用户首先需要:
①选择正确的网卡
②单击“查找CPU”按钮
③找到CPU后,单击选中该CPU,单击“确定”按钮关闭“通信”对话框
成功建立了计算机与S7-200 SMART CPU的连接后,可以开始下载操作,如下图2所示:
图1:“通信”对话框
图2:“下载”对话框
第六步:在线监控
如果下载之前CPU处于停止状态,那么监控之前首先需要将CPU切换到运行状态。用户单击程序编辑界面上方或者PLC菜单功能区中的“RUN”按钮即可切换。启动CPU如下图1所示。
CPU进入运行状态后,可以通过单击程序编辑界面上方的“程序状态”按钮在线监控程序的运行状态。在梯形图语言环境中,蓝色的实线表示能流导通,灰色的实线表示能流中断。在线监控如下图2所示。
关于西门子S7-200 SMART PLC程序的新建、编辑、下载和调试就到了,后续给大伙分享更全面的。
以上,欢迎动动手分享及收藏!
相关问答
西门子plcs7-200smart如何用语句表编程?
用梯形图表进行编程。西门子PLCS7-200Smart的语句表编程可以使用梯形图编程语言。梯形图编程是很多PLC程序员和维护人员选用的方法;它是为新程序员设计的优...
plc编程中如何使用限位开关?
PLC在组态编程中,找到限位开关的输入通道。将该地址锁定常开为常态。当限位开关工作时变为常闭后。PLC常态发生变化后。即感知这个点发生变化。那么PLc会根据...
S7-200SmartPLC监视运行时候,怎么强制输入数据,或者改变M码的状态?
打开状态图表,设置当前值,然后锁定,就实现强制输入了打开状态图表,设置当前值,然后锁定,就实现强制输入了
西门子200plc编写模拟量程序时指令sm0.0是什么意思?
SM0.0是Always_On即常开的意思,就是一直保持导通。因为200不能直接连接输出,故需要在前连接SM0.0。SM0.0是Always_On即常开的意思,就是一直保持导通。因为200...
plc移动指令什么意思?
移动值指令MOVE,就相当于是我们S7-200/200SMARTPLC中的MOV传送指令,是用于对存储器进行赋值,或者把一个存储器的数据复制到另外一个存储器中,还可以用于清...
PLC编程对电脑要求高吗?选哪个电脑最合适?
如果只单单做plc程序的话,对电脑的要求不太高,目前比较就西门子的博图软件做plc程序也会有点卡。如果从做工控行业的角度来说,通常都会用到上位机软件比如win...
请教高手,西门子200SMARTPLC和PC通讯问题?
1,如果是通过PPI编程电缆的话,那么所有的200PLC都可以,只需要设置波特率,串口号,校验位,奇偶校验码,停止位就行。上位需要跟PLC一致,如果是上位软件的话...1,...
西门子SMARTPLC中10ms定时器不够用,用什么方法代替或实现10ms定时器的功能?
这个要看你对时间的要求有多高,是否可以有一定的误差。取一个计时器进行周期的计数叠加,10ms自加1,相当于一秒叠加100。在你需要用计时器的地方,编程计数器...
学习西门子plc要多少年?
学习西门子PLC需要的时间因个人不同而异,但一般来说,对于有一定电气、自动化和编程基础的人来说,学习PLC的基本操作和编程语言需要1-2个月时间,掌握PLC应用及...
河南plc控制柜200smartTCP通信常见问题解决方法有哪些急!急!急!
[回答]河南plc控制柜当西门子S7-200SMARTPLC编程软件输入触点输入错误,一直是问号时:输入触点完之后,按一下回车键,或者点击空白处即可。河南plc控制柜西...
扫一扫微信交流