线下实训
HOME
线下实训
正文内容
plc编程smart 「零基础入门PLC」S7-200 SMART 编程技巧及实例分享
发布时间 : 2025-02-23
作者 : 小编
访问数量 : 23
扫码分享至微信

「零基础入门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按照控制规模来分类

可以分为小型机、中型机和大型机。

一 西门子小型机:

小型机:小型机的控制点一般在256点之内,适合于单机控制或小型系统的控制。

1 S7-200

S7-200是西门子公司推出的一种小型PLC,它的优点是

(1)结构紧凑,占用空间小。

(2)拓展型良好,可以接称重模块,数字量、模拟量输入输出模块等等,使用起来非常方便。

(3)价格低廉

但是除此之外,它还有一些缺点:

(1)虽然国内还可以买到这种PLC的备件,但西门子公司宣布这款产品已经停产,未来的发展很受限。

(2)没有以太网接口,只可以使用西门子配套电缆进行调试编程,不方便。

(1)对于运动控制的支持不好。(S7-200的大多数PLC脉冲输出最大频率是20KHZ,S7-200smart的最大频率是100Khz,也就是对伺服电机的驱动不是很好。)

2 S7-200smart

S7-200smart是西门子公司针对中国市场研发的一款产品,只在中国销售。其原因可能是西门子的S7-200已经停产,西门子公司又不想放弃中国庞大的低端PLC市场,而作为S7-200的升级版,与S7-200相比,它有以下的特点:

(1)同是小型PLC,结构紧凑,价格低廉。

(2)拓展能力不如S7-200,它不支持称重模块,所以你不能使用精确的称重功能,可以选择用称重仪表模拟量输入代替,但精确度不如称重模块。

(3)Smart拥有以太网接口,调试编程拓展都非常方便。

(4)运动控制的支持比S7-200强大。无论是最大脉冲输出,还是运动控制向导,都比S7-200好用。

3 西门子S7-1200

S7-1200是一款紧凑型、模块化的PLC,可完成简单逻辑控制、高级逻辑控制、HMI 和网络通信等任务。

西门子中型机:

中型机: 中型机的控制点一般不大于2048点,可用于对设备进行直接控制,还可以对多个下一级的可编程序控制器进行监控,它适合中型或大型控制系统。

西门子中型机有S7-300: 处理速度0.8~1.2ms ;存贮器2k ;数字量1024点;模拟量128路 ;网络PROFIBUS;工业以太网;MPI。

西门子大型机:

大型机的控制点一般大于2048点,能完成较复杂的算术运算。

1 西门子S7-400

西门子S7-400PLC的主要特色为:极高的处理速度、强大的通讯性能和卓越的CPU资源裕量。

2 西门子S7-1500

西门子S1500是西门子博途系列,也是西门子未来发展的主体方向,其性能自然非常好!

软件及编程语言:

对于西门子所有的PLC,我们都已经整理了版本!需要软件的的同学可以点赞加关注并转发,然后留言“我要西门子软件”,让更多人能够分享到软件。

S7-200的编程软件是“STEP 7-Micro/WIN V4.0 ”留言后可以发私信;西门子200

西门子S7-200smart的编程软件是“STEP7‑Micro/WIN SMART ”。留言后可以发私信;西门子200smart。

西门子S7-300/400的编程软件是“STEP7”。留言后可以发私信;西门子300。

西门子S7-1200/1500的编程软件是“TIA PAORTAL”。留言后可以发私信;西门子博途。

西门子的编程语言主要有:LAD,FBD,STL,SCL,GRAPH,SFC,CFC等等,

在国内,大多数工程师只使用LAD,FBD,高级一点的使用STL,PCS7会涉及到SFC和CFC,其他的大多数时候都是外国工程师在使用,以后有机会我们会讲一些这些常用语言,也会拓展非常用语言。便于大家学习。

二 控制模式

西门子PLC在编程时主要有以下几种控制方式,系统设置远程/本地/手动按钮:

远程: 只能通过上位机对系统进行自动启/停控制,单台设备就地控制优先,在程控时,可以通过上位机对设备进行软手操/自动切换,软手操启/停。

本地: 只能通过触摸屏对系统进行自动启/停控制,单台设备就地控制优先,在程控时,可以通过触摸屏对设备进行软手操/自动切换,软手操启/停。

手动: 手动控制时,上位机/触摸屏失效,只能通过手动控制设备的启/停。

单台设备控制

单台设备必须有软手操/自动切换以及软手操时可以启/停功能,由自动切换到软手操时,设备不能停机;由软手操切换到自动时,设备启/停取决于自动程序。

单台设备

(泵、风机及其它大型设备)运行满24小时必须进行轮换,且必须有运行时间累计,如果由上位机设定启/停顺序除外,操作人员自行设定。

西门子程序FB和FC的区别:

FC:功能,它没有自己的数据块。

FB:功能块,它有自己的存储区,即背景数据块。FB=FC+DB(背景数据块).

如果FC也想使用数据功能的话,需要在外部连接全局数据块进行数据存储。

程序结构统一规范

OB1:主程序

OB100:初始化程序(无需主程序调用) 

OB35:100ms(可修改)中断(无需主程序调用),可以调用PID模块;

OB80、OB82、OB85、OB86、OB87、OB121、OB122:故障诊断模块(无需主程序调用、无需编程)

功能块和数据块:

FC1:系统模式 FC2:输入处理

FC3:输出处理 FC4:运行处理

FC5:停止处理 FC6:手自动切换

FC100:之后用来建立一些可以循环调用的子程序

FC105:系统自带,模拟量输入子程序(可以循环调用)

FC106:系统自带,模拟量输出子程序(可以循环调用)

modbus通讯(CP341):FB7:P_RCV_RK,FB8:P_SND_RK

通讯CP340:FB2:P_RCV,FB3:P_SND

一般PID:用FB41

温、湿度PID:用FB58

如果程序块与系统块重复,请避让。

DB1:AI数据,类型:REAL,与上位机接口

DB2:AO数据,类型:REAL,与上位机接口

DB3:DI数据,类型:BOOL,与上位机接口

DB4:DO数据,类型:BOOL,与上位机接口

DB5:设备运行时间及流量累计,类型:REAL,与上位机接口;

DB6:报警消息,类型:BOOL,与上位机接口

DB7:类型:REAL,中间寄存器

DB8:类型:INT,中间寄存器

DB9:类型:WORD,中间寄存器

DB10:类型:BOOL,中间寄存器

DB11:之后用作与设备通讯用,例如:MODBUS通讯等

DB100:之后用作调用FB块时的背景数据块

M区:也作为中间变量

功能块FC,FB和数据块DB以上只是经验丰富的工程师根据多年的经验进行总结,试图找到一种通用的方式,但不是说这些块就必须严格按照上述功能来编写程序,西门子程序功能是开放的,你可以按照自己的风格私人定制。

记住,学习西门子PLC编程的技巧是:多看,多学,多模仿!

相关问答

西门子S7-200SMART如何定义、编辑和选择符号?

你的问题,定义和编辑符号是PLC编程中都具备的功能;而这个选择符号,就可以理解为用符号地址来进行编程,符号是你自己定义的话,用符号编程在点数比较多的项目...来...

求助!有个PLC程序的后缀名是(.smart),plc编程软件打不开,肿...

有个PLC程序的后缀名是(.smart),plc编程软件打不开,肿么才能打开啊?还一个.hmi的也打不开共3条回答8205浏览winccflexible2008sp4软件+s7...

西门子plc的命令en怎么编写?

关于这个问题,"EN"是西门子PLC中的一个指令,它代表“使能”命令。它的编写方法如下:1.打开西门子PLC编程软件,创建一个新的程序。2.选择一个适合的块类型...

plc程序怎么强制运行?

操作方法01如果在对PLC进行调试时需要对某段程序强制运行使设备动作,需要先将程序写入PLC。02PLC编程软件可以对程序强制ON或OFF,加入我们使程序中第25步...

西门子S7-200smartPLC编程软件程序出现三个问号❔?

双击就可以写入地址号了双击就可以写入地址号了

西门子S7-200SMARTPLC编程软件安装步骤?

1、从官网下载最新版STEP7-Micro/WINSMARTV2.5。西门子S7-200Smart官网地址https://new.siemens.com/cn/zh/products/autom...

西门子plc温度怎么编写?

需要的材料温度传感器西门子PLC西门子模拟量模块,模块的量程要与你的温度传感器对应上。程序S7-200PLC模拟量对应数字量0-32000smart200对应0-27648在...

西门子plc电池没电程序会丢吗?

西门子plc电池没电,短时间内更换电池,程序不会丢失,如果时间长了会丢失程序,因为程序存贮用的是RAM,所以电池没了又断电时间过长的话,程序是肯定要丢失的。西...

西门子S7-200Smart系列PLC以太网端口能和上位机软件Intouch...

支持西门子S7协议、TCP/IP协议、有效支持多种终端连接与上位机的通信通过PCAccess,操作人员可以轻松通过上位机读取S7-200SMART的数据,从而实现设备监控或...

如何用以太网通讯将PLC程序下载到S7200smart中?

用以太网通讯将PLC程序下载到S7200smart中,方法如下:1、以太网连接后,首先右击右下角的“网络”,点击“打开网络和共享中心”。2、点击“更改适配器设置”...

 永吉实验高中  谢桐 
王经理: 180-0000-0000(微信同号)
10086@qq.com
北京海淀区西三旗街道国际大厦08A座
©2025  上海羊羽卓进出口贸易有限公司  版权所有.All Rights Reserved.  |  程序由Z-BlogPHP强力驱动
网站首页
电话咨询
微信号

QQ

在线咨询真诚为您提供专业解答服务

热线

188-0000-0000
专属服务热线

微信

二维码扫一扫微信交流
顶部